From 3628a9b695f301c09442dbcb21c511516ef68b33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:07:24 -0700 Subject: [PATCH 01/72] chore: Bump clsx from 1.2.0 to 1.2.1 (#5334) Bumps [clsx](https://github.com/lukeed/clsx) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/lukeed/clsx/releases) - [Commits](https://github.com/lukeed/clsx/compare/v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: clsx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 342a6a57eed..b5edccf56da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5576,9 +5576,9 @@ clone@^1.0.2: integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= clsx@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.0.tgz#b0e415ea7537dbac01b169c5cec1caeb11d86566" - integrity sha512-EPRP7XJsM1y0iCU3Z7C7jFKdQboXSeHgEfzQUTlz7m5NP3hDrlz48aUsmNGp4pC+JOW9WA3vIRqlYuo/bl4Drw== + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== cmd-shim@^4.1.0: version "4.1.0" From 1edccda3d5d65c999c30daf924ae1b4ae45d68ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:07:43 -0700 Subject: [PATCH 02/72] chore: Bump @microsoft/api-extractor from 7.28.3 to 7.28.4 (#5336) Bumps [@microsoft/api-extractor](https://github.com/microsoft/rushstack/tree/HEAD/apps/api-extractor) from 7.28.3 to 7.28.4. - [Release notes](https://github.com/microsoft/rushstack/releases) - [Changelog](https://github.com/microsoft/rushstack/blob/main/apps/api-extractor/CHANGELOG.md) - [Commits](https://github.com/microsoft/rushstack/commits/@microsoft/api-extractor_v7.28.4/apps/api-extractor) --- updated-dependencies: - dependency-name: "@microsoft/api-extractor" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b5edccf56da..e033003f339 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3016,9 +3016,9 @@ "@rushstack/node-core-library" "3.49.0" "@microsoft/api-extractor@^7.23.2": - version "7.28.3" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.28.3.tgz#516d8a81b1c62949116e258d54c03ee8c5b7740a" - integrity sha512-lkDHPyln8MNEy1QHjmGwedRquclGKU0qL0gHplfnHuSTXSoNQ86UYaPmhG77/GiNehXzGNKMYSIfTsuoQb69jA== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.28.4.tgz#8e67a69edb4937beda516d42d4f325e6e1258445" + integrity sha512-7JeROBGYTUt4/4HPnpMscsQgLzX0OfGTQR2qOQzzh3kdkMyxmiv2mzpuhoMnwbubb1GvPcyFm+NguoqOqkCVaw== dependencies: "@microsoft/api-extractor-model" "7.21.0" "@microsoft/tsdoc" "0.14.1" From 415b1d9adb8dcb9aadcb202c5f34cd8342f63282 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:07:51 -0700 Subject: [PATCH 03/72] chore: Bump lerna from 5.1.6 to 5.1.8 (#5333) Bumps [lerna](https://github.com/lerna/lerna/tree/HEAD/core/lerna) from 5.1.6 to 5.1.8. - [Release notes](https://github.com/lerna/lerna/releases) - [Changelog](https://github.com/lerna/lerna/blob/main/core/lerna/CHANGELOG.md) - [Commits](https://github.com/lerna/lerna/commits/v5.1.8/core/lerna) --- updated-dependencies: - dependency-name: lerna dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 913 ++++++++++++++++++++++++--------------------------- 2 files changed, 435 insertions(+), 480 deletions(-) diff --git a/package.json b/package.json index d73051959b8..a4601ad21bd 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "jest-diff": "^28.1.0", "jest-snapshot": "^28.1.0", "jest-specific-snapshot": "^5.0.0", - "lerna": "5.1.6", + "lerna": "5.1.8", "lint-staged": "^13.0.0", "make-dir": "^3.1.0", "markdownlint-cli": "^0.31.1", diff --git a/yarn.lock b/yarn.lock index e033003f339..71717bb02e0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2290,39 +2290,39 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@lerna/add@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.1.6.tgz#f839096084a5d34da9e4813ea230da16c99b54c2" - integrity sha512-+dc5LUxFSxlTgDcC+nTdbFnUphmcGsypPF0eeYPc6tqUrpOpp3Ubn07dRGG0DbpZjk/roZj38DAvx7LYFalZAQ== - dependencies: - "@lerna/bootstrap" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/filter-options" "5.1.6" - "@lerna/npm-conf" "5.1.6" - "@lerna/validation-error" "5.1.6" +"@lerna/add@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.1.8.tgz#9710a838cb1616cf84c47e85aab5a7cc5a36ce21" + integrity sha512-ABplk8a5MmiT8lG1b9KHijRUwj/nOePMuezBHjJEpNeQ8Bw5w3IV/6hpdmApx/w1StBwWWf0UG42klrxXlfl/g== + dependencies: + "@lerna/bootstrap" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/filter-options" "5.1.8" + "@lerna/npm-conf" "5.1.8" + "@lerna/validation-error" "5.1.8" dedent "^0.7.0" npm-package-arg "^8.1.0" p-map "^4.0.0" pacote "^13.4.1" semver "^7.3.4" -"@lerna/bootstrap@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-5.1.6.tgz#70c643071cade4568fc9b22798a183afd787fb66" - integrity sha512-mCPYySlkreBmhK+uKhnwmBynVN0v7a6DCy4n3WiZ6oJ2puM/F1+8vjCBsWKmnR8YiLtUQt0dwL1fm/dCZgZy8g== - dependencies: - "@lerna/command" "5.1.6" - "@lerna/filter-options" "5.1.6" - "@lerna/has-npm-version" "5.1.6" - "@lerna/npm-install" "5.1.6" - "@lerna/package-graph" "5.1.6" - "@lerna/pulse-till-done" "5.1.6" - "@lerna/rimraf-dir" "5.1.6" - "@lerna/run-lifecycle" "5.1.6" - "@lerna/run-topologically" "5.1.6" - "@lerna/symlink-binary" "5.1.6" - "@lerna/symlink-dependencies" "5.1.6" - "@lerna/validation-error" "5.1.6" +"@lerna/bootstrap@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/bootstrap/-/bootstrap-5.1.8.tgz#b8664d7eef6bd1072fe3ea5285848cc0c590a9bc" + integrity sha512-/QZJc6aRxi6csSR59jdqRXPFh33fbn60F1k/SWtCCELGkZub23fAPLKaO7SlMcyghN3oKlfTfVymu/NWEcptJQ== + dependencies: + "@lerna/command" "5.1.8" + "@lerna/filter-options" "5.1.8" + "@lerna/has-npm-version" "5.1.8" + "@lerna/npm-install" "5.1.8" + "@lerna/package-graph" "5.1.8" + "@lerna/pulse-till-done" "5.1.8" + "@lerna/rimraf-dir" "5.1.8" + "@lerna/run-lifecycle" "5.1.8" + "@lerna/run-topologically" "5.1.8" + "@lerna/symlink-binary" "5.1.8" + "@lerna/symlink-dependencies" "5.1.8" + "@lerna/validation-error" "5.1.8" "@npmcli/arborist" "5.2.0" dedent "^0.7.0" get-port "^5.1.1" @@ -2334,100 +2334,100 @@ p-waterfall "^2.1.1" semver "^7.3.4" -"@lerna/changed@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-5.1.6.tgz#bf1c60cb90ac451191eb8cfd3fc807ee7a05ad19" - integrity sha512-+dy+qcKZTXmETJm9VVQHuVXfk9OeqPNcJ3qeMvvYBRuMYttEbGZDOrcCjE2vomLGhLpXElHKXnCaJEDAwEla8Q== +"@lerna/changed@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/changed/-/changed-5.1.8.tgz#7db0c16703440ba6bf53ad3719fd13ba748aaf27" + integrity sha512-JA9jX9VTHrwSMRJTgLEzdyyx4zi35X0yP6fUUFuli9a0zrB4HV4IowSn1XM03H8iebbDLB0eWBbosqhYwSP8Sw== dependencies: - "@lerna/collect-updates" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/listable" "5.1.6" - "@lerna/output" "5.1.6" + "@lerna/collect-updates" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/listable" "5.1.8" + "@lerna/output" "5.1.8" -"@lerna/check-working-tree@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-5.1.6.tgz#c9913325ef8467990217823cfe652e40e1acf964" - integrity sha512-WeTO1Vjyw7ZZzM/o1Q+UWFYvvbludM++MaDhEodpNZxL1bDMR3/bvtKa/SNq52aBr4nSKOLVz1BO0Lg+yNaZXQ== +"@lerna/check-working-tree@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/check-working-tree/-/check-working-tree-5.1.8.tgz#9529006f1c57cf1d783539063a381777aa983054" + integrity sha512-3QyiV75cYt9dtg9JhUt+Aiyk44mFjlyqIIJ/XZ2Cp/Xcwws/QrNKOTs5iYFX5XWzlpTgotOHcu1MH/mY55Czlw== dependencies: - "@lerna/collect-uncommitted" "5.1.6" - "@lerna/describe-ref" "5.1.6" - "@lerna/validation-error" "5.1.6" + "@lerna/collect-uncommitted" "5.1.8" + "@lerna/describe-ref" "5.1.8" + "@lerna/validation-error" "5.1.8" -"@lerna/child-process@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-5.1.6.tgz#d9e88c4fb8287d568938db395937b11c94627d7d" - integrity sha512-f0SPxNqXaurSoUMHDVCDjU1uA7/Qa9HnGdxiE9OoDaXaErlVloUT7Wpjbp5khryaJZC4PQ9HnnI3FSA/S/SHaA== +"@lerna/child-process@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/child-process/-/child-process-5.1.8.tgz#4350eb58fe4c478000317a65f62985d212ee4f89" + integrity sha512-P0o4Y/sdiUJ53spZpaVv53NdAcl15UAi5//W3uT2T250xQPlVROwKy11S3Wzqglh94FYdi6XUy293x1uwBlFPw== dependencies: chalk "^4.1.0" execa "^5.0.0" strong-log-transformer "^2.1.0" -"@lerna/clean@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-5.1.6.tgz#5507910ebde670bf4cb843ddb86844f441038f39" - integrity sha512-SHRXg6R38NfAtwS8R3hYAacmdDds2Z/51G7YE8bMvmoE4c60eFsBwsCXwwdpPBXL/SdfEGSzoxwEvWHi+f6r7g== +"@lerna/clean@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/clean/-/clean-5.1.8.tgz#dbf4634bbc3f5c526eec38c850eaa6882bb6eb2c" + integrity sha512-xMExZgjan5/8ZTjJkZoLoTKY1MQOMk7W1YXslbg9BpLevBycPk041MlLauzCyO8XdOpqpVnFCg/9W66fltqmQg== dependencies: - "@lerna/command" "5.1.6" - "@lerna/filter-options" "5.1.6" - "@lerna/prompt" "5.1.6" - "@lerna/pulse-till-done" "5.1.6" - "@lerna/rimraf-dir" "5.1.6" + "@lerna/command" "5.1.8" + "@lerna/filter-options" "5.1.8" + "@lerna/prompt" "5.1.8" + "@lerna/pulse-till-done" "5.1.8" + "@lerna/rimraf-dir" "5.1.8" p-map "^4.0.0" p-map-series "^2.1.0" p-waterfall "^2.1.1" -"@lerna/cli@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-5.1.6.tgz#94a95cfdc0dd1e482f7b609a8771005e29cb3330" - integrity sha512-+cQoaOBK2ISw0z5uuHoP2QlV3EZZMdTPuPCVsLDuUwiJCDI3hF3Ps2qQauAZTKO8Ull7z3qid8Yv8sLNEMNrCA== +"@lerna/cli@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/cli/-/cli-5.1.8.tgz#b094a2d2eb70522ced850da60c94a2e0bf8c5adc" + integrity sha512-0Ghhd9M9QvY6qZtnjTq5RHOIac2ttsW2VNFLFso8ov3YV+rJF4chLhyVaVBvLSA+5ZhwFH+xQ3/yeUx1tDO8GA== dependencies: - "@lerna/global-options" "5.1.6" + "@lerna/global-options" "5.1.8" dedent "^0.7.0" npmlog "^6.0.2" yargs "^16.2.0" -"@lerna/collect-uncommitted@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.6.tgz#56d0994e4039ec340c0c7d0e6ce5a2cd78df6079" - integrity sha512-IvAmcaENJZKXjTsxsalM8+GuApooqcsKJ74q/9yUGwO3FIMevQyz/VDOFDq7e0WCQoq6ttrdNihEjU/QTjNsMw== +"@lerna/collect-uncommitted@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.8.tgz#1caf374998402883b4a345dffed8c1cddd57e76a" + integrity sha512-pRsIYu82A3DxLahQI/3azoi/kjj6QSSHHAOx4y1YVefeDCaVtAm8aesNbpnyNVfJrie/1Gt5GMEpjfm/KScjlw== dependencies: - "@lerna/child-process" "5.1.6" + "@lerna/child-process" "5.1.8" chalk "^4.1.0" npmlog "^6.0.2" -"@lerna/collect-updates@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-5.1.6.tgz#1ff373f01e5cd8b849f5918f2ab8585da3612433" - integrity sha512-CjKK3bteJpDzqrNOZMGYSwqF5CQsjiPv6soRdayBlJGXB3YW32M2UFcPD77Fvef/Q0xM7FEch3R3ZnBxgzGprg== +"@lerna/collect-updates@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/collect-updates/-/collect-updates-5.1.8.tgz#b4d2f1a333abb690b74e4c5def45763347070754" + integrity sha512-ZPQmYKzwDJ4T+t2fRUI/JjaCzC8Lv02kWIeSXrcIG+cf2xrbM0vK4iQMAKhagTsiWt9hrFwvtMgLp4a6+Ht8Qg== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/describe-ref" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/describe-ref" "5.1.8" minimatch "^3.0.4" npmlog "^6.0.2" slash "^3.0.0" -"@lerna/command@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/command/-/command-5.1.6.tgz#22b4218d2ae5fc6f41ef7024d2b55995f8b4d986" - integrity sha512-zRiQels/N8LrR3ntkOn9dRE/0kzRKYTvJTdWcjfF7BC7Lz9VsNhPVy7tdv+Un5GZjVKhDQa/Tpn1h2t6/SLaSQ== +"@lerna/command@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/command/-/command-5.1.8.tgz#0dcca15a7148ce3326178c7358d5f907430dc328" + integrity sha512-j/Q++APvkyN2t8GqOpK+4OxH1bB7OZGVWIKh0JQlwbtqH1Y06wlSyNdwpPmv8h1yO9fS1pY/xHwFbs1IicxwzA== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/package-graph" "5.1.6" - "@lerna/project" "5.1.6" - "@lerna/validation-error" "5.1.6" - "@lerna/write-log-file" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/package-graph" "5.1.8" + "@lerna/project" "5.1.8" + "@lerna/validation-error" "5.1.8" + "@lerna/write-log-file" "5.1.8" clone-deep "^4.0.1" dedent "^0.7.0" execa "^5.0.0" is-ci "^2.0.0" npmlog "^6.0.2" -"@lerna/conventional-commits@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-5.1.6.tgz#a37f671a46974ed7221e2fab801d5d41de9eb069" - integrity sha512-kgdQNglEtsIL6wWAhJieghcvvgpZxG2t2HPy+G/wx1qUbeUqTVkw0z88BDDZ7xOfQh6ffJ5GvLZhAj+LjijYxQ== +"@lerna/conventional-commits@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/conventional-commits/-/conventional-commits-5.1.8.tgz#5d6f87ebb024d4468024b22ced0ea948246d593f" + integrity sha512-UduSVDp/+2WlEV6ZO5s7yTzkfhYyPdEsqR6aaUtIJZe9wejcCK4Lc3BJ2BAYIOdtDArNY2CJPsz1LYvFDtPRkw== dependencies: - "@lerna/validation-error" "5.1.6" + "@lerna/validation-error" "5.1.8" conventional-changelog-angular "^5.0.12" conventional-changelog-core "^4.2.2" conventional-recommended-bump "^6.1.0" @@ -2438,24 +2438,24 @@ pify "^5.0.0" semver "^7.3.4" -"@lerna/create-symlink@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-5.1.6.tgz#1a8e003a194da246e3ba0a22d7b4e4c847c15809" - integrity sha512-qkooK66GY2veqHEarbMraCzdgFpg8hwt3vjuBp9sMddYccXb7HHIsTXIOJPn4H5xFizblcRzf8fUJ73XkQZpUw== +"@lerna/create-symlink@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/create-symlink/-/create-symlink-5.1.8.tgz#36b3cb34d3e434f021a878c7353a6dd0ccacd6bd" + integrity sha512-5acQITDsJ7dqywPRrF1mpTUPm/EXFfiv/xF6zX+ySUjp4h0Zhhnsm8g2jFdRPDSjIxFD0rV/5iU4X6qmflXlAg== dependencies: cmd-shim "^4.1.0" fs-extra "^9.1.0" npmlog "^6.0.2" -"@lerna/create@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/create/-/create-5.1.6.tgz#0e84aabcb4777c17b080f732b9e53d69aa8ae9cb" - integrity sha512-KVwxoYQsojgoUl3AxYSOM40Pa0Coo0SLKV57abVKfHmxfIEyvcGgtxNn6eA3M1lDVntqdlaBmNatkZRt3N1EHg== +"@lerna/create@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-5.1.8.tgz#ccb485e460d4d9f1b34cbe74e79b0261c710af3a" + integrity sha512-n9qLLeg1e0bQeuk8pA8ELEP05Ktl50e1EirdXGRqqvaXdCn41nYHo4PilUgb77/o/t3Z5N4/ic+0w8OvGVakNg== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/npm-conf" "5.1.6" - "@lerna/validation-error" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/npm-conf" "5.1.8" + "@lerna/validation-error" "5.1.8" dedent "^0.7.0" fs-extra "^9.1.0" globby "^11.0.2" @@ -2471,217 +2471,217 @@ whatwg-url "^8.4.0" yargs-parser "20.2.4" -"@lerna/describe-ref@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-5.1.6.tgz#417c4f55b9b3a7d76131fe2da5dd1fa891c7f769" - integrity sha512-1VIy0hTkTnlcPqy5Q1hBMJALZbVhjMvRhCnzSgkP0dEuYjaRTyxr0DbhZ4CThREQuqfE3PB2f3DaHVRO8pSSeA== +"@lerna/describe-ref@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/describe-ref/-/describe-ref-5.1.8.tgz#b0f5d252f97d9d96ca404f2b99c91d426f2b7577" + integrity sha512-/u5b2ho09icPcvPb1mlh/tPC07nSFc1cvvFjM9Yg5kfVs23vzVWeA8y0Bk5djlaaSzyHECyqviriX0aoaY47Wg== dependencies: - "@lerna/child-process" "5.1.6" + "@lerna/child-process" "5.1.8" npmlog "^6.0.2" -"@lerna/diff@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-5.1.6.tgz#07b1cc1cc6a1b38d05a4779d5915468f938d7dfc" - integrity sha512-UdZ2yHkeTczfwevY8zTIz3kX9gl57e7fkVfNM5zEXifvhbmIozjreurgD2LWf6k/fkEORaFeQ+4dcWGerE70rQ== +"@lerna/diff@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/diff/-/diff-5.1.8.tgz#112f68a99025e5732d4ec8ec6cb6db323555846a" + integrity sha512-BLoi6l/v8p43IkAHTkpjZ4Kq27kYK7iti6y6gYoZuljSwNj38TjgqRb2ohHezQ5c0KFAj8xHEOuZM3Ou6tGyTQ== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/validation-error" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/validation-error" "5.1.8" npmlog "^6.0.2" -"@lerna/exec@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-5.1.6.tgz#de3fb272a14f6c66d4f6bd798ccd458bd4475ef7" - integrity sha512-1OGca09bVdMD5a2jr7kBQMyWMger6rzwgBWOdHxPaIajPJVUTqhcLBrtJA9qVZol7jztWgDLR3mFxrvmqGijaQ== - dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/filter-options" "5.1.6" - "@lerna/profiler" "5.1.6" - "@lerna/run-topologically" "5.1.6" - "@lerna/validation-error" "5.1.6" +"@lerna/exec@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/exec/-/exec-5.1.8.tgz#a5a808ebb40c74c1a339e73816ea1aa1c53dc284" + integrity sha512-U+owlBKoAUfULqRz0oBtHx/I6tYQy9I7xfPP0GoaXa8lpF7esnpCxsJG8GpdzFqIS30o6a2PtyHvp4jkrQF8Zw== + dependencies: + "@lerna/child-process" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/filter-options" "5.1.8" + "@lerna/profiler" "5.1.8" + "@lerna/run-topologically" "5.1.8" + "@lerna/validation-error" "5.1.8" p-map "^4.0.0" -"@lerna/filter-options@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-5.1.6.tgz#cd9a9bba7ec040f5165d46cef5f0496bef140881" - integrity sha512-lssUzYGXEJONS14NHCMp5ddL2aNLamDQufYJh9ziNswcG2lxnis+aeboPxCAQooLptGqcIs6QXkcLo27GXsmbg== +"@lerna/filter-options@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/filter-options/-/filter-options-5.1.8.tgz#cb18431a92a138e9428af0217b01bfa89adb9b13" + integrity sha512-ene6xj1BRSFgIgcVg9xABp1cCiRnqm3Uetk9InxOtECbofpSDa7cQy5lsPv6GGAgXFbT91SURQiipH9FAOP+yQ== dependencies: - "@lerna/collect-updates" "5.1.6" - "@lerna/filter-packages" "5.1.6" + "@lerna/collect-updates" "5.1.8" + "@lerna/filter-packages" "5.1.8" dedent "^0.7.0" npmlog "^6.0.2" -"@lerna/filter-packages@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-5.1.6.tgz#438477438fec319d237d35833cd147323f3c800e" - integrity sha512-5cpAdwQoaGsutsY0xmd0x59IixFVZdpovxXiuhIGAakBdrwbNxNpstqJjnOEakOZ/arVQ0ozTUtZK7Vk0GjR9A== +"@lerna/filter-packages@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/filter-packages/-/filter-packages-5.1.8.tgz#5dd32c05c646f4d3ad55adde8e67d60661c2bead" + integrity sha512-2pdtZ+I2Sb+XKfUa/q8flVUyaY0hhwqFYMXll7Nut7Phb1w1TtkEXc2/N0Ac1yia6qSJB/5WrsbAcLF/ITp1vA== dependencies: - "@lerna/validation-error" "5.1.6" + "@lerna/validation-error" "5.1.8" multimatch "^5.0.0" npmlog "^6.0.2" -"@lerna/get-npm-exec-opts@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.6.tgz#83f81184ac295c3423752b50382b8e0665c987f4" - integrity sha512-YQDHGrN/Ti56sAwBkV5y/Bn2H/aJ8fQzKG+blWdkcJgoBV04I5po0IbgKiGKl57+pd2bPpDEtcA6WYPyI1Spfw== +"@lerna/get-npm-exec-opts@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.8.tgz#71ea0a8760231322c5a4fe103aab659e3de062a3" + integrity sha512-oujoIkEDDVK2+5ooPMEPI+xGs/iwPmGJ63AZu1h7P42YU9tHKQmF5yPybF3Jn99W8+HggM6APUGiX+5oHRvKXA== dependencies: npmlog "^6.0.2" -"@lerna/get-packed@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-5.1.6.tgz#af3a2992849573b5dece17322c5d9ce80fd9f832" - integrity sha512-m2LojNTkwSiC5dqvLP2gCj5ljPE1e8I2G/U8hIqdVttMwz5JAGbIx3MfACUBG83d5FzSqnCIA1xNkrEZFB4cQg== +"@lerna/get-packed@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/get-packed/-/get-packed-5.1.8.tgz#c8020be24befbe018fc535cf513efa5863a4a1a2" + integrity sha512-3vabIFlfUFQPbFnlOaDCNY4p7mufrhIFPoXxWu15JnjJsSDf9UB2a98xX43xNlxjgZLvnLai3bhCNfrKonI4Kw== dependencies: fs-extra "^9.1.0" ssri "^8.0.1" tar "^6.1.0" -"@lerna/github-client@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-5.1.6.tgz#6c20168ee8dc8ac55f2296ffb9ff204f3bc12664" - integrity sha512-ZydjvlhjUKT9HrB1xdcfBB7u/9Vlod1U2V91qj2CqCaWfwG5ob9jXK4v6tLEzZMGxUKKE2OQCyF7o20tHfkcJQ== +"@lerna/github-client@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/github-client/-/github-client-5.1.8.tgz#1b0a3d5ae9996d56e7977d319d5b95ec2c24df8f" + integrity sha512-y1oweMZ9xc/htIHy42hy2FuMUR/LS3CQlslXG9PAHzl5rE1VDDjvSv61kS50ZberGfB9xmkCxqH+2LgROG9B1A== dependencies: - "@lerna/child-process" "5.1.6" + "@lerna/child-process" "5.1.8" "@octokit/plugin-enterprise-rest" "^6.0.1" "@octokit/rest" "^18.1.0" - git-url-parse "^11.4.4" + git-url-parse "^12.0.0" npmlog "^6.0.2" -"@lerna/gitlab-client@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-5.1.6.tgz#1d600363ccfb798a93ce41a2a62084a148d57125" - integrity sha512-ck5XsIz7mQdBNtfKhH4dPrD6t1UZxWBrQeIUsCLO+NorXqYcG8Oqvmzrfm0iByCvaC1QCf+zImJYvMOzjozIpg== +"@lerna/gitlab-client@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/gitlab-client/-/gitlab-client-5.1.8.tgz#84e9063c79b0543570ca02ad50f7ad54446ab78d" + integrity sha512-/EMKdkGnBU4ldyAQ4pXp2TKi1znvY3MiCULt8Hy42p4HhfFl/AxZYDovQYfop1NHVk29BQrGHfvlpyBNqZ2a8g== dependencies: node-fetch "^2.6.1" npmlog "^6.0.2" whatwg-url "^8.4.0" -"@lerna/global-options@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-5.1.6.tgz#f6f6f4988c1dcb39d3877c0ef629e0256ed81b44" - integrity sha512-NHMVGs5zhxbtqnBuwujzanYhf7q/HsXBtPn0M/eJpEvcAXaMZgttUMyS2/1JnAUelrAbSMbT+0iOUzSlyD1gtw== +"@lerna/global-options@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/global-options/-/global-options-5.1.8.tgz#ba760c9a9a686bc0109d9b09017737a7365b7649" + integrity sha512-VCfTilGh0O4T6Lk4DKYA5cUl1kPjwFfRUS/GSpdJx0Lf/dyDbFihrmTHefgUe9N2/nTQySDIdPk9HBr45tozWQ== -"@lerna/has-npm-version@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-5.1.6.tgz#5e6f7a0b2f24382a56e654be187d0002950cf109" - integrity sha512-hDY5/qxp98oacg9fhBfbDmjuRCVHm1brdKsY76FJ4vN+m89sVhXLqqsSHNKCTiQ8OgSzokO2iQeysvgM7ZlqAg== +"@lerna/has-npm-version@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/has-npm-version/-/has-npm-version-5.1.8.tgz#9ea80ee3616006df1094cc18c1bc58f3f1008299" + integrity sha512-yN5j9gje2ND8zQf4tN52QDQ/yFb24o9Kasm4PZm99FzBURRIwFWCnvo3edOMaiJg0DpA660L+Kq9G0L+ZRKRZQ== dependencies: - "@lerna/child-process" "5.1.6" + "@lerna/child-process" "5.1.8" semver "^7.3.4" -"@lerna/import@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/import/-/import-5.1.6.tgz#2cd7a8c3a5ef8df1992d0e8f8a31110a3380fb66" - integrity sha512-RhWC/3heIevWseY+jzOfGiqPmTofaYyOOqd7+SVaVdSy79TGU0crxWpUECo7COc/FMflFVa+jlk1/JSXWpqG8g== +"@lerna/import@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/import/-/import-5.1.8.tgz#b1eebfaab1df618ec0a92a639c45010c1fcd1098" + integrity sha512-m1+TEhlgS9i14T7o0/8o6FMZJ1O2PkQdpCjqUa5xdLITqvPozoMNujNgiX3ZVLg/XcFOjMtbCsYtspqtKyEsMQ== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/prompt" "5.1.6" - "@lerna/pulse-till-done" "5.1.6" - "@lerna/validation-error" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/prompt" "5.1.8" + "@lerna/pulse-till-done" "5.1.8" + "@lerna/validation-error" "5.1.8" dedent "^0.7.0" fs-extra "^9.1.0" p-map-series "^2.1.0" -"@lerna/info@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/info/-/info-5.1.6.tgz#d6f2b79a2c18eba14f8655b14601f1f84c60e61e" - integrity sha512-iB4rNweghxng4U7VUsN03M2mDRgjDr8Bv+llXGhtJoSrZ9XzJYyCvGaExG30sBr5VHaArIzJ11nnF0kSDg3bXg== +"@lerna/info@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/info/-/info-5.1.8.tgz#99aab0f599cf9d9f1f144dbc110e38f6337e0a77" + integrity sha512-VNCBNOrd5Q1iv1MOF++PzMrdAnTn6KTDbb5hcXHdWBRZUuOs3QOwVYGzAlTFMvwVmmlcER4z8BYyUsbxk3sIdQ== dependencies: - "@lerna/command" "5.1.6" - "@lerna/output" "5.1.6" + "@lerna/command" "5.1.8" + "@lerna/output" "5.1.8" envinfo "^7.7.4" -"@lerna/init@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/init/-/init-5.1.6.tgz#2a00a242f69a30f710fa55f39501c2aeb4cd9618" - integrity sha512-S8N2vjWcHrqaowYLrX2KEbhXrs31q5wU5sfsjaJ4UxQd/cBUXvp4OWI98lRTQmXOOcw9XwJNDHhZXIR30Pn0aA== +"@lerna/init@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/init/-/init-5.1.8.tgz#7ad1433d50e283ba01cae84f9640cf99b0a8a047" + integrity sha512-vEMnq/70u/c031/vURA4pZSxlBRAwjg7vOP7mt9M4dmKz/vkVnQ/5Ig9K0TKqC31hQg957/4m20obYEiFgC3Pw== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/command" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/command" "5.1.8" fs-extra "^9.1.0" p-map "^4.0.0" write-json-file "^4.3.0" -"@lerna/link@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/link/-/link-5.1.6.tgz#93123d2b03307444440698c96ff889e56044623f" - integrity sha512-H94MHjhltS8lMA3J38fzcbtQvNe1OoaMO/ZgacC9HvrntIoepqG/2boOKprW6cnTBSwmIFVCn2+LQloBJ2Nwbw== +"@lerna/link@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/link/-/link-5.1.8.tgz#f9d5736640f524c9f255007d3d7b3792846042ef" + integrity sha512-qOtZiMzB9JYyNPUlvpqTxh0Z1EmNVde8pFUIYybv+s3btrKEBPgsvvrOrob/mha3QJxnwcPDPjHt/wCHFxLruA== dependencies: - "@lerna/command" "5.1.6" - "@lerna/package-graph" "5.1.6" - "@lerna/symlink-dependencies" "5.1.6" + "@lerna/command" "5.1.8" + "@lerna/package-graph" "5.1.8" + "@lerna/symlink-dependencies" "5.1.8" p-map "^4.0.0" slash "^3.0.0" -"@lerna/list@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/list/-/list-5.1.6.tgz#61e25437a3a642866cabd1a162d53e95b45c2066" - integrity sha512-GofR6H1YKoVMj0Rczk9Y+Z/y7ymOKkklRLsUJQE0nWmlKkH8/tdxGHIgfR4sX2oiwtQGfFDc8ddtLX7DHAhMiA== +"@lerna/list@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/list/-/list-5.1.8.tgz#72268a7ab4042f4d4463cc41e247c1473ad7c7cf" + integrity sha512-fVN9o/wKtgcOyuYwvYTg2HI6ORX2kOoBkCJ+PI/uZ/ImwLMTJ2Bf8i/Vsysl3bLFHhQFglzPZ7V1SQP/ku0Sdw== dependencies: - "@lerna/command" "5.1.6" - "@lerna/filter-options" "5.1.6" - "@lerna/listable" "5.1.6" - "@lerna/output" "5.1.6" + "@lerna/command" "5.1.8" + "@lerna/filter-options" "5.1.8" + "@lerna/listable" "5.1.8" + "@lerna/output" "5.1.8" -"@lerna/listable@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-5.1.6.tgz#4b77de64f699f96bae8ccfe07d917f68bd10ffae" - integrity sha512-Aslj1Lo/t1jnyX+uKvBY4vyAsYKqW9A6nJ8+o1egkQ/bha8Ic4dr5z7HCBKhJl73iAHRMVNn8KlxM+E7pjwsoQ== +"@lerna/listable@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/listable/-/listable-5.1.8.tgz#d101e7a6c1bb9df670b4514422621684edab7770" + integrity sha512-nQ/40cbVZLFBv8o9Dz6ivHFZhosfDTYOPm4oHNu0xdexaTXWz5bQUlM4HtOm7K0dJ1fvLEVqiQNAuFSEhARt9g== dependencies: - "@lerna/query-graph" "5.1.6" + "@lerna/query-graph" "5.1.8" chalk "^4.1.0" columnify "^1.6.0" -"@lerna/log-packed@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-5.1.6.tgz#90b95915610b52b67ded3a62d5de20d73024eafd" - integrity sha512-yCtgNgEmicqCVb39RO9pRQQGJaugGcsKtvaS1cDLR+M7vlF8gaSvo9t4bZExFzEF5oWcPf4T1FMuhNV12h/uJg== +"@lerna/log-packed@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/log-packed/-/log-packed-5.1.8.tgz#22e02f41b99e7202a45b066f8747dc8451e0b18e" + integrity sha512-alaCIzCtKV5oKyu632emda0hUQMw/BcL2U3v4ObLu90sU8P7mu6TipKRvR9OZxOLDnZGnPE7CMHSU8gsQoIasw== dependencies: byte-size "^7.0.0" columnify "^1.6.0" has-unicode "^2.0.1" npmlog "^6.0.2" -"@lerna/npm-conf@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-5.1.6.tgz#534707babd7ad83d14c70ecb3f36b3c2c3dfa880" - integrity sha512-7x8334t9SO2bih7qJa2s8LFuSOZk5QzZ9q1xG9xNSF8BjrhjsGOVghQ1R97l/1zTkBwhqmb1sxLcvH1e21h+MQ== +"@lerna/npm-conf@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/npm-conf/-/npm-conf-5.1.8.tgz#a36b216c1af65c0524c4278b2f53ed50295110ed" + integrity sha512-d/pIcO4RwO3fXNlUbhQ6+qwULxGSiW/xcOtiETVf4ZfjaDqjkCaIxZaeZfm5gWDtII5klpQn3f2d71FCnZG5lw== dependencies: config-chain "^1.1.12" pify "^5.0.0" -"@lerna/npm-dist-tag@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.6.tgz#5231193e2512669a1244c910489c26463e6bdc35" - integrity sha512-mwjnjqN+Z8z2lAAnOE/2L8OiLChCL374ltaxNOGnhLyWKdCFoit7qhiIIV05CgoE2/iJQoOZP7ioP3H7JtJbsw== +"@lerna/npm-dist-tag@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.8.tgz#f5b26dfd9e97a0eb72987c8175d3b1bd2a7d82a0" + integrity sha512-vZXO0/EClOzRRHHfqB4APhZkxiJpQbsQAAFwaXQCNJE+3S+I/MD0S3iiUWrNs4QnN/8Lj1KyzUfznVDXX7AIUQ== dependencies: - "@lerna/otplease" "5.1.6" + "@lerna/otplease" "5.1.8" npm-package-arg "^8.1.0" npm-registry-fetch "^9.0.0" npmlog "^6.0.2" -"@lerna/npm-install@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-5.1.6.tgz#424c6a18042329c1057d55d9a1c7fe52df58239f" - integrity sha512-SKqXATVPVEGS2xtNNjxGhY1/C9huxYnETelpwAB/eSLcMT4FFBVxeQ83NF9log4w+iCUaS+veElfuF2uvPxaPg== +"@lerna/npm-install@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/npm-install/-/npm-install-5.1.8.tgz#03aada74bd17e196288d417ec2f7d3399e289c01" + integrity sha512-AiYQyz4W1+NDeBw3qmdiiatfCtwtaGOi7zHtN1eAqheVTxEMuuYjNHt+8hu6nSpDFYtonz0NsKFvaqRJ5LbVmw== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/get-npm-exec-opts" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/get-npm-exec-opts" "5.1.8" fs-extra "^9.1.0" npm-package-arg "^8.1.0" npmlog "^6.0.2" signal-exit "^3.0.3" write-pkg "^4.0.0" -"@lerna/npm-publish@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-5.1.6.tgz#74b41aa670e6a043ed7841679e27424542ab8447" - integrity sha512-ce5UMVZZwjpwkKdekXc1xCtwb4ZKwRVsxHCQFoCisE1/3Pw6+5DBptBOgjmJGa1VA7glxGgp5a6aSERA5grA/g== +"@lerna/npm-publish@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/npm-publish/-/npm-publish-5.1.8.tgz#259550c25d1d277c296dc3eb4e3e20f626e64510" + integrity sha512-Gup/1d8ovc21x3spKPhFK0tIYYn8HOjnpCAg5ytINIW1QM/QcLAigY58If8uiyt+aojz6lubWrSR8/OHf9CXBw== dependencies: - "@lerna/otplease" "5.1.6" - "@lerna/run-lifecycle" "5.1.6" + "@lerna/otplease" "5.1.8" + "@lerna/run-lifecycle" "5.1.8" fs-extra "^9.1.0" libnpmpublish "^4.0.0" npm-package-arg "^8.1.0" @@ -2689,85 +2689,85 @@ pify "^5.0.0" read-package-json "^3.0.0" -"@lerna/npm-run-script@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-5.1.6.tgz#9d1c4b5fa615fb10a1cf55c09a1428e6c3a0b158" - integrity sha512-9M7XGnrBoitRnzAT6UGzHtBdQB+HmpsMd+ks7laK7VeqP1rR3t7XXZOm0avMBx2lSBBFSpDIkD4HV0/MeDtcZQ== +"@lerna/npm-run-script@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/npm-run-script/-/npm-run-script-5.1.8.tgz#6472bd96cf667feb829101a5e4db587b2e009d33" + integrity sha512-HzvukNC+hDIR25EpYWOvIGJItd0onXqzS9Ivdtw98ZQG3Jexi2Mn18A9tDqHOKCEGO3pVYrI9ep8VWkah2Bj1w== dependencies: - "@lerna/child-process" "5.1.6" - "@lerna/get-npm-exec-opts" "5.1.6" + "@lerna/child-process" "5.1.8" + "@lerna/get-npm-exec-opts" "5.1.8" npmlog "^6.0.2" -"@lerna/otplease@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-5.1.6.tgz#31548e54d0e3d0853d9ac1dd1e72a464a6bb4f02" - integrity sha512-HFiiMIuP2BoiN/V8I5KS2xZjlrnBEJSKY/oIkIRFIoL/9uvHRorKjlsi0KsQLnLHx3+pZ+AL65LXjt54sJdWiQ== +"@lerna/otplease@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/otplease/-/otplease-5.1.8.tgz#b0019f71b8a86e1594f277abf0f9c95aeebd2419" + integrity sha512-/OVZ7Rbs8/ft14f4i/9HEFDsxJkBSg74rMUqyqFH3fID/RL3ja9hW5bI1bENxvYgs0bp/THy4lV5V75ZcI81zQ== dependencies: - "@lerna/prompt" "5.1.6" + "@lerna/prompt" "5.1.8" -"@lerna/output@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/output/-/output-5.1.6.tgz#e69dd303bbb636971caf0c24e9259aafb92b207a" - integrity sha512-FjZfnDwiKHeKMEZVN2eWbVd0pKINwXRjDXV0CGo1HrTvbXQI3lcrhgoPkDE42BSALaH7E9N0YCUYOYVWlJvSzQ== +"@lerna/output@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/output/-/output-5.1.8.tgz#ca4d96379bbe7556035039bf2f416f36d363082a" + integrity sha512-dXsKY8X2eAdPKRKHDZTASlWn95Eav1oQX9doUXkvV3o4UwIgqOCIsU7RqSED3EAEQz6VUH0rXNb/+d3uVeAoJQ== dependencies: npmlog "^6.0.2" -"@lerna/pack-directory@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-5.1.6.tgz#64fbd571ba346da6b0dbc4e7339851df1b97092c" - integrity sha512-dKFFQ95BheshI4eWOVYT7DF6iM8VITTwOfueLnnUe8h8OgBDHnZJOEHT+zNjvXo6sA0DtN8pvpxA8VVEroq2KQ== +"@lerna/pack-directory@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/pack-directory/-/pack-directory-5.1.8.tgz#09e02134acaecd6be81a17dec7b9fdc7f66a29b7" + integrity sha512-aaH28ttS+JVimLFrVeZRWZ9Cii4GG2vkJXmQNikWBNQiFL/7S1x83NjMk4SQRdmtpYJkcQpQMZ2hDUdNxLnDCg== dependencies: - "@lerna/get-packed" "5.1.6" - "@lerna/package" "5.1.6" - "@lerna/run-lifecycle" "5.1.6" - "@lerna/temp-write" "5.1.6" + "@lerna/get-packed" "5.1.8" + "@lerna/package" "5.1.8" + "@lerna/run-lifecycle" "5.1.8" + "@lerna/temp-write" "5.1.8" npm-packlist "^2.1.4" npmlog "^6.0.2" tar "^6.1.0" -"@lerna/package-graph@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-5.1.6.tgz#553edc82bc489449127386f420d0e0f78574b49b" - integrity sha512-kAmcZLbFcgzdwwEE34ls2hKKwLNXrp++Lb3QgLi5oZl95cGEXjhGNqECdY+hAgBxaSOAgrAd9dvxoR36zl5LJw== +"@lerna/package-graph@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/package-graph/-/package-graph-5.1.8.tgz#38339c3ad6e1469118ea3d52cf818ce7950d41c3" + integrity sha512-aGwXTwCpPfhUPiSRhdppogZjOqJPm39EBxHFDa1E0+/Qaig5avJs4hI6OrPLyjsTywAswtCMOArvD1QZqxwvrQ== dependencies: - "@lerna/prerelease-id-from-version" "5.1.6" - "@lerna/validation-error" "5.1.6" + "@lerna/prerelease-id-from-version" "5.1.8" + "@lerna/validation-error" "5.1.8" npm-package-arg "^8.1.0" npmlog "^6.0.2" semver "^7.3.4" -"@lerna/package@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/package/-/package-5.1.6.tgz#90159a4d3857178bc35c53a4e53636b4cf68ea35" - integrity sha512-OwsYEVVDEFIybYSh3edn5ZH7EoMPEmfl92pri3rqtaGYj76/ENGaQZSXT5ZH2oJKg5Jh9LrtaYAc+r/fZ+1vuQ== +"@lerna/package@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/package/-/package-5.1.8.tgz#17e119553b8c957915f92e43a5f4284ec98439c2" + integrity sha512-Ot+wu6XZ93tw8p9oSTJJA15TzGhVpo8VbgNhKPcI3JJjkxVq2D5L5jVeBkjQvFEQBonLibTr339uLLXyZ0RMzg== dependencies: load-json-file "^6.2.0" npm-package-arg "^8.1.0" write-pkg "^4.0.0" -"@lerna/prerelease-id-from-version@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.6.tgz#ce03815e967433784bbfe9b989e3368008684642" - integrity sha512-LJYIuxw9rpKkCWtE10gOOyqpcKRzV34Ljk0L0WSaXILlcWf5bAb0ZmF8t5UJ/MzhGklYwT/Fk0yPtVtu7GnBaA== +"@lerna/prerelease-id-from-version@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.8.tgz#83f27db93b19ccb74187e85b8174e4bd4f46e091" + integrity sha512-wfWv/8lHSk2/pl4FjopbDelFSLCz9s6J9AY5o7Sju9HtD9QUXcQHaXnEP1Rum9/rJZ8vWdFURcp9kzz8nxQ1Ow== dependencies: semver "^7.3.4" -"@lerna/profiler@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-5.1.6.tgz#9d67bde76e119187f35f5dc8d5c1ffe8cf92ee83" - integrity sha512-ZFU7WPIk7FxblnGx9Ux0W+NLnTGTIpjdVWEzi/8QkJssmjxerbW62lO5tvGzv6kjPQsml2kC7yPBwX9JEOFCdQ== +"@lerna/profiler@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/profiler/-/profiler-5.1.8.tgz#1f757c2bf87cdfad592d58f7d17f60e3648d956f" + integrity sha512-vpAFN85BvMHfIGA53IcwaUnS9FHAismEnNyFCjMkzKV55mmXFZlWpZyO36ESdSQRWCo5/25f3Ln0Y6YubY3Dvw== dependencies: fs-extra "^9.1.0" npmlog "^6.0.2" upath "^2.0.1" -"@lerna/project@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/project/-/project-5.1.6.tgz#a8a79c78f9c9b5406cba77ab75986e265e61940a" - integrity sha512-9EXc2uTDfruvJcWnW3UrDZCAgZ/LUOQDC92xBSi1qazSE3fEsfrLBJmMqUzBRTuGoGh5BPnJgA2l0It01z51dQ== +"@lerna/project@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/project/-/project-5.1.8.tgz#6c379d258eed12acff0d4fe8524f8f084e3892a4" + integrity sha512-zTFp91kmyJ0VHBmNXEArVrMSZVxnBJ7pHTt8C7RY91WSZhw8XDNumqMHDM+kEM1z/AtDBAAAGqBE3sjk5ONDXQ== dependencies: - "@lerna/package" "5.1.6" - "@lerna/validation-error" "5.1.6" + "@lerna/package" "5.1.8" + "@lerna/validation-error" "5.1.8" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" @@ -2779,38 +2779,38 @@ resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/prompt@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-5.1.6.tgz#3f1ea0655f047ae0a001a8645152df4c0a77816a" - integrity sha512-3Ds/N8mzb1zyTq079CMPCg2wfo5cwVBtr0N5Bh9A+NERQuLavxF1tBRKRYLF4h9zHdybNvAMkKfoQkkyJNliQg== +"@lerna/prompt@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/prompt/-/prompt-5.1.8.tgz#292639f0c4064f088462bc45b1825b9496a265c9" + integrity sha512-Cmq0FV/vyCHu00kySxXMfuPvutsi8qoME2/nFcICIktvDqxXr5aSFY8QqB123awNCbpb4xcHykjFnEj/RNdb2Q== dependencies: inquirer "^7.3.3" npmlog "^6.0.2" -"@lerna/publish@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-5.1.6.tgz#9148b47e73e3fdcc0dace0f2c079951f0f63b2a5" - integrity sha512-ZGB4JJBUTBnx5N37qNdyZ+iZX4KXtjbEnB3WU7HH7IzMHc4JZbDEQhAyfELKdvB4gEdYJTsfA8v8J75U3HcluA== - dependencies: - "@lerna/check-working-tree" "5.1.6" - "@lerna/child-process" "5.1.6" - "@lerna/collect-updates" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/describe-ref" "5.1.6" - "@lerna/log-packed" "5.1.6" - "@lerna/npm-conf" "5.1.6" - "@lerna/npm-dist-tag" "5.1.6" - "@lerna/npm-publish" "5.1.6" - "@lerna/otplease" "5.1.6" - "@lerna/output" "5.1.6" - "@lerna/pack-directory" "5.1.6" - "@lerna/prerelease-id-from-version" "5.1.6" - "@lerna/prompt" "5.1.6" - "@lerna/pulse-till-done" "5.1.6" - "@lerna/run-lifecycle" "5.1.6" - "@lerna/run-topologically" "5.1.6" - "@lerna/validation-error" "5.1.6" - "@lerna/version" "5.1.6" +"@lerna/publish@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/publish/-/publish-5.1.8.tgz#a503d88ea74f197bfc4b02c23e43414b75e94583" + integrity sha512-Q88WxXVNAh/ZWj7vYG83RZUfQyQlJMg7tDhsVTvZzy3VpkkCPtmJXZfX+g4RmE0PNyjsXx9QLYAOZnOB613WyA== + dependencies: + "@lerna/check-working-tree" "5.1.8" + "@lerna/child-process" "5.1.8" + "@lerna/collect-updates" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/describe-ref" "5.1.8" + "@lerna/log-packed" "5.1.8" + "@lerna/npm-conf" "5.1.8" + "@lerna/npm-dist-tag" "5.1.8" + "@lerna/npm-publish" "5.1.8" + "@lerna/otplease" "5.1.8" + "@lerna/output" "5.1.8" + "@lerna/pack-directory" "5.1.8" + "@lerna/prerelease-id-from-version" "5.1.8" + "@lerna/prompt" "5.1.8" + "@lerna/pulse-till-done" "5.1.8" + "@lerna/run-lifecycle" "5.1.8" + "@lerna/run-topologically" "5.1.8" + "@lerna/validation-error" "5.1.8" + "@lerna/version" "5.1.8" fs-extra "^9.1.0" libnpmaccess "^4.0.1" npm-package-arg "^8.1.0" @@ -2821,97 +2821,97 @@ pacote "^13.4.1" semver "^7.3.4" -"@lerna/pulse-till-done@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-5.1.6.tgz#0b79ea17c877ae06a6ae2d41386cd2503df96e66" - integrity sha512-R9YpgGAlRB9XyYBZt41i8rLsnLqUDB8LYlOFhfrBX0Y1mI0/+9iYIHF0xBemrHqimQftu3QxvEoxpsDrXUJBIg== +"@lerna/pulse-till-done@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/pulse-till-done/-/pulse-till-done-5.1.8.tgz#585ebc121841d9f1c587c553a3990601ac0e4168" + integrity sha512-KsyOazHG6wnjfdJhIdhTaTNwhj8Np/aPPei/ac9WzcuzgLS/uCs1IVFFIYBv5JdTmyVBKmguSZxdYjk7JzKBew== dependencies: npmlog "^6.0.2" -"@lerna/query-graph@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-5.1.6.tgz#8729cf6d634d7ad978a35674184a9693418bc6c2" - integrity sha512-67dzRjCGjYjEUpO3PwFIcTpgJhaQO4WT687bpJh8M5XaS0xeaz2g+e1C9U/n8xIHJm3N2PlKYMSczuvPhSayCw== +"@lerna/query-graph@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/query-graph/-/query-graph-5.1.8.tgz#8ef6059f81e0fb64c4236f5fb664582568225af9" + integrity sha512-+p+bjPI403Hwv1djTS5aJe7DtPWIDw0a427BE68h1mmrPc9oTe3GG+0lingbfGR8woA2rOmjytgK2jeErOryPg== dependencies: - "@lerna/package-graph" "5.1.6" + "@lerna/package-graph" "5.1.8" -"@lerna/resolve-symlink@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-5.1.6.tgz#57928c17d76971749f862f89fe6de8b84bc81e34" - integrity sha512-+2rCXIj8jM31WRPqUffBAb1e5TimgSDSPTM/q52cvSs+JRgqiw+aVx/8FgG/a/bMg+5+Zx/+A4c8KxnWCjLF5A== +"@lerna/resolve-symlink@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/resolve-symlink/-/resolve-symlink-5.1.8.tgz#dbccd14caf2701a9c968f1cb869b2bab28f0144a" + integrity sha512-OJa8ct4Oo2BcD95FmJqkc5qZMepaQK5RZAWoTqEXG/13Gs0mPc0fZGIhnnpTqtm3mgNhlT7ypCHG42I7hKiSeg== dependencies: fs-extra "^9.1.0" npmlog "^6.0.2" read-cmd-shim "^2.0.0" -"@lerna/rimraf-dir@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-5.1.6.tgz#dff2eb82bcbde1cd5a4d186d1df8aa5cb03b816e" - integrity sha512-8J9LrlW/IzSvDXxk7hbobofSOXvKS2o+q6vdamrwLapk2KfI/KGh0auBo/s4Rvr5t6OZfpr4/woLJyQFdnwWWA== +"@lerna/rimraf-dir@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/rimraf-dir/-/rimraf-dir-5.1.8.tgz#b0546a785cef0eb549b9b21a831e732ac56a7d84" + integrity sha512-3pT1X8kzW8xHUuAmRgzSKAF+/H1h1eSWq5+ACzeTWnvgqE7++0URee7TXwVCP/5FZPTZIzIclQCh4G0WD9Jfjg== dependencies: - "@lerna/child-process" "5.1.6" + "@lerna/child-process" "5.1.8" npmlog "^6.0.2" path-exists "^4.0.0" rimraf "^3.0.2" -"@lerna/run-lifecycle@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-5.1.6.tgz#8a43e28660b8929b76f6a16088a055fb31ecba1b" - integrity sha512-rTLQwIwUtN6+WpyFceZoahi1emTlLwJYwTMBZZla3w6aBwERdfpEvB4MVz2F6/TTYmJ2uzWa1Y85faGH4x4blA== +"@lerna/run-lifecycle@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/run-lifecycle/-/run-lifecycle-5.1.8.tgz#bac65e96f20b395a1e05db3823fa68d82a7796c8" + integrity sha512-5rRpovujhLJufKRzMp5sl2BIIqrPeoXxjniQbzkpSxZ2vnD+bE9xOoaciHQxOsmXfXhza0C+k3xYMM5+B/bVzg== dependencies: - "@lerna/npm-conf" "5.1.6" + "@lerna/npm-conf" "5.1.8" "@npmcli/run-script" "^3.0.2" npmlog "^6.0.2" -"@lerna/run-topologically@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-5.1.6.tgz#a34e5ce84dcddaa3e94d742c44b7233e7baf1ed8" - integrity sha512-2THwjyU/aq7NOUmjCKQYK7l78fUoBwBtWXFGfeqK5xN5LBc2zr293cC1Z7CAZHUVh1JklLWL0PXX8Z34g3210g== +"@lerna/run-topologically@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/run-topologically/-/run-topologically-5.1.8.tgz#5c49ab5ebf0a871c5f705db74648d0023448c387" + integrity sha512-isuulfBdNsrgV2QF/HwCKCecfR9mPEU9N4Nf8n9nQQgakwOscoDlwGp2xv27pvcQKI52q/o/ISEjz3JeoEQiOA== dependencies: - "@lerna/query-graph" "5.1.6" + "@lerna/query-graph" "5.1.8" p-queue "^6.6.2" -"@lerna/run@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/run/-/run-5.1.6.tgz#1e47bfb792109e37740d65786e7079c666c3fd15" - integrity sha512-WMZF4tKFL/hGhUHphcYJNUDGvpHdrLD8ysACiqgIyu5ssIWiXb0wbUO0OeGWMss0b7TNOUG1y6DGOPFWFWRd3w== - dependencies: - "@lerna/command" "5.1.6" - "@lerna/filter-options" "5.1.6" - "@lerna/npm-run-script" "5.1.6" - "@lerna/output" "5.1.6" - "@lerna/profiler" "5.1.6" - "@lerna/run-topologically" "5.1.6" - "@lerna/timer" "5.1.6" - "@lerna/validation-error" "5.1.6" +"@lerna/run@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/run/-/run-5.1.8.tgz#ede8db4df9ae19e87e1cc372a820f29a9ef5079b" + integrity sha512-E5mI3FswVN9zQ3bCYUQxxPlLL400vnKpwLSzzRNFy//TR8Geu0LeR6NY+Jf0jklsKxwWGMJgqL6VqPqxDaNtdw== + dependencies: + "@lerna/command" "5.1.8" + "@lerna/filter-options" "5.1.8" + "@lerna/npm-run-script" "5.1.8" + "@lerna/output" "5.1.8" + "@lerna/profiler" "5.1.8" + "@lerna/run-topologically" "5.1.8" + "@lerna/timer" "5.1.8" + "@lerna/validation-error" "5.1.8" p-map "^4.0.0" -"@lerna/symlink-binary@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-5.1.6.tgz#ce4d5be8d8a4885c3f3e81007137c4ae393311d0" - integrity sha512-nj5a77e8Vk+AZY+batyr+lCo3EcGTiGjSP0MFnkXKn1wUyUUZiKgS48J/9RTNdTpWZRC4G2PneR6BUmnF6Mnlg== +"@lerna/symlink-binary@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/symlink-binary/-/symlink-binary-5.1.8.tgz#0e92997547d13d3da7efe437ecad64b919ff0383" + integrity sha512-s7VfKNJZnWvTKZ7KR8Yxh1rYhE/ARMioD5axyu3FleS3Xsdla2M5sQsLouCrdfM3doTO8lMxPVvVSFmL7q0KOA== dependencies: - "@lerna/create-symlink" "5.1.6" - "@lerna/package" "5.1.6" + "@lerna/create-symlink" "5.1.8" + "@lerna/package" "5.1.8" fs-extra "^9.1.0" p-map "^4.0.0" -"@lerna/symlink-dependencies@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.6.tgz#38f5a94e6450b0bff0c17b3e44b4d527827cea24" - integrity sha512-nMVTEm8oi3TrKXmDeS9445zngWQR31AShKH+u9f+YZVYE1Ncv4/XpgDSkTNsbm//vMi0ilWH+QQxjBC+pDXd8Q== +"@lerna/symlink-dependencies@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.8.tgz#a8738d122b4274397e65a565d444540b9a10df61" + integrity sha512-U5diiaKdWUlvoFMh3sYIEESBLa8Z3Q/EpkLl5o4YkcbPBjFHJFpmoqCGomwL9sf9HQUV2S9Lt9szJT8qgQm86Q== dependencies: - "@lerna/create-symlink" "5.1.6" - "@lerna/resolve-symlink" "5.1.6" - "@lerna/symlink-binary" "5.1.6" + "@lerna/create-symlink" "5.1.8" + "@lerna/resolve-symlink" "5.1.8" + "@lerna/symlink-binary" "5.1.8" fs-extra "^9.1.0" p-map "^4.0.0" p-map-series "^2.1.0" -"@lerna/temp-write@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-5.1.6.tgz#3b486297b1ccc732c3dbea34e6f42a6198ba2c82" - integrity sha512-Ycb0dNBi5bwgVyc/aeZ5JmgSEWfaJjh9efFqDfsj763HBLr9sBZvqQYBRXGAWxBdDWy+lXTXximsQw5gJZZxpw== +"@lerna/temp-write@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/temp-write/-/temp-write-5.1.8.tgz#e3e16743160fdde2fadbff6e1855c4050495b38e" + integrity sha512-4/guYB5XotugyM8P/F1z6b+hNlSCe/QuZsmiZwgXOw2lmYnkSzLWDVjqsdZtNYqojK0lioxcPjZiL5qnEkk1PQ== dependencies: graceful-fs "^4.1.15" is-stream "^2.0.0" @@ -2919,37 +2919,37 @@ temp-dir "^1.0.0" uuid "^8.3.2" -"@lerna/timer@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-5.1.6.tgz#a0fdebc3cbce93907b6855515726c31e8e5c50ac" - integrity sha512-m28ufTfg7zibqPujxborrTy9WrocCmoMXvw1PuSZ0LCf5hhK3HUJJ8ybxYAGpUXdZqjzvRQNlc954GsOkCSJEA== +"@lerna/timer@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/timer/-/timer-5.1.8.tgz#8613aca7ed121a7c9f73f754a5b07e9891bf2e5e" + integrity sha512-Ua4bw2YOO3U+sFujE+MsUG+lllU0X7u6PCTj1QKe0QlR0zr2gCa0pcwjUQPdNfxnpJpPY+hdbfTUv2viDloaiA== -"@lerna/validation-error@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-5.1.6.tgz#12371dcc8dc610e04644b1bcf05535c6487755ca" - integrity sha512-6+rc1bGTqaRMvML8Qew+RoqZFxyESSX+GBCTv0pW1SBcNo/yC76fq9y/WSA3dn6GuqHWyX3H0Yki7HutezM7/A== +"@lerna/validation-error@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/validation-error/-/validation-error-5.1.8.tgz#e12f6ee6bb9bd18bc1f3b2d0ae3045882d2a4f32" + integrity sha512-n+IiaxN2b08ZMYnezsmwL6rXB15/VvweusC04GMh1XtWunnMzSg9JDM7y6bw2vfpBBQx6cBFhLKSpD2Fcq5D5Q== dependencies: npmlog "^6.0.2" -"@lerna/version@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/version/-/version-5.1.6.tgz#7d0906e130bd29046a3827088033b9b7d2289545" - integrity sha512-UE7ZHUdHtlmHQPK8ZSc62BHnWXIPqV7nzQAM/tQngIGSAH0oXHjxktP4ysPRqX8U0jfl212fSveVK7HK988zoQ== - dependencies: - "@lerna/check-working-tree" "5.1.6" - "@lerna/child-process" "5.1.6" - "@lerna/collect-updates" "5.1.6" - "@lerna/command" "5.1.6" - "@lerna/conventional-commits" "5.1.6" - "@lerna/github-client" "5.1.6" - "@lerna/gitlab-client" "5.1.6" - "@lerna/output" "5.1.6" - "@lerna/prerelease-id-from-version" "5.1.6" - "@lerna/prompt" "5.1.6" - "@lerna/run-lifecycle" "5.1.6" - "@lerna/run-topologically" "5.1.6" - "@lerna/temp-write" "5.1.6" - "@lerna/validation-error" "5.1.6" +"@lerna/version@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/version/-/version-5.1.8.tgz#fa2034bbbbcdaf5493d6235109f6e4813f8f7a60" + integrity sha512-3f4P7KjIs6Gn2iaGkA5EASE9izZeDKtEzE8i2DE7YfVdw/P+EwFfKv2mKBXGbckYw42YO1tL6aD2QH0C8XbwlA== + dependencies: + "@lerna/check-working-tree" "5.1.8" + "@lerna/child-process" "5.1.8" + "@lerna/collect-updates" "5.1.8" + "@lerna/command" "5.1.8" + "@lerna/conventional-commits" "5.1.8" + "@lerna/github-client" "5.1.8" + "@lerna/gitlab-client" "5.1.8" + "@lerna/output" "5.1.8" + "@lerna/prerelease-id-from-version" "5.1.8" + "@lerna/prompt" "5.1.8" + "@lerna/run-lifecycle" "5.1.8" + "@lerna/run-topologically" "5.1.8" + "@lerna/temp-write" "5.1.8" + "@lerna/validation-error" "5.1.8" chalk "^4.1.0" dedent "^0.7.0" load-json-file "^6.2.0" @@ -2963,10 +2963,10 @@ slash "^3.0.0" write-json-file "^4.3.0" -"@lerna/write-log-file@5.1.6": - version "5.1.6" - resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-5.1.6.tgz#88f62ca90dd947246a0bf0a45c3012e919002ec6" - integrity sha512-UfuERC0dN5cw6Vc11/8fDfnXfuEQXKbOweJ2D83nrNJIZS/HwWkAoYVZ493w7xJzrqKi6V352BY3m9D7pi8h5g== +"@lerna/write-log-file@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@lerna/write-log-file/-/write-log-file-5.1.8.tgz#b464c7fab43c14adb96ba41d92900b8907d8d14d" + integrity sha512-B+shMH3TpzA7Q5GGbuNkOmdPQdD1LXRFj7R17LINkn82PhP9CUgubwYuiVzrLa16ADi0V5Ad76pqtHi/6kD0nA== dependencies: npmlog "^6.0.2" write-file-atomic "^3.0.3" @@ -6385,11 +6385,6 @@ decamelize@^1.1.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" @@ -7524,11 +7519,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -7890,20 +7880,20 @@ git-semver-tags@^4.1.1: meow "^8.0.0" semver "^6.0.0" -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== +git-up@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-6.0.0.tgz#dbd6e4eee270338be847a0601e6d0763c90b74db" + integrity sha512-6RUFSNd1c/D0xtGnyWN2sxza2bZtZ/EmI9448n6rCZruFwV/ezeEn2fJP7XnUQGwf0RAtd/mmUCbtH6JPYA2SA== dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" + is-ssh "^1.4.0" + parse-url "^7.0.2" -git-url-parse@^11.4.4: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== +git-url-parse@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-12.0.0.tgz#4ba70bc1e99138321c57e3765aaf7428e5abb793" + integrity sha512-I6LMWsxV87vysX1WfsoglXsXg6GjQRKq7+Dgiseo+h0skmp5Hp2rzmcEIRQot9CPA+uzU7x1x7jZdqvTFGnB+Q== dependencies: - git-up "^4.0.0" + git-up "^6.0.0" gitconfiglocal@^1.0.0: version "1.0.0" @@ -8954,7 +8944,7 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-ssh@^1.3.0: +is-ssh@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== @@ -9779,27 +9769,27 @@ lazy-ass@^1.6.0: resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= -lerna@5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-5.1.6.tgz#07db65b5cc3683a237f655feb7671f2c2a27255b" - integrity sha512-eiLj3IurbEas1rGtntW4Cf2/6y90Ot2oQaU2wv4uo2rHf6GRXUBEZ0nrE4yseDlNtsS/H7bqfrvlAYb3PWUG1A== - dependencies: - "@lerna/add" "5.1.6" - "@lerna/bootstrap" "5.1.6" - "@lerna/changed" "5.1.6" - "@lerna/clean" "5.1.6" - "@lerna/cli" "5.1.6" - "@lerna/create" "5.1.6" - "@lerna/diff" "5.1.6" - "@lerna/exec" "5.1.6" - "@lerna/import" "5.1.6" - "@lerna/info" "5.1.6" - "@lerna/init" "5.1.6" - "@lerna/link" "5.1.6" - "@lerna/list" "5.1.6" - "@lerna/publish" "5.1.6" - "@lerna/run" "5.1.6" - "@lerna/version" "5.1.6" +lerna@5.1.8: + version "5.1.8" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-5.1.8.tgz#77b2f10882c3eaec256fa9a643a21957e6ca7ec2" + integrity sha512-KrpFx2l1x1X7wb9unqRU7OZTaNs5+67VQ1vxf8fIMgdtCAjEqkLxF/F3xLs+KBMws5PV19Q9YtPHn7SiwDl7iQ== + dependencies: + "@lerna/add" "5.1.8" + "@lerna/bootstrap" "5.1.8" + "@lerna/changed" "5.1.8" + "@lerna/clean" "5.1.8" + "@lerna/cli" "5.1.8" + "@lerna/create" "5.1.8" + "@lerna/diff" "5.1.8" + "@lerna/exec" "5.1.8" + "@lerna/import" "5.1.8" + "@lerna/info" "5.1.8" + "@lerna/init" "5.1.8" + "@lerna/link" "5.1.8" + "@lerna/list" "5.1.8" + "@lerna/publish" "5.1.8" + "@lerna/run" "5.1.8" + "@lerna/version" "5.1.8" import-local "^3.0.2" npmlog "^6.0.2" @@ -11359,25 +11349,22 @@ parse-numeric-range@^1.3.0: resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== -parse-path@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" - integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== +parse-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-5.0.0.tgz#f933152f3c6d34f4cf36cfc3d07b138ac113649d" + integrity sha512-qOpH55/+ZJ4jUu/oLO+ifUKjFPNZGfnPJtzvGzKN/4oLMil5m9OH4VpOj6++9/ytJcfks4kzH2hhi87GL/OU9A== dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" + protocols "^2.0.0" -parse-url@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.2.tgz#4a30b057bfc452af64512dfb1a7755c103db3ea1" - integrity sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ== +parse-url@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-7.0.2.tgz#d21232417199b8d371c6aec0cedf1406fd6393f0" + integrity sha512-PqO4Z0eCiQ08Wj6QQmrmp5YTTxpYfONdOEamrtvK63AmzXpcavIVQubGHxOEwiIoDZFb8uDOoQFS0NCcjqIYQg== dependencies: - is-ssh "^1.3.0" + is-ssh "^1.4.0" normalize-url "^6.1.0" - parse-path "^4.0.4" - protocols "^1.4.0" + parse-path "^5.0.0" + protocols "^2.0.1" parse5-htmlparser2-tree-adapter@^7.0.0: version "7.0.0" @@ -11964,12 +11951,7 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - -protocols@^2.0.1: +protocols@^2.0.0, protocols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== @@ -12034,28 +12016,11 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -qs@^6.9.4: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -13294,11 +13259,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - split2@^3.0.0: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" @@ -13379,11 +13339,6 @@ std-env@^3.0.1: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.0.1.tgz#bc4cbc0e438610197e34c2d79c3df30b491f5182" integrity sha512-mC1Ps9l77/97qeOZc+HrOL7TIaOboHqMZ24dGVQrlxFcpPpfCHpH+qfUT7Dz+6mlG8+JPA1KfBQo19iC/+Ngcw== -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - string-argv@^0.3.1, string-argv@~0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" From 4138b0df4da43dd0c145f35792982b055fb56ea1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 23:08:01 -0700 Subject: [PATCH 04/72] chore: Bump @babel/types from 7.18.7 to 7.18.8 (#5335) Bumps [@babel/types](https://github.com/babel/babel/tree/HEAD/packages/babel-types) from 7.18.7 to 7.18.8. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.8/packages/babel-types) --- updated-dependencies: - dependency-name: "@babel/types" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 71717bb02e0..55154875895 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1179,9 +1179,9 @@ globals "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.12.7", "@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.18.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.7.tgz#a4a2c910c15040ea52cdd1ddb1614a65c8041726" - integrity sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.8.tgz#c5af199951bf41ba4a6a9a6d0d8ad722b30cd42f" + integrity sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw== dependencies: "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" From c3f199a65a16aa72f5bb83e81a1ce0ffb5f69772 Mon Sep 17 00:00:00 2001 From: Armano Date: Mon, 18 Jul 2022 18:47:46 +0200 Subject: [PATCH 05/72] fix(eslint-plugin): [no-unused-vars] highlight last write reference (#5267) --- .../eslint-plugin/src/rules/no-unused-vars.ts | 11 +++- .../no-unused-vars-eslint.test.ts | 59 ++++++++++++++----- .../no-unused-vars/no-unused-vars.test.ts | 41 +++++++++++-- 3 files changed, 87 insertions(+), 24 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-unused-vars.ts b/packages/eslint-plugin/src/rules/no-unused-vars.ts index 00956e9daf9..fb16cf5786e 100644 --- a/packages/eslint-plugin/src/rules/no-unused-vars.ts +++ b/packages/eslint-plugin/src/rules/no-unused-vars.ts @@ -422,10 +422,15 @@ export default util.createRule({ for (const unusedVar of unusedVars) { // Report the first declaration. if (unusedVar.defs.length > 0) { + const writeReferences = unusedVar.references.filter( + ref => + ref.isWrite() && + ref.from.variableScope === unusedVar.scope.variableScope, + ); + context.report({ - node: unusedVar.references.length - ? unusedVar.references[unusedVar.references.length - 1] - .identifier + node: writeReferences.length + ? writeReferences[writeReferences.length - 1].identifier : unusedVar.identifiers[0], messageId: 'unusedVar', data: unusedVar.references.some(ref => ref.isWrite()) diff --git a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts index 14cfff7e0b9..44ffd089377 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts @@ -1753,8 +1753,8 @@ foo.forEach(item => { }, { ...assignedError('b'), - line: 4, - column: 7, + line: 2, + column: 9, }, ], }, @@ -2601,7 +2601,7 @@ myArray = myArray.filter(x => x == 1); { ...assignedError('myArray'), line: 3, - column: 11, + column: 1, }, ], }, @@ -2628,8 +2628,8 @@ var a = function () { errors: [ { ...assignedError('a'), - line: 3, - column: 3, + line: 2, + column: 5, }, ], }, @@ -2644,7 +2644,7 @@ var a = function () { errors: [ { ...assignedError('a'), - line: 4, + line: 2, column: 5, }, ], @@ -2659,8 +2659,8 @@ const a = () => { errors: [ { ...assignedError('a'), - line: 3, - column: 3, + line: 2, + column: 7, }, ], }, @@ -2674,11 +2674,18 @@ const a = () => () => { errors: [ { ...assignedError('a'), - line: 3, - column: 3, + line: 2, + column: 7, }, ], }, + + // https://github.com/eslint/eslint/issues/14324 + { + code: 'let x = [];\nx = x.concat(x);', + parserOptions: { ecmaVersion: 2015 }, + errors: [{ ...assignedError('x'), line: 2, column: 1 }], + }, { code: ` let a = 'a'; @@ -2692,20 +2699,42 @@ function foo() { `, parserOptions: { ecmaVersion: 2020 }, errors: [ + { + ...assignedError('a'), + line: 3, + column: 1, + }, { ...definedError('foo'), line: 4, column: 10, }, - { - ...assignedError('a'), - line: 7, - column: 5, - }, ], }, { code: ` +let foo; +init(); +foo = foo + 2; +function init() { + foo = 1; +} + `, + parserOptions: { ecmaVersion: 2020 }, + errors: [{ ...assignedError('foo'), line: 4, column: 1 }], + }, + { + code: ` +function foo(n) { + if (n < 2) return 1; + return n * foo(n - 1); +} + `, + parserOptions: { ecmaVersion: 2020 }, + errors: [{ ...definedError('foo'), line: 2, column: 10 }], + }, + { + code: ` let c = 'c'; c = 10; function foo1() { diff --git a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts index cca98d2a952..362466ee1a0 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts @@ -1458,8 +1458,8 @@ namespace Foo { action: 'defined', additional: '', }, - line: 4, - column: 15, + line: 2, + column: 11, }, ], }, @@ -1490,8 +1490,8 @@ namespace Foo { action: 'defined', additional: '', }, - line: 5, - column: 17, + line: 3, + column: 13, }, ], }, @@ -1506,7 +1506,8 @@ interface Foo { errors: [ { messageId: 'unusedVar', - line: 4, + line: 2, + column: 11, data: { varName: 'Foo', action: 'defined', @@ -1523,6 +1524,7 @@ type Foo = Array; { messageId: 'unusedVar', line: 2, + column: 6, data: { varName: 'Foo', action: 'defined', @@ -1550,6 +1552,7 @@ export const ComponentFoo = () => { { messageId: 'unusedVar', line: 3, + column: 10, data: { varName: 'Fragment', action: 'defined', @@ -1577,6 +1580,7 @@ export const ComponentFoo = () => { { messageId: 'unusedVar', line: 2, + column: 8, data: { varName: 'React', action: 'defined', @@ -1604,6 +1608,7 @@ export const ComponentFoo = () => { { messageId: 'unusedVar', line: 2, + column: 8, data: { varName: 'React', action: 'defined', @@ -1624,6 +1629,7 @@ declare module 'foo' { { messageId: 'unusedVar', line: 3, + column: 8, data: { varName: 'Test', action: 'defined', @@ -1649,6 +1655,7 @@ export namespace Foo { { messageId: 'unusedVar', line: 4, + column: 13, data: { varName: 'Bar', action: 'defined', @@ -1658,6 +1665,7 @@ export namespace Foo { { messageId: 'unusedVar', line: 5, + column: 15, data: { varName: 'Baz', action: 'defined', @@ -1667,6 +1675,7 @@ export namespace Foo { { messageId: 'unusedVar', line: 6, + column: 17, data: { varName: 'Bam', action: 'defined', @@ -1676,6 +1685,7 @@ export namespace Foo { { messageId: 'unusedVar', line: 7, + column: 15, data: { varName: 'x', action: 'assigned a value', @@ -1696,7 +1706,8 @@ interface Foo { errors: [ { messageId: 'unusedVar', - line: 6, + line: 2, + column: 11, data: { varName: 'Foo', action: 'defined', @@ -1705,5 +1716,23 @@ interface Foo { }, ], }, + { + code: ` +let x = null; +x = foo(x); + `, + errors: [ + { + messageId: 'unusedVar', + line: 3, + column: 1, + data: { + varName: 'x', + action: 'assigned a value', + additional: '', + }, + }, + ], + }, ], }); From b2846a16777a3aea7b1e6ac9d81b9b6dce0bb874 Mon Sep 17 00:00:00 2001 From: Armano Date: Mon, 18 Jul 2022 18:48:34 +0200 Subject: [PATCH 06/72] fix(scope-manager): allow visiting of constraint in infer type (#5331) --- .prettierignore | 1 + .../src/referencer/TypeVisitor.ts | 2 + .../type-declaration/infer-type-constraint.ts | 2 + .../infer-type-constraint.ts.shot | 133 ++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts create mode 100644 packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts.shot diff --git a/.prettierignore b/.prettierignore index eda67619c87..913e2cce1e9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -16,6 +16,7 @@ packages/ast-spec/src/*/*/fixtures/_error_/*/fixture.ts # Syntax not yet supported packages/scope-manager/tests/fixtures/type-declaration/type-query-with-parameters.ts +packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts # Ignore CHANGELOG.md files to avoid issues with automated release job CHANGELOG.md diff --git a/packages/scope-manager/src/referencer/TypeVisitor.ts b/packages/scope-manager/src/referencer/TypeVisitor.ts index 4b39676850d..ca80683538f 100644 --- a/packages/scope-manager/src/referencer/TypeVisitor.ts +++ b/packages/scope-manager/src/referencer/TypeVisitor.ts @@ -167,6 +167,8 @@ class TypeVisitor extends Visitor { typeParameter.name, new TypeDefinition(typeParameter.name, typeParameter), ); + + this.visit(typeParameter.constraint); } protected TSInterfaceDeclaration( diff --git a/packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts b/packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts new file mode 100644 index 00000000000..1fb19d20251 --- /dev/null +++ b/packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts @@ -0,0 +1,2 @@ +type X = string | number; +type Id = T extends { id: infer Id extends X } ? Id : never; diff --git a/packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts.shot b/packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts.shot new file mode 100644 index 00000000000..d26d25584a2 --- /dev/null +++ b/packages/scope-manager/tests/fixtures/type-declaration/infer-type-constraint.ts.shot @@ -0,0 +1,133 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`type-declaration infer-type-constraint 1`] = ` +ScopeManager { + variables: Array [ + ImplicitGlobalConstTypeVariable, + Variable$2 { + defs: Array [ + TypeDefinition$1 { + name: Identifier<"X">, + node: TSTypeAliasDeclaration$1, + }, + ], + name: "X", + references: Array [ + Reference$2 { + identifier: Identifier<"X">, + isRead: true, + isTypeReference: true, + isValueReference: false, + isWrite: false, + resolved: Variable$2, + }, + ], + isValueVariable: false, + isTypeVariable: true, + }, + Variable$3 { + defs: Array [ + TypeDefinition$2 { + name: Identifier<"Id">, + node: TSTypeAliasDeclaration$2, + }, + ], + name: "Id", + references: Array [], + isValueVariable: false, + isTypeVariable: true, + }, + Variable$4 { + defs: Array [ + TypeDefinition$3 { + name: Identifier<"T">, + node: TSTypeParameter$3, + }, + ], + name: "T", + references: Array [ + Reference$1 { + identifier: Identifier<"T">, + isRead: true, + isTypeReference: true, + isValueReference: false, + isWrite: false, + resolved: Variable$4, + }, + ], + isValueVariable: false, + isTypeVariable: true, + }, + Variable$5 { + defs: Array [ + TypeDefinition$4 { + name: Identifier<"Id">, + node: TSTypeParameter$4, + }, + ], + name: "Id", + references: Array [ + Reference$3 { + identifier: Identifier<"Id">, + isRead: true, + isTypeReference: true, + isValueReference: false, + isWrite: false, + resolved: Variable$5, + }, + ], + isValueVariable: false, + isTypeVariable: true, + }, + ], + scopes: Array [ + GlobalScope$1 { + block: Program$5, + isStrict: false, + references: Array [], + set: Map { + "const" => ImplicitGlobalConstTypeVariable, + "X" => Variable$2, + "Id" => Variable$3, + }, + type: "global", + upper: null, + variables: Array [ + ImplicitGlobalConstTypeVariable, + Variable$2, + Variable$3, + ], + }, + TypeScope$2 { + block: TSTypeAliasDeclaration$2, + isStrict: true, + references: Array [], + set: Map { + "T" => Variable$4, + }, + type: "type", + upper: GlobalScope$1, + variables: Array [ + Variable$4, + ], + }, + ConditionalTypeScope$3 { + block: TSConditionalType$6, + isStrict: true, + references: Array [ + Reference$1, + Reference$2, + Reference$3, + ], + set: Map { + "Id" => Variable$5, + }, + type: "conditionalType", + upper: TypeScope$2, + variables: Array [ + Variable$5, + ], + }, + ], +} +`; From 4ba9bdb93f87e6bc370f13aa1de48f435abe3f88 Mon Sep 17 00:00:00 2001 From: Darkylin Date: Tue, 19 Jul 2022 00:49:34 +0800 Subject: [PATCH 07/72] fix: expose types supporting old versions of typescript (#5339) --- packages/parser/package.json | 1 + packages/types/package.json | 1 + packages/typescript-estree/package.json | 1 + packages/visitor-keys/package.json | 1 + 4 files changed, 4 insertions(+) diff --git a/packages/parser/package.json b/packages/parser/package.json index e12172132f1..e3ef7909903 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -6,6 +6,7 @@ "types": "dist/index.d.ts", "files": [ "dist", + "_ts3.4", "README.md", "LICENSE" ], diff --git a/packages/types/package.json b/packages/types/package.json index ef24916891a..35615a4c0b8 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -12,6 +12,7 @@ }, "files": [ "dist", + "_ts3.4", "package.json", "README.md", "LICENSE" diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index ae04d878112..1d9e062482b 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -6,6 +6,7 @@ "types": "dist/index.d.ts", "files": [ "dist", + "_ts3.4", "README.md", "LICENSE" ], diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json index 0c650a1482a..cdf2cddf574 100644 --- a/packages/visitor-keys/package.json +++ b/packages/visitor-keys/package.json @@ -12,6 +12,7 @@ }, "files": [ "dist", + "_ts3.4", "package.json", "README.md", "LICENSE" From 9ed8fe34e14d930ab18e1bce775e7a27f8698ab8 Mon Sep 17 00:00:00 2001 From: Doma Date: Tue, 19 Jul 2022 00:50:56 +0800 Subject: [PATCH 08/72] docs(eslint-plugin): [comma-dangle] fix incorrect section heading (#5320) --- packages/eslint-plugin/docs/rules/comma-dangle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/eslint-plugin/docs/rules/comma-dangle.md b/packages/eslint-plugin/docs/rules/comma-dangle.md index f18992fff77..9c827252f3b 100644 --- a/packages/eslint-plugin/docs/rules/comma-dangle.md +++ b/packages/eslint-plugin/docs/rules/comma-dangle.md @@ -9,7 +9,7 @@ It adds support for TypeScript syntax. See the [ESLint documentation](https://eslint.org/docs/rules/comma-dangle) for more details on the `comma-dangle` rule. -## Rule Changes +## How to Use ```jsonc { From 98f6d5e6d08d1eb9789da52a15f337f5f53438bd Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Tue, 19 Jul 2022 00:53:00 +0800 Subject: [PATCH 09/72] fix(eslint-plugin): [no-inferrable] fix optional param to valid code (#5342) * fix(eslint-plugin): [no-inferrable] fix optional param to valid code * Add definite assignment --- .../src/rules/no-inferrable-types.ts | 13 ++++- .../tests/rules/no-inferrable-types.test.ts | 49 ++++++++++++++++++- 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/src/rules/no-inferrable-types.ts b/packages/eslint-plugin/src/rules/no-inferrable-types.ts index 9adb4bca9ec..e77b694cc70 100644 --- a/packages/eslint-plugin/src/rules/no-inferrable-types.ts +++ b/packages/eslint-plugin/src/rules/no-inferrable-types.ts @@ -46,6 +46,8 @@ export default util.createRule({ }, ], create(context, [{ ignoreParameters, ignoreProperties }]) { + const sourceCode = context.getSourceCode(); + function isFunctionCall( init: TSESTree.Expression, callName: string, @@ -215,7 +217,16 @@ export default util.createRule({ data: { type, }, - fix: fixer => fixer.remove(typeNode), + *fix(fixer) { + if ( + (node.type === AST_NODE_TYPES.AssignmentPattern && + node.left.optional) || + (node.type === AST_NODE_TYPES.PropertyDefinition && node.definite) + ) { + yield fixer.remove(sourceCode.getTokenBefore(typeNode)!); + } + yield fixer.remove(typeNode); + }, }); } diff --git a/packages/eslint-plugin/tests/rules/no-inferrable-types.test.ts b/packages/eslint-plugin/tests/rules/no-inferrable-types.test.ts index d85806b69c4..cfea578b9f6 100644 --- a/packages/eslint-plugin/tests/rules/no-inferrable-types.test.ts +++ b/packages/eslint-plugin/tests/rules/no-inferrable-types.test.ts @@ -156,7 +156,54 @@ class Foo { invalid: [ ...invalidTestCases, - + { + // This is invalid TS semantic, but it's trivial to make valid anyway + code: 'const fn = (a?: number = 5) => {};', + output: 'const fn = (a = 5) => {};', + options: [ + { + ignoreParameters: false, + }, + ], + errors: [ + { + messageId: 'noInferrableType', + data: { + type: 'number', + }, + line: 1, + column: 13, + }, + ], + }, + { + // This is invalid TS semantic, but it's trivial to make valid anyway + code: ` +class A { + a!: number = 1; +} + `, + output: ` +class A { + a = 1; +} + `, + options: [ + { + ignoreProperties: false, + }, + ], + errors: [ + { + messageId: 'noInferrableType', + data: { + type: 'number', + }, + line: 3, + column: 3, + }, + ], + }, { code: "const fn = (a: number = 5, b: boolean = true, c: string = 'foo') => {};", output: "const fn = (a = 5, b = true, c = 'foo') => {};", From 557ce041be53443a35a933549fe38660a9a770c5 Mon Sep 17 00:00:00 2001 From: "typescript-eslint[bot]" Date: Mon, 18 Jul 2022 17:26:46 +0000 Subject: [PATCH 10/72] chore: publish v5.30.7 --- CHANGELOG.md | 14 ++++++++++++++ lerna.json | 2 +- packages/ast-spec/CHANGELOG.md | 8 ++++++++ packages/ast-spec/package.json | 2 +- packages/eslint-plugin-internal/CHANGELOG.md | 8 ++++++++ packages/eslint-plugin-internal/package.json | 6 +++--- packages/eslint-plugin-tslint/CHANGELOG.md | 8 ++++++++ packages/eslint-plugin-tslint/package.json | 6 +++--- packages/eslint-plugin/CHANGELOG.md | 12 ++++++++++++ packages/eslint-plugin/package.json | 8 ++++---- packages/experimental-utils/CHANGELOG.md | 8 ++++++++ packages/experimental-utils/package.json | 4 ++-- packages/parser/CHANGELOG.md | 11 +++++++++++ packages/parser/package.json | 8 ++++---- packages/scope-manager/CHANGELOG.md | 11 +++++++++++ packages/scope-manager/package.json | 8 ++++---- packages/shared-fixtures/CHANGELOG.md | 8 ++++++++ packages/shared-fixtures/package.json | 2 +- packages/type-utils/CHANGELOG.md | 8 ++++++++ packages/type-utils/package.json | 6 +++--- packages/types/CHANGELOG.md | 11 +++++++++++ packages/types/package.json | 2 +- packages/typescript-estree/CHANGELOG.md | 11 +++++++++++ packages/typescript-estree/package.json | 8 ++++---- packages/utils/CHANGELOG.md | 8 ++++++++ packages/utils/package.json | 8 ++++---- packages/visitor-keys/CHANGELOG.md | 11 +++++++++++ packages/visitor-keys/package.json | 4 ++-- packages/website-eslint/CHANGELOG.md | 8 ++++++++ packages/website-eslint/package.json | 16 ++++++++-------- packages/website/CHANGELOG.md | 8 ++++++++ packages/website/package.json | 6 +++--- 32 files changed, 201 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33f3fd241ba..795d6bba176 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,20 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* **eslint-plugin:** [no-inferrable] fix optional param to valid code ([#5342](https://github.com/typescript-eslint/typescript-eslint/issues/5342)) ([98f6d5e](https://github.com/typescript-eslint/typescript-eslint/commit/98f6d5e6d08d1eb9789da52a15f337f5f53438bd)) +* **eslint-plugin:** [no-unused-vars] highlight last write reference ([#5267](https://github.com/typescript-eslint/typescript-eslint/issues/5267)) ([c3f199a](https://github.com/typescript-eslint/typescript-eslint/commit/c3f199a65a16aa72f5bb83e81a1ce0ffb5f69772)) +* expose types supporting old versions of typescript ([#5339](https://github.com/typescript-eslint/typescript-eslint/issues/5339)) ([4ba9bdb](https://github.com/typescript-eslint/typescript-eslint/commit/4ba9bdb93f87e6bc370f13aa1de48f435abe3f88)) +* **scope-manager:** allow visiting of constraint in infer type ([#5331](https://github.com/typescript-eslint/typescript-eslint/issues/5331)) ([b2846a1](https://github.com/typescript-eslint/typescript-eslint/commit/b2846a16777a3aea7b1e6ac9d81b9b6dce0bb874)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/typescript-eslint diff --git a/lerna.json b/lerna.json index c1f3c788a9d..b87f8e43af1 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "5.30.6", + "version": "5.30.7", "npmClient": "yarn", "useWorkspaces": true, "stream": true diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md index dce0c343068..ccf543f1660 100644 --- a/packages/ast-spec/CHANGELOG.md +++ b/packages/ast-spec/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/ast-spec + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/ast-spec diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json index 0245e01d6a7..4e88e3c53ea 100644 --- a/packages/ast-spec/package.json +++ b/packages/ast-spec/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/ast-spec", - "version": "5.30.6", + "version": "5.30.7", "description": "TypeScript-ESTree AST spec", "private": true, "keywords": [ diff --git a/packages/eslint-plugin-internal/CHANGELOG.md b/packages/eslint-plugin-internal/CHANGELOG.md index 7067f9f6059..51e578a14e1 100644 --- a/packages/eslint-plugin-internal/CHANGELOG.md +++ b/packages/eslint-plugin-internal/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin-internal + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/eslint-plugin-internal diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json index b7a7a56387f..c6634b6e682 100644 --- a/packages/eslint-plugin-internal/package.json +++ b/packages/eslint-plugin-internal/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin-internal", - "version": "5.30.6", + "version": "5.30.7", "private": true, "main": "dist/index.js", "scripts": { @@ -14,8 +14,8 @@ }, "dependencies": { "@types/prettier": "*", - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/utils": "5.30.6", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/utils": "5.30.7", "prettier": "*" } } diff --git a/packages/eslint-plugin-tslint/CHANGELOG.md b/packages/eslint-plugin-tslint/CHANGELOG.md index 7e8a7d577ad..7bc5af01dbb 100644 --- a/packages/eslint-plugin-tslint/CHANGELOG.md +++ b/packages/eslint-plugin-tslint/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin-tslint + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/eslint-plugin-tslint diff --git a/packages/eslint-plugin-tslint/package.json b/packages/eslint-plugin-tslint/package.json index c3f0a58f1f3..d304882a3e5 100644 --- a/packages/eslint-plugin-tslint/package.json +++ b/packages/eslint-plugin-tslint/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin-tslint", - "version": "5.30.6", + "version": "5.30.7", "main": "dist/index.js", "typings": "src/index.ts", "description": "TSLint wrapper plugin for ESLint", @@ -38,7 +38,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/utils": "5.30.6", + "@typescript-eslint/utils": "5.30.7", "lodash": "^4.17.21" }, "peerDependencies": { @@ -48,6 +48,6 @@ }, "devDependencies": { "@types/lodash": "*", - "@typescript-eslint/parser": "5.30.6" + "@typescript-eslint/parser": "5.30.7" } } diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index 9e21095b710..21142c15f70 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* **eslint-plugin:** [no-inferrable] fix optional param to valid code ([#5342](https://github.com/typescript-eslint/typescript-eslint/issues/5342)) ([98f6d5e](https://github.com/typescript-eslint/typescript-eslint/commit/98f6d5e6d08d1eb9789da52a15f337f5f53438bd)) +* **eslint-plugin:** [no-unused-vars] highlight last write reference ([#5267](https://github.com/typescript-eslint/typescript-eslint/issues/5267)) ([c3f199a](https://github.com/typescript-eslint/typescript-eslint/commit/c3f199a65a16aa72f5bb83e81a1ce0ffb5f69772)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/eslint-plugin diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index bded3533843..31400bd4af6 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin", - "version": "5.30.6", + "version": "5.30.7", "description": "TypeScript plugin for ESLint", "keywords": [ "eslint", @@ -44,9 +44,9 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/type-utils": "5.30.6", - "@typescript-eslint/utils": "5.30.6", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/type-utils": "5.30.7", + "@typescript-eslint/utils": "5.30.7", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", diff --git a/packages/experimental-utils/CHANGELOG.md b/packages/experimental-utils/CHANGELOG.md index 82ac5a97f45..d692cba00b5 100644 --- a/packages/experimental-utils/CHANGELOG.md +++ b/packages/experimental-utils/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/experimental-utils + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/experimental-utils diff --git a/packages/experimental-utils/package.json b/packages/experimental-utils/package.json index 6c5d8d7137d..6bb61a494d7 100644 --- a/packages/experimental-utils/package.json +++ b/packages/experimental-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/experimental-utils", - "version": "5.30.6", + "version": "5.30.7", "description": "(Experimental) Utilities for working with TypeScript + ESLint together", "keywords": [ "eslint", @@ -38,7 +38,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/utils": "5.30.6" + "@typescript-eslint/utils": "5.30.7" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md index 42e7989b268..76871eb2767 100644 --- a/packages/parser/CHANGELOG.md +++ b/packages/parser/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* expose types supporting old versions of typescript ([#5339](https://github.com/typescript-eslint/typescript-eslint/issues/5339)) ([4ba9bdb](https://github.com/typescript-eslint/typescript-eslint/commit/4ba9bdb93f87e6bc370f13aa1de48f435abe3f88)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/parser diff --git a/packages/parser/package.json b/packages/parser/package.json index e3ef7909903..a7a70ae2acf 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/parser", - "version": "5.30.6", + "version": "5.30.7", "description": "An ESLint custom parser which leverages TypeScript ESTree", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -45,9 +45,9 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", "debug": "^4.3.4" }, "devDependencies": { diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md index d90cece2a7e..b280a087c07 100644 --- a/packages/scope-manager/CHANGELOG.md +++ b/packages/scope-manager/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* **scope-manager:** allow visiting of constraint in infer type ([#5331](https://github.com/typescript-eslint/typescript-eslint/issues/5331)) ([b2846a1](https://github.com/typescript-eslint/typescript-eslint/commit/b2846a16777a3aea7b1e6ac9d81b9b6dce0bb874)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/scope-manager diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json index 99e2cd9bf28..60281382536 100644 --- a/packages/scope-manager/package.json +++ b/packages/scope-manager/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/scope-manager", - "version": "5.30.6", + "version": "5.30.7", "description": "TypeScript scope analyser for ESLint", "keywords": [ "eslint", @@ -38,12 +38,12 @@ "typecheck": "cd ../../ && nx typecheck @typescript-eslint/scope-manager" }, "dependencies": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6" + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" }, "devDependencies": { "@types/glob": "*", - "@typescript-eslint/typescript-estree": "5.30.6", + "@typescript-eslint/typescript-estree": "5.30.7", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", diff --git a/packages/shared-fixtures/CHANGELOG.md b/packages/shared-fixtures/CHANGELOG.md index 2c0df6861b4..4ef0517e538 100644 --- a/packages/shared-fixtures/CHANGELOG.md +++ b/packages/shared-fixtures/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/shared-fixtures + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/shared-fixtures diff --git a/packages/shared-fixtures/package.json b/packages/shared-fixtures/package.json index b37dacb15ee..b45a8fcf87b 100644 --- a/packages/shared-fixtures/package.json +++ b/packages/shared-fixtures/package.json @@ -1,5 +1,5 @@ { "name": "@typescript-eslint/shared-fixtures", - "version": "5.30.6", + "version": "5.30.7", "private": true } diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md index 1b9ae98ff76..416f0de1c6d 100644 --- a/packages/type-utils/CHANGELOG.md +++ b/packages/type-utils/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/type-utils + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/type-utils diff --git a/packages/type-utils/package.json b/packages/type-utils/package.json index 5e96fde9e29..d5df5186d47 100644 --- a/packages/type-utils/package.json +++ b/packages/type-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/type-utils", - "version": "5.30.6", + "version": "5.30.7", "description": "Type utilities for working with TypeScript + ESLint together", "keywords": [ "eslint", @@ -39,12 +39,12 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/utils": "5.30.6", + "@typescript-eslint/utils": "5.30.7", "debug": "^4.3.4", "tsutils": "^3.21.0" }, "devDependencies": { - "@typescript-eslint/parser": "5.30.6", + "@typescript-eslint/parser": "5.30.7", "typescript": "*" }, "peerDependencies": { diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 490e42d29d8..6e0e5f265b3 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* expose types supporting old versions of typescript ([#5339](https://github.com/typescript-eslint/typescript-eslint/issues/5339)) ([4ba9bdb](https://github.com/typescript-eslint/typescript-eslint/commit/4ba9bdb93f87e6bc370f13aa1de48f435abe3f88)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/types diff --git a/packages/types/package.json b/packages/types/package.json index 35615a4c0b8..68bb90c5666 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/types", - "version": "5.30.6", + "version": "5.30.7", "description": "Types for the TypeScript-ESTree AST spec", "keywords": [ "eslint", diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md index 4a765b15335..84cd407ccb5 100644 --- a/packages/typescript-estree/CHANGELOG.md +++ b/packages/typescript-estree/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* expose types supporting old versions of typescript ([#5339](https://github.com/typescript-eslint/typescript-eslint/issues/5339)) ([4ba9bdb](https://github.com/typescript-eslint/typescript-eslint/commit/4ba9bdb93f87e6bc370f13aa1de48f435abe3f88)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/typescript-estree diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index 1d9e062482b..f34ba70d410 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/typescript-estree", - "version": "5.30.6", + "version": "5.30.7", "description": "A parser that converts TypeScript source code into an ESTree compatible form", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -42,8 +42,8 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -59,7 +59,7 @@ "@types/is-glob": "*", "@types/semver": "*", "@types/tmp": "*", - "@typescript-eslint/shared-fixtures": "5.30.6", + "@typescript-eslint/shared-fixtures": "5.30.7", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index c80f314e26e..611e9976d8c 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/utils + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/utils diff --git a/packages/utils/package.json b/packages/utils/package.json index 06302a94153..87605d9fb9d 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/utils", - "version": "5.30.6", + "version": "5.30.7", "description": "Utilities for working with TypeScript + ESLint together", "keywords": [ "eslint", @@ -40,9 +40,9 @@ }, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md index 5ccff7534a2..a2e4aefcab0 100644 --- a/packages/visitor-keys/CHANGELOG.md +++ b/packages/visitor-keys/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + + +### Bug Fixes + +* expose types supporting old versions of typescript ([#5339](https://github.com/typescript-eslint/typescript-eslint/issues/5339)) ([4ba9bdb](https://github.com/typescript-eslint/typescript-eslint/commit/4ba9bdb93f87e6bc370f13aa1de48f435abe3f88)) + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/visitor-keys diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json index cdf2cddf574..f42d7bd6696 100644 --- a/packages/visitor-keys/package.json +++ b/packages/visitor-keys/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/visitor-keys", - "version": "5.30.6", + "version": "5.30.7", "description": "Visitor keys used to help traverse the TypeScript-ESTree AST", "keywords": [ "eslint", @@ -39,7 +39,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/types": "5.30.7", "eslint-visitor-keys": "^3.3.0" }, "devDependencies": { diff --git a/packages/website-eslint/CHANGELOG.md b/packages/website-eslint/CHANGELOG.md index afd101b650d..e91cc703744 100644 --- a/packages/website-eslint/CHANGELOG.md +++ b/packages/website-eslint/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package @typescript-eslint/website-eslint + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package @typescript-eslint/website-eslint diff --git a/packages/website-eslint/package.json b/packages/website-eslint/package.json index fdd48ca1a87..7ced00a1b62 100644 --- a/packages/website-eslint/package.json +++ b/packages/website-eslint/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/website-eslint", - "version": "5.30.6", + "version": "5.30.7", "private": true, "description": "ESLint which works in browsers.", "engines": { @@ -16,19 +16,19 @@ "format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore" }, "dependencies": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/utils": "5.30.6" + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/utils": "5.30.7" }, "devDependencies": { "@rollup/plugin-commonjs": "^22.0.0", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", "@rollup/pluginutils": "^4.2.1", - "@typescript-eslint/eslint-plugin": "5.30.6", - "@typescript-eslint/parser": "5.30.6", - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6", + "@typescript-eslint/eslint-plugin": "5.30.7", + "@typescript-eslint/parser": "5.30.7", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", "eslint": "*", "rollup": "^2.75.4", "rollup-plugin-terser": "^7.0.2", diff --git a/packages/website/CHANGELOG.md b/packages/website/CHANGELOG.md index 7663d520bf0..f144e9ed4ac 100644 --- a/packages/website/CHANGELOG.md +++ b/packages/website/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.30.7](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.6...v5.30.7) (2022-07-18) + +**Note:** Version bump only for package website + + + + + ## [5.30.6](https://github.com/typescript-eslint/typescript-eslint/compare/v5.30.5...v5.30.6) (2022-07-11) **Note:** Version bump only for package website diff --git a/packages/website/package.json b/packages/website/package.json index 8218bad5760..e1279661a07 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,6 +1,6 @@ { "name": "website", - "version": "5.30.6", + "version": "5.30.7", "private": true, "scripts": { "build": "docusaurus build", @@ -20,7 +20,7 @@ "@docusaurus/remark-plugin-npm2yarn": "2.0.0-beta.21", "@docusaurus/theme-common": "2.0.0-beta.21", "@mdx-js/react": "1.6.22", - "@typescript-eslint/website-eslint": "5.30.6", + "@typescript-eslint/website-eslint": "5.30.7", "clsx": "^1.1.1", "eslint": "*", "json5": "^2.2.1", @@ -37,7 +37,7 @@ "@types/react": "^18.0.9", "@types/react-helmet": "^6.1.5", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "5.30.6", + "@typescript-eslint/eslint-plugin": "5.30.7", "copy-webpack-plugin": "^11.0.0", "cypress": "8.3.0", "cypress-axe": "^0.14.0", From 0af4f867790c7718ca946653519e1fba33d1b177 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 12:18:25 -0700 Subject: [PATCH 11/72] chore: Bump rollup from 2.75.7 to 2.77.0 (#5348) Bumps [rollup](https://github.com/rollup/rollup) from 2.75.7 to 2.77.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v2.75.7...v2.77.0) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 544 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 352 insertions(+), 192 deletions(-) diff --git a/yarn.lock b/yarn.lock index 55154875895..ece35cd5276 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1980,6 +1980,18 @@ jest-util "^28.1.1" slash "^3.0.0" +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + "@jest/core@^28.1.1": version "28.1.1" resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.1.tgz#086830bec6267accf9af5ca76f794858e9f9f092" @@ -2016,11 +2028,11 @@ strip-ansi "^6.0.0" "@jest/create-cache-key-function@^27.4.2", "@jest/create-cache-key-function@^28": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-28.1.1.tgz#35fe6afe57c70302979050f97a6c044eabab22fb" - integrity sha512-1nmZPX4u+3fDDcmfANU9P7NqCcPL08cUKj3BLEUCcSTl6OYBeMnggOuRH2b4rT+3lT5RxdF9bjPSfgLFvXi6tQ== + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-28.1.3.tgz#bdf51e40379eaf88e8dbc6b60af52e662101dcb4" + integrity sha512-Q2wyDISMLjffYu6vom582MfVDwYjeD8TayLsp/DqNgdVklVgIZT7hG2NUvtdj+KheqIGbbXMXiupEAB6qDqayg== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@jest/environment@^28.1.1": version "28.1.1" @@ -2032,15 +2044,15 @@ "@types/node" "*" jest-mock "^28.1.1" -"@jest/environment@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.2.tgz#94a052c0c5f9f8c8e6d13ea6da78dbc5d7d9b85b" - integrity sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q== +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== dependencies: - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" + jest-mock "^28.1.3" "@jest/expect-utils@^28.1.1": version "28.1.1" @@ -2049,6 +2061,13 @@ dependencies: jest-get-type "^28.0.2" +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + dependencies: + jest-get-type "^28.0.2" + "@jest/expect@^28.1.1": version "28.1.1" resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.1.tgz#ea4fcc8504b45835029221c0dc357c622a761326" @@ -2057,13 +2076,13 @@ expect "^28.1.1" jest-snapshot "^28.1.1" -"@jest/expect@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.2.tgz#0b25acedff46e1e1e5606285306c8a399c12534f" - integrity sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw== +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== dependencies: - expect "^28.1.1" - jest-snapshot "^28.1.2" + expect "^28.1.3" + jest-snapshot "^28.1.3" "@jest/fake-timers@^28.1.1": version "28.1.1" @@ -2077,17 +2096,17 @@ jest-mock "^28.1.1" jest-util "^28.1.1" -"@jest/fake-timers@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.2.tgz#d49e8ee4e02ba85a6e844a52a5e7c59c23e3b76f" - integrity sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg== +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" "@jest/globals@^28.1.1": version "28.1.1" @@ -2098,25 +2117,25 @@ "@jest/expect" "^28.1.1" "@jest/types" "^28.1.1" -"@jest/globals@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.2.tgz#92fab296e337c7309c25e4202fb724f62249d83f" - integrity sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg== +"@jest/globals@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" "@jest/reporters@27.5.1", "@jest/reporters@^28", "@jest/reporters@^28.1.1": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.2.tgz#0327be4ce4d0d9ae49e7908656f89669d0c2a260" - integrity sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA== + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" "@types/node" "*" chalk "^4.0.0" @@ -2129,9 +2148,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -2145,6 +2164,13 @@ dependencies: "@sinclair/typebox" "^0.23.3" +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + "@jest/source-map@^28.0.2": version "28.0.2" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" @@ -2163,24 +2189,24 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@27.5.1", "@jest/test-result@^28", "@jest/test-result@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.1.tgz#c6f18d1bbb01aa88925dd687872a75f8414b317a" - integrity sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ== +"@jest/test-result@27.5.1", "@jest/test-result@^28", "@jest/test-result@^28.1.1", "@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== dependencies: - "@jest/console" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz#f594ee2331df75000afe0d1ae3237630ecec732e" - integrity sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA== +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== dependencies: - "@jest/test-result" "^28.1.1" + "@jest/test-result" "^28.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" slash "^3.0.0" "@jest/transform@^28.1.1": @@ -2225,6 +2251,27 @@ slash "^3.0.0" write-file-atomic "^4.0.1" +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.1" + "@jest/types@^28.1.1": version "28.1.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.1.tgz#d059bbc80e6da6eda9f081f293299348bd78ee0b" @@ -2237,6 +2284,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jridgewell/gen-mapping@^0.3.0": version "0.3.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" @@ -3548,6 +3607,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== +"@sinclair/typebox@^0.24.1": + version "0.24.20" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd" + integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -4839,15 +4903,15 @@ axobject-query@^2.2.0: resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.2.tgz#2b37fb81439f14d34d8b2cc4a4bd7efabf9acbfe" - integrity sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q== +babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== dependencies: - "@jest/transform" "^28.1.2" + "@jest/transform" "^28.1.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.1" + babel-preset-jest "^28.1.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -4895,10 +4959,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz#5e055cdcc47894f28341f87f5e35aad2df680b11" - integrity sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw== +babel-plugin-jest-hoist@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -4947,12 +5011,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz#5b6e5e69f963eb2d70f739c607b8f723c0ee75e4" - integrity sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g== +babel-preset-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== dependencies: - babel-plugin-jest-hoist "^28.1.1" + babel-plugin-jest-hoist "^28.1.3" babel-preset-current-node-syntax "^1.0.0" bail@^1.0.0: @@ -7290,6 +7354,17 @@ expect@^28.1.1: jest-message-util "^28.1.1" jest-util "^28.1.1" +expect@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== + dependencies: + "@jest/expect-utils" "^28.1.3" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + express@^4.17.3: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" @@ -9106,30 +9181,30 @@ jest-changed-files@^28.0.2: execa "^5.0.0" throat "^6.0.1" -jest-circus@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.2.tgz#0d5a5623eccb244efe87d1edc365696e4fcf80ce" - integrity sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ== +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" - throat "^6.0.1" jest-cli@^28.1.1: version "28.1.1" @@ -9150,42 +9225,42 @@ jest-cli@^28.1.1: yargs "^17.3.1" jest-config@27.5.1, jest-config@^28, jest-config@^28.1.1: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.2.tgz#ba00ad30caf62286c86e7c1099e915218a0ac8c6" - integrity sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA== + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.1" - "@jest/types" "^28.1.1" - babel-jest "^28.1.2" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.2" - jest-environment-node "^28.1.2" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-runner "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@*, jest-diff@^28, jest-diff@^28.1.0, jest-diff@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.1.tgz#1a3eedfd81ae79810931c63a1d0f201b9120106c" - integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg== +jest-diff@*, jest-diff@^28, jest-diff@^28.1.0, jest-diff@^28.1.1, jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== dependencies: chalk "^4.0.0" diff-sequences "^28.1.1" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" jest-docblock@^28.1.1: version "28.1.1" @@ -9194,16 +9269,16 @@ jest-docblock@^28.1.1: dependencies: detect-newline "^3.0.0" -jest-each@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.1.tgz#ba5238dacf4f31d9fe23ddc2c44c01e7c23885c4" - integrity sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw== +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" chalk "^4.0.0" jest-get-type "^28.0.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-util "^28.1.3" + pretty-format "^28.1.3" jest-environment-node@^28.1.1: version "28.1.1" @@ -9217,17 +9292,17 @@ jest-environment-node@^28.1.1: jest-mock "^28.1.1" jest-util "^28.1.1" -jest-environment-node@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.2.tgz#3e2eb47f6d173b0648d5f7c717cb1c26651d5c8a" - integrity sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw== +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-mock "^28.1.3" + jest-util "^28.1.3" jest-get-type@^28, jest-get-type@^28.0.2: version "28.0.2" @@ -9253,6 +9328,25 @@ jest-haste-map@^28.1.1: optionalDependencies: fsevents "^2.3.2" +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== + dependencies: + "@jest/types" "^28.1.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + jest-worker "^28.1.3" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + jest-leak-detector@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz#537f37afd610a4b3f4cab15e06baf60484548efb" @@ -9261,15 +9355,23 @@ jest-leak-detector@^28.1.1: jest-get-type "^28.0.2" pretty-format "^28.1.1" -jest-matcher-utils@^28, jest-matcher-utils@^28.0.0, jest-matcher-utils@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz#a7c4653c2b782ec96796eb3088060720f1e29304" - integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw== +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== + dependencies: + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-matcher-utils@^28, jest-matcher-utils@^28.0.0, jest-matcher-utils@^28.1.1, jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" jest-message-util@^28.1.1: version "28.1.1" @@ -9286,6 +9388,21 @@ jest-message-util@^28.1.1: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.1.tgz#37903d269427fa1ef5b2447be874e1c62a39a371" @@ -9294,6 +9411,14 @@ jest-mock@^28.1.1: "@jest/types" "^28.1.1" "@types/node" "*" +jest-mock@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" @@ -9312,17 +9437,17 @@ jest-resolve-dependencies@^28.1.1: jest-regex-util "^28.0.2" jest-snapshot "^28.1.1" -jest-resolve@27.5.1, jest-resolve@^28, jest-resolve@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.1.tgz#bc2eaf384abdcc1aaf3ba7c50d1adf01e59095e5" - integrity sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA== +jest-resolve@27.5.1, jest-resolve@^28, jest-resolve@^28.1.1, jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-util "^28.1.3" + jest-validate "^28.1.3" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" @@ -9354,32 +9479,32 @@ jest-runner@^28.1.1: source-map-support "0.5.13" throat "^6.0.1" -jest-runner@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.2.tgz#f293409592a62234285a71237e38499a3554e350" - integrity sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A== - dependencies: - "@jest/console" "^28.1.1" - "@jest/environment" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^28.1.1" - jest-environment-node "^28.1.2" - jest-haste-map "^28.1.1" - jest-leak-detector "^28.1.1" - jest-message-util "^28.1.1" - jest-resolve "^28.1.1" - jest-runtime "^28.1.2" - jest-util "^28.1.1" - jest-watcher "^28.1.1" - jest-worker "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" source-map-support "0.5.13" - throat "^6.0.1" jest-runtime@^28.1.1: version "28.1.1" @@ -9409,61 +9534,61 @@ jest-runtime@^28.1.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.2.tgz#d68f34f814a848555a345ceda23289f14d59a688" - integrity sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw== +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/globals" "^28.1.2" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@*, jest-snapshot@^27.0.2, jest-snapshot@^28, jest-snapshot@^28.1.0, jest-snapshot@^28.1.1, jest-snapshot@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.2.tgz#93d31b87b11b384f5946fe0767541496135f8d52" - integrity sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA== +jest-snapshot@*, jest-snapshot@^27.0.2, jest-snapshot@^28, jest-snapshot@^28.1.0, jest-snapshot@^28.1.1, jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.1" + expect "^28.1.3" graceful-fs "^4.2.9" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - jest-haste-map "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" natural-compare "^1.4.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" semver "^7.3.5" jest-specific-snapshot@*, jest-specific-snapshot@^5.0.0: @@ -9473,12 +9598,12 @@ jest-specific-snapshot@*, jest-specific-snapshot@^5.0.0: dependencies: jest-snapshot "^27.0.2" -jest-util@27.5.1, jest-util@^28, jest-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.1.tgz#ff39e436a1aca397c0ab998db5a51ae2b7080d05" - integrity sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw== +jest-util@27.5.1, jest-util@^28, jest-util@^28.1.1, jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" @@ -9497,6 +9622,18 @@ jest-validate@^28.1.1: leven "^3.1.0" pretty-format "^28.1.1" +jest-validate@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== + dependencies: + "@jest/types" "^28.1.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^28.0.2" + leven "^3.1.0" + pretty-format "^28.1.3" + jest-watcher@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.1.tgz#533597fb3bfefd52b5cd115cd916cffd237fb60c" @@ -9511,6 +9648,20 @@ jest-watcher@^28.1.1: jest-util "^28.1.1" string-length "^4.0.1" +jest-watcher@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== + dependencies: + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^28.1.3" + string-length "^4.0.1" + jest-worker@^26.2.1: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -9538,6 +9689,15 @@ jest-worker@^28.1.1: merge-stream "^2.0.0" supports-color "^8.0.0" +jest-worker@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jest@^28.1.0: version "28.1.1" resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.1.tgz#3c39a3a09791e16e9ef283597d24ab19a0df701e" @@ -11149,7 +11309,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -11850,7 +12010,7 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" -pretty-format@*, pretty-format@^28.0.0, pretty-format@^28.1.0, pretty-format@^28.1.1: +pretty-format@*, pretty-format@^28.0.0, pretty-format@^28.1.0, pretty-format@^28.1.1, pretty-format@^28.1.3: version "28.1.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.0.tgz#8f5836c6a0dfdb834730577ec18029052191af55" integrity sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q== @@ -12721,9 +12881,9 @@ rollup-plugin-terser@^7.0.2: terser "^5.0.0" rollup@^2.75.4: - version "2.75.7" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.7.tgz#221ff11887ae271e37dcc649ba32ce1590aaa0b9" - integrity sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ== + version "2.77.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.0.tgz#749eaa5ac09b6baa52acc076bc46613eddfd53f4" + integrity sha512-vL8xjY4yOQEw79DvyXLijhnhh+R/O9zpF/LEgkCebZFtb6ELeN9H3/2T0r8+mp+fFTBHZ5qGpOpW2ela2zRt3g== optionalDependencies: fsevents "~2.3.2" From d3c318ce21dbe35d36cea164824613e60f968d70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 12:18:42 -0700 Subject: [PATCH 12/72] chore: Bump eslint-plugin-jest from 26.5.3 to 26.6.0 (#5349) Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 26.5.3 to 26.6.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v26.5.3...v26.6.0) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ece35cd5276..d00ed1ca14d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7071,9 +7071,9 @@ eslint-plugin-import@^2.26.0: tsconfig-paths "^3.14.1" eslint-plugin-jest@^26.1.5: - version "26.5.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.5.3.tgz#a3ceeaf4a757878342b8b00eca92379b246e5505" - integrity sha512-sICclUqJQnR1bFRZGLN2jnSVsYOsmPYYnroGCIMVSvTS3y8XR3yjzy1EcTQmk6typ5pRgyIWzbjqxK6cZHEZuQ== + version "26.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.6.0.tgz#546804fa42da75d7d58d4d3b278d5186abd3f6c0" + integrity sha512-f8n46/97ZFdU4KqeQYqO8AEVGIhHWvkpgNBWHH3jrM28/y8llnbf3IjfIKv6p2pZIMinK1PCqbbROxs9Eud02Q== dependencies: "@typescript-eslint/utils" "^5.10.0" From 3d552895af436ef0a983a34a9b708030c9b5ebc7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 12:18:50 -0700 Subject: [PATCH 13/72] chore: Bump @swc/jest from 0.2.21 to 0.2.22 (#5351) Bumps [@swc/jest](https://github.com/swc-project/jest) from 0.2.21 to 0.2.22. - [Release notes](https://github.com/swc-project/jest/releases) - [Commits](https://github.com/swc-project/jest/compare/v0.2.21...v0.2.22) --- updated-dependencies: - dependency-name: "@swc/jest" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d00ed1ca14d..7f25176446f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3857,9 +3857,9 @@ "@swc/core-win32-x64-msvc" "1.2.189" "@swc/jest@^0.2.21": - version "0.2.21" - resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.21.tgz#e8c4e234016a914f4cfbb7d75844860a250c1d1c" - integrity sha512-/+NcExiZbxXANNhNPnIdFuGq62CeumulLS1bngwqIXd8H7d96LFUfrYzdt8tlTwLMel8tFtQ5aRjzVkyOTyPDw== + version "0.2.22" + resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.22.tgz#70d02ac648c21a442016d7a0aa485577335a4c9a" + integrity sha512-PIUIk9IdB1oAVfF9zNIfYoMBoEhahrrSvyryFANas7swC1cF0L5HR0f9X4qfet46oyCHCBtNcSpN0XJEOFIKlw== dependencies: "@jest/create-cache-key-function" "^27.4.2" From 29b7c0260e890d8faf8329ee6d28729afc7ad69f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 11:43:41 -0400 Subject: [PATCH 14/72] chore: Bump terser from 5.14.0 to 5.14.2 (#5358) Bumps [terser](https://github.com/terser/terser) from 5.14.0 to 5.14.2. - [Release notes](https://github.com/terser/terser/releases) - [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md) - [Commits](https://github.com/terser/terser/commits) --- updated-dependencies: - dependency-name: terser dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 61 ++++++++++++++++++------------------------------------- 1 file changed, 20 insertions(+), 41 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7f25176446f..a134bc0088c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2230,27 +2230,6 @@ slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/transform@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.2.tgz#b367962c53fd53821269bde050ce373e111327c1" - integrity sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^28.1.1" - "@jridgewell/trace-mapping" "^0.3.13" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-regex-util "^28.0.2" - jest-util "^28.1.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" - "@jest/transform@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" @@ -2297,23 +2276,23 @@ chalk "^4.0.0" "@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@jridgewell/set-array" "^1.0.0" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/source-map@^0.3.2": version "0.3.2" @@ -2324,11 +2303,11 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.7": version "0.3.13" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== @@ -2336,7 +2315,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": version "0.3.14" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== @@ -9252,7 +9231,7 @@ jest-config@27.5.1, jest-config@^28, jest-config@^28.1.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@*, jest-diff@^28, jest-diff@^28.1.0, jest-diff@^28.1.1, jest-diff@^28.1.3: +jest-diff@*, jest-diff@^28, jest-diff@^28.1.0, jest-diff@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== @@ -13775,9 +13754,9 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.1: terser "^5.7.2" terser@^5.0.0, terser@^5.10.0, terser@^5.7.2: - version "5.14.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" - integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== + version "5.14.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" + integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" From 48f996e8dda79c9c865e8ca6552069902836648b Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Sat, 23 Jul 2022 00:06:22 +0800 Subject: [PATCH 15/72] feat(eslint-plugin): [consistent-generic-ctors] check class field declaration (#5288) * feat(eslint-plugin): [consistent-generic-ctors] report class field declaration * add a test Co-authored-by: Josh Goldberg --- .../rules/consistent-generic-constructors.ts | 33 +++++- .../consistent-generic-constructors.test.ts | 101 ++++++++++++++++++ 2 files changed, 129 insertions(+), 5 deletions(-) diff --git a/packages/eslint-plugin/src/rules/consistent-generic-constructors.ts b/packages/eslint-plugin/src/rules/consistent-generic-constructors.ts index 0df1412bd7b..db95efa9a57 100644 --- a/packages/eslint-plugin/src/rules/consistent-generic-constructors.ts +++ b/packages/eslint-plugin/src/rules/consistent-generic-constructors.ts @@ -1,4 +1,4 @@ -import { AST_NODE_TYPES } from '@typescript-eslint/utils'; +import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils'; import { createRule } from '../util'; type MessageIds = 'preferTypeAnnotation' | 'preferConstructor'; @@ -30,9 +30,16 @@ export default createRule({ create(context, [mode]) { const sourceCode = context.getSourceCode(); return { - VariableDeclarator(node): void { - const lhs = node.id.typeAnnotation?.typeAnnotation; - const rhs = node.init; + 'VariableDeclarator,PropertyDefinition'( + node: TSESTree.VariableDeclarator | TSESTree.PropertyDefinition, + ): void { + const lhs = ( + node.type === AST_NODE_TYPES.VariableDeclarator ? node.id : node + ).typeAnnotation?.typeAnnotation; + const rhs = + node.type === AST_NODE_TYPES.VariableDeclarator + ? node.init + : node.value; if ( !rhs || rhs.type !== AST_NODE_TYPES.NewExpression || @@ -57,9 +64,25 @@ export default createRule({ node, messageId: 'preferTypeAnnotation', fix(fixer) { + function getIDToAttachAnnotation(): + | TSESTree.Token + | TSESTree.Node { + if (node.type === AST_NODE_TYPES.VariableDeclarator) { + return node.id; + } + if (!node.computed) { + return node.key; + } + // If the property's computed, we have to attach the + // annotation after the square bracket, not the enclosed expression + return sourceCode.getTokenAfter(node.key)!; + } return [ fixer.remove(typeParameters), - fixer.insertTextAfter(node.id, ': ' + typeAnnotation), + fixer.insertTextAfter( + getIDToAttachAnnotation(), + ': ' + typeAnnotation, + ), ]; }, }); diff --git a/packages/eslint-plugin/tests/rules/consistent-generic-constructors.test.ts b/packages/eslint-plugin/tests/rules/consistent-generic-constructors.test.ts index 0fe3bcae7fb..bdfb68e2788 100644 --- a/packages/eslint-plugin/tests/rules/consistent-generic-constructors.test.ts +++ b/packages/eslint-plugin/tests/rules/consistent-generic-constructors.test.ts @@ -19,6 +19,11 @@ ruleTester.run('consistent-generic-constructors', rule, { 'const a: Foo = Foo();', 'const a: Foo = Foo();', 'const a: Foo = Foo();', + ` +class Foo { + a = new Foo(); +} + `, // type-annotation { code: 'const a = new Foo();', @@ -60,6 +65,14 @@ ruleTester.run('consistent-generic-constructors', rule, { code: 'const a = new (class C {})();', options: ['type-annotation'], }, + { + code: ` +class Foo { + a: Foo = new Foo(); +} + `, + options: ['type-annotation'], + }, ], invalid: [ { @@ -143,6 +156,40 @@ ruleTester.run('consistent-generic-constructors', rule, { ], output: noFormat`const a = new \n Foo \n ();`, }, + { + code: ` +class Foo { + a: Foo = new Foo(); +} + `, + errors: [ + { + messageId: 'preferConstructor', + }, + ], + output: ` +class Foo { + a = new Foo(); +} + `, + }, + { + code: ` +class Foo { + [a]: Foo = new Foo(); +} + `, + errors: [ + { + messageId: 'preferConstructor', + }, + ], + output: ` +class Foo { + [a] = new Foo(); +} + `, + }, { code: 'const a = new Foo();', options: ['type-annotation'], @@ -213,5 +260,59 @@ ruleTester.run('consistent-generic-constructors', rule, { ], output: noFormat`const a: Foo = new Foo();`, }, + { + code: ` +class Foo { + a = new Foo(); +} + `, + options: ['type-annotation'], + errors: [ + { + messageId: 'preferTypeAnnotation', + }, + ], + output: ` +class Foo { + a: Foo = new Foo(); +} + `, + }, + { + code: ` +class Foo { + [a] = new Foo(); +} + `, + options: ['type-annotation'], + errors: [ + { + messageId: 'preferTypeAnnotation', + }, + ], + output: ` +class Foo { + [a]: Foo = new Foo(); +} + `, + }, + { + code: ` +class Foo { + [a + b] = new Foo(); +} + `, + options: ['type-annotation'], + errors: [ + { + messageId: 'preferTypeAnnotation', + }, + ], + output: ` +class Foo { + [a + b]: Foo = new Foo(); +} + `, + }, ], }); From 6d19efed16d1cf0357ad363b6373d2021c49a8c8 Mon Sep 17 00:00:00 2001 From: Raquel Amorim <36057168+amorimr@users.noreply.github.com> Date: Fri, 22 Jul 2022 13:28:17 -0400 Subject: [PATCH 16/72] fix(eslint-plugin): [typedef] Support nested array destructuring with type annotation (#5311) --- packages/eslint-plugin/src/rules/typedef.ts | 6 +++-- .../eslint-plugin/tests/rules/typedef.test.ts | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/eslint-plugin/src/rules/typedef.ts b/packages/eslint-plugin/src/rules/typedef.ts index a995fe41b37..4f5fe6eae65 100644 --- a/packages/eslint-plugin/src/rules/typedef.ts +++ b/packages/eslint-plugin/src/rules/typedef.ts @@ -150,13 +150,14 @@ export default util.createRule<[Options], MessageIds>({ } function isAncestorHasTypeAnnotation( - node: TSESTree.ObjectPattern, + node: TSESTree.ObjectPattern | TSESTree.ArrayPattern, ): boolean { let ancestor = node.parent; while (ancestor) { if ( - ancestor.type === AST_NODE_TYPES.ObjectPattern && + (ancestor.type === AST_NODE_TYPES.ObjectPattern || + ancestor.type === AST_NODE_TYPES.ArrayPattern) && ancestor.typeAnnotation ) { return true; @@ -181,6 +182,7 @@ export default util.createRule<[Options], MessageIds>({ if ( !node.typeAnnotation && !isForOfStatementContext(node) && + !isAncestorHasTypeAnnotation(node) && node.parent?.type !== AST_NODE_TYPES.AssignmentExpression ) { report(node); diff --git a/packages/eslint-plugin/tests/rules/typedef.test.ts b/packages/eslint-plugin/tests/rules/typedef.test.ts index 19b6ff5a543..d6f724bfd0b 100644 --- a/packages/eslint-plugin/tests/rules/typedef.test.ts +++ b/packages/eslint-plugin/tests/rules/typedef.test.ts @@ -70,6 +70,32 @@ ruleTester.run('typedef', rule, { }, ], }, + { + code: 'const [[a]]: number[][] = [[1]];', + options: [ + { + arrayDestructuring: true, + }, + ], + }, + { + code: 'const foo = ([{ bar }]: { bar: string }[]) => {};', + options: [ + { + arrayDestructuring: true, + objectDestructuring: true, + }, + ], + }, + { + code: 'const foo = ([{ bar }]: [{ bar: string }]) => {};', + options: [ + { + arrayDestructuring: true, + objectDestructuring: true, + }, + ], + }, { code: 'const [a] = [1];', options: [ From 7ea14aee8b91b1622d7aea8a7f65aba9fe0839b0 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Fri, 22 Jul 2022 13:53:05 -0400 Subject: [PATCH 17/72] chore(website): streamlined Getting Started docs (#5248) * chore(website): streamlined Getting Started docs * Fix: check-spelling; lint-markdown * Fixed remaining typed-linting issues * Apply suggestions from code review Co-authored-by: Brad Zacher * TSLINT_RULE_ALTERNATIVES.md * Code case * Remove prettier-ignore Co-authored-by: Brad Zacher --- .cspell.json | 3 +- _redirects | 4 + docs/README.md | 76 +- docs/development/architecture/PACKAGES.md | 2 +- .../linting/{CONFIGS.md => CONFIGURATIONS.md} | 36 +- docs/linting/MONOREPO.md | 82 -- docs/linting/README.md | 223 ------ docs/linting/TROUBLESHOOTING.md | 7 +- docs/linting/TYPED_LINTING.md | 21 +- docs/linting/{ => troubleshooting}/TSLINT.md | 10 +- docs/linting/typed-linting/MONOREPOS.md | 79 ++ packages/eslint-plugin/README.md | 2 +- packages/eslint-plugin/ROADMAP.md | 727 +---------------- .../eslint-plugin/TSLINT_RULE_ALTERNATIVES.md | 728 ++++++++++++++++++ packages/eslint-plugin/src/configs/README.md | 3 - packages/parser/README.md | 2 +- packages/website/docusaurusConfig.ts | 2 +- packages/website/sidebars/sidebar.base.js | 32 +- 18 files changed, 964 insertions(+), 1075 deletions(-) create mode 100644 _redirects rename docs/linting/{CONFIGS.md => CONFIGURATIONS.md} (61%) delete mode 100644 docs/linting/MONOREPO.md delete mode 100644 docs/linting/README.md rename docs/linting/{ => troubleshooting}/TSLINT.md (63%) create mode 100644 docs/linting/typed-linting/MONOREPOS.md create mode 100644 packages/eslint-plugin/TSLINT_RULE_ALTERNATIVES.md delete mode 100644 packages/eslint-plugin/src/configs/README.md diff --git a/.cspell.json b/.cspell.json index 4691cd152db..f1f863b5952 100644 --- a/.cspell.json +++ b/.cspell.json @@ -8,7 +8,7 @@ "**/*.{json,snap}", "**/**/CHANGELOG.md", "**/**/CONTRIBUTORS.md", - "**/**/ROADMAP.md", + "**/**/TSLINT_RULE_ALTERNATIVES.md", "**/coverage/**", "**/dist/**", "**/fixtures/**", @@ -88,6 +88,7 @@ "preact", "Premade", "prettier's", + "Quickstart", "recurse", "redeclaration", "redeclarations", diff --git a/_redirects b/_redirects new file mode 100644 index 00000000000..1b61a020ea0 --- /dev/null +++ b/_redirects @@ -0,0 +1,4 @@ +/docs/linting /docs +/docs/linting/type-linting /docs/linting/typed-linting +/docs/linting/monorepo /docs/linting/typed-linting/monorepos +/docs/linting/tslint /docs/linting/troubleshooting/tslint diff --git a/docs/README.md b/docs/README.md index dfac81e925a..9b9aecb54f5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,13 +1,79 @@ --- +id: getting-started title: Getting Started -sidebar_label: Getting Started slug: / --- -These docs will give you a quick overview of the project and all of its pieces, as well as provide guides to help you get set up. +## Quickstart -The docs are broken down into the following categories: +These steps will get you running ESLint with our recommended rules on your TypeScript code as quickly as possible. -- [I want to lint my TypeScript codebase.](./linting/README.md) +### Step 1: Installation -- [I want to develop an ESLint plugin in TypeScript.](./development/CUSTOM_RULES.md) +First, install the required packages for [ESLint](https://eslint.io), [TypeScript](https://typescriptlang.org), and this plugin: + +```bash npm2yarn +npm install --save-dev @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint typescript +``` + +### Step 2: Configuration + +Next, create a `.eslintrc.cjs` config file in the root of your project, and populate it with the following: + +```js title=".eslintrc.cjs" +module.exports = { + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + root: true, +}; +``` + +:::info +If your project doesn't use ESM, naming the file as `.eslintrc.js` is fine. See [ESLint's Configuration Files docs](https://eslint.org/docs/user-guide/configuring/configuration-files) for more info. +::: + +### Step 3: Running ESLint + +Open a terminal to the root of your project and run the following command: + + + + +```bash +npx eslint . +``` + + + + +```bash +yarn eslint . +``` + + + + +ESLint will lint all TypeScript compatible files within the current folder, and will output the results to your terminal. + +## Details + +- You can read more about configuring ESLint [in their documentation on configuration](https://eslint.org/docs/user-guide/configuring). +- You can read more about the rules provided by ESLint [in their documentation on their rules](https://eslint.org/docs/rules/). +- You can read more about the rules provided by typescript-eslint in [our rules documentation](/rules). + +### Configuration Values + +- `parser: '@typescript-eslint/parser'` tells ESLint to use the [`@typescript-eslint/parser`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser) package you installed to parse your source files. + - This is required, or else ESLint will throw errors as it tries to parse TypeScript code as if it were regular JavaScript. +- `plugins: ['@typescript-eslint']` tells ESLint to load the [`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin)) package as a plugin. + - This allows you to use typescript-eslint's rules within your codebase. +- `extends: [ ... ]` tells ESLint that your config extends the given configurations. + - `eslint:recommended` is ESLint's inbuilt "recommended" config - it turns on a small, sensible set of rules which lint for well-known best-practices. + - `plugin:@typescript-eslint/recommended` is our "recommended" config - it's just like `eslint:recommended`, except it only turns on rules from our TypeScript-specific plugin. + +## Next Steps + +We provide a plethora of powerful rules that utilize the power of TypeScript's type information. [Visit the next page for a setup guide](./linting/TYPED_LINTING.md 'Visit the next page for a typed rules setup guide'). + +If you're having problems getting this working, please have a look at our [Troubleshooting & FAQs](./linting/TROUBLESHOOTING.md). diff --git a/docs/development/architecture/PACKAGES.md b/docs/development/architecture/PACKAGES.md index 461cc021812..f798e35b2e4 100644 --- a/docs/development/architecture/PACKAGES.md +++ b/docs/development/architecture/PACKAGES.md @@ -66,7 +66,7 @@ Any custom rules you write generally will be as well. [`@typescript-eslint/eslint-plugin-tslint`] is a separate ESLint plugin that allows running TSLint rules within ESLint to help you migrate from TSLint to ESLint. :::caution -**TSLint is deprecated.** It is in your best interest to migrate off it entirely. See [Linting > TSLint](../../linting/TSLINT.md). +**TSLint is deprecated.** It is in your best interest to migrate off it. See [Linting > Troubleshooting & FAQs > What About TSLint?](../../linting/troubleshooting/TSLINT.md). ::: [`@typescript-eslint/eslint-plugin-tslint`]: https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin-tslint diff --git a/docs/linting/CONFIGS.md b/docs/linting/CONFIGURATIONS.md similarity index 61% rename from docs/linting/CONFIGS.md rename to docs/linting/CONFIGURATIONS.md index 659064c6901..de05a216ff8 100644 --- a/docs/linting/CONFIGS.md +++ b/docs/linting/CONFIGURATIONS.md @@ -1,9 +1,10 @@ --- id: configs -sidebar_label: Configurations title: Configurations --- +[ESLint shareable configurations](https://eslint.org/docs/latest/developer-guide/shareable-configs) exist to provide a comprehensive base config for you, with the intention that you add the config and it gives you an opinionated setup. + ## Built-In Configurations `@typescript-eslint/eslint-plugin` includes built-in configurations you can extend from to pull in the recommended starting rules. @@ -11,6 +12,10 @@ title: Configurations With the exception of `strict`, all configurations are considered "stable". Rule additions and removals are treated as breaking changes and will only be done in major version bumps. +:::note +We recommend most packages extend from [`recommended-requiring-type-checking`](#recommended-requiring-type-checking) (which requires [typed linting](./TYPED_LINTING.md)). +::: + ### `eslint-recommended` This ruleset is meant to be used after extending `eslint:recommended`. @@ -60,7 +65,7 @@ Rules in this configuration are similarly useful to those in `recommended`. :::tip We recommend all TypeScript projects extend from this configuration, with the caveat that rules using type information take longer to run. -See [Linting with Type Information](/docs/linting/type-linting) for more details. +See [Linting with Type Information](/docs/linting/typed-linting) for more details. ::: ### `strict` @@ -89,4 +94,29 @@ See [ESLint's Configuring Rules docs](https://eslint.org/docs/user-guide/configu ### Suggesting Configuration Changes -If you feel strongly that a specific rule should (or should not) be one of these configurations, please feel free to [file an issue](https://github.com/typescript-eslint/typescript-eslint/issues/new/choose) along with a **detailed** argument explaining your reasoning. +If you feel strongly that a specific rule should (or should not) be one of these configurations, please [file an issue](https://github.com/typescript-eslint/typescript-eslint/issues/new?assignees=&labels=package%3A+eslint-plugin%2Cpreset+config+change%2Ctriage&template=09-config-change.yaml&title=Configs%3A+%3Ca+short+description+of+my+proposal%3E) along with a **detailed** argument explaining your reasoning. + +## Prettier + +If you use [`prettier`](https://www.npmjs.com/package/prettier), there is also a helpful config to help ensure ESLint doesn't report on formatting issues that prettier will fix: [`eslint-config-prettier`](https://www.npmjs.com/package/eslint-config-prettier). + +Using this config by adding it to the end of your `extends`: + +```js title=".eslintrc.js" +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + // Add this line + 'prettier', + ], +}; +``` + +:::warning +**We strongly recommend you use Prettier or an equivalent**, not ESLint formatting rules. +See [this issue](https://github.com/typescript-eslint/typescript-eslint/issues/4907 'Issue: Docs: Add our opinion on delegating stylistic issues to a tool such as Prettier #4907') for more information. +::: diff --git a/docs/linting/MONOREPO.md b/docs/linting/MONOREPO.md deleted file mode 100644 index 4ec2df16136..00000000000 --- a/docs/linting/MONOREPO.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: monorepo -title: Monorepo Configuration -sidebar_label: Monorepo Configuration ---- - -If you're using a monorepo, these docs will help you figure out how to setup typed linting. -If you don't want to use typed linting, then you can stop here - you don't need to do anything special. - -The first question to answer is how are your `tsconfig.json` setup? You should have one of two setups: - -1. One `tsconfig.json` per package (and an optional one in the root) -2. One root `tsconfig.json` - -## One `tsconfig.json` per package (and an optional one in the root) - -Earlier in our docs on [typed linting](./TYPED_LINTING.md), we showed you how to setup a config for typed linting using the `parserOptions.project` option. This option accepts an array of relative paths, allowing you to specify each and every `tsconfig.json` in your monorepo. For those of you with too many packages, you can also supply a [glob path](https://github.com/isaacs/node-glob/blob/f5a57d3d6e19b324522a3fa5bdd5075fd1aa79d1/README.md#glob-primer). - -For example, this is how we specify all of our `tsconfig.json` within this repo. - -```js title=".eslintrc.js" -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - parserOptions: { - tsconfigRootDir: __dirname, - // Remove this line - project: ['./tsconfig.json'], - // Add this line - project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'], - }, - plugins: ['@typescript-eslint'], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - ], -}; -``` - -If you're looking for an example of what the `.eslintrc.js`, and referenced `tsconfig.json` might look like in a real example, look no further than this very repo. We're a multi-package monorepo that uses one `tsconfig.json` per package, that also uses typed linting. - -### Important note regarding large (> 10) multi-package monorepos - -We've had reports that for sufficiently large and/or interdependent projects, you may run into OOMs using this approach. Our advice is to set it up and test first, as there are very few cases that trigger this OOM. We are in the process of investigating solutions with the help of the TypeScript team. - -See [#1192](https://github.com/typescript-eslint/typescript-eslint/issues/1192) for more information and discussion. - -If you do run into an OOM, please comment on the above issue and let us know about your repo - the more information we have, the better. As an interim workaround, consider one of the following: - -- Switching to one root `tsconfig.eslint.json` (see below) -- Using a shell script to only lint one package at a time, using your existing config above. - -## One root `tsconfig.json` - -If you've only got one, you should inspect the `include` paths. If it doesn't include all of your files, then we won't be able to lint them. In this instance, you have two options: add them in to the `include`, or create a new config. - -The former doesn't always work for everyone if they've got a complex build, as adding more paths (like test paths) to `include` could break the build. -In those cases we suggest creating a new config called `tsconfig.eslint.json`, that looks something like this: - -```jsonc title="tsconfig.eslint.json" -{ - // extend your base config to share compilerOptions, etc - "extends": "./tsconfig.json", - "compilerOptions": { - // ensure that nobody can accidentally use this config for a build - "noEmit": true - }, - "include": [ - // whatever paths you intend to lint - "src", - "test", - "tools" - ] -} -``` - -Ensure you update your `.eslintrc.js` to point at this new config file. - -## Troubleshooting - -If you're having problems getting this working, please have a look at our [Troubleshooting FAQ](./TROUBLESHOOTING.md). diff --git a/docs/linting/README.md b/docs/linting/README.md deleted file mode 100644 index 23f0a2b1981..00000000000 --- a/docs/linting/README.md +++ /dev/null @@ -1,223 +0,0 @@ ---- -id: linting -title: Linting your TypeScript Codebase -sidebar_label: Linting your TypeScript Codebase ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Whether you're adding linting to a new TypeScript codebase, adding TypeScript to an old codebase, or migrating from the deprecated [TSLint](https://www.npmjs.com/package/tslint), the steps aren't a whole lot different. - -## Installation - -First step is to make sure you've got the required packages installed: - -```bash npm2yarn -npm install --save-dev eslint typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin -``` - -## Configuration - -Next, create a `.eslintrc.cjs` config file in the root of your project, and populate it with the following: - - -```js title=".eslintrc.cjs" -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: [ - '@typescript-eslint', - ], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - ], -}; -``` - -This is about the smallest config file we recommend. There's a lot more you can add to this as you further onboard, but this will be enough to get you started. - -:::info - -The `.cjs` extension will explicitly set the file to a [CommonJS module](https://nodejs.org/dist/latest-v18.x/docs/api/modules.html), in case your project has `"type": "module"` in its package.json. - -If your project doesn't use ESM, naming the file as `.eslintrc.js` is fine. See [ESLint's Configuration Files docs](https://eslint.org/docs/user-guide/configuring/configuration-files) for more info. - -::: - -### Details - -Explaining the important bits: - -- `parser: '@typescript-eslint/parser'` tells ESLint to use the parser package you installed ([`@typescript-eslint/parser`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/parser)). - - This allows ESLint to understand TypeScript syntax. - - This is required, or else ESLint will throw errors as it tries to parse TypeScript code as if it were regular JavaScript. -- `plugins: ['@typescript-eslint']` tells ESLint to load the plugin package you installed ([`@typescript-eslint/eslint-plugin`](https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin)). - - This allows you to use the rules within your codebase. -- `extends: [ ... ]` tells ESLint that your config extends the given configurations. - - `eslint:recommended` is ESLint's inbuilt "recommended" config - it turns on a small, sensible set of rules which lint for well-known best-practices. - - `plugin:@typescript-eslint/recommended` is our "recommended" config - it's just like `eslint:recommended`, except it only turns on rules from our TypeScript-specific plugin. - -### Ignoring unnecessary files - -Next, create a `.eslintignore` file in the root of your project. -This file will tell ESLint which files and folders it should never lint. - -Add the following lines to the file: - -```ignore title=".eslintignore" -# don't lint build output (make sure it's set to your correct build folder name) -dist -``` - -### Further Configuration Documentation - -- You can read more about configuring ESLint [in their documentation on configuration](https://eslint.org/docs/user-guide/configuring). -- You can read more about the rules provided by ESLint [in their documentation on their rules](https://eslint.org/docs/rules/). -- You can read more about the rules provided by us in [our plugin documentation](https://typescript-eslint.io/rules/). - -## Running ESLint - -With that configured, open a terminal to the root of your project, and run the following command: - - - - -```bash -npx eslint . -``` - - - - -```bash -yarn eslint . -``` - - - - -That's it - ESLint will lint all TypeScript compatible files within the current folder, and will output the results to your terminal. - -You are also recommended to add an npm script in your package.json, so you don't have to repeat the same command every time you run ESLint. - -```json title="package.json" -{ - "scripts": { - "lint": "eslint ." - } -} -``` - -This way, you can invoke the `lint` script directly: - -```bash npm2yarn -npm run lint -``` - -:::note -If you use non-standard file extensions, you will need to explicitly tell ESLint to lint those extensions using the [`--ext` flag](https://eslint.org/docs/user-guide/command-line-interface#--ext) -::: - -You can also get results in realtime inside most IDEs via a plugin - search your IDE's extension store. - -## Next Steps - -With that configured you can now start to delve into the wide and extensive ESLint ecosystem of plugins and configs. - -### Type-Aware Rules - -We have a lot of awesome rules which utilize the power of TypeScript's type information. They require a little bit of extra setup beyond this first step, [so visit the next page to see how to set this up.](./TYPED_LINTING.md) - -### Prettier - -If you use [`prettier`](https://www.npmjs.com/package/prettier), there is also a helpful config to help ensure ESLint doesn't report on formatting issues that prettier will fix: [`eslint-config-prettier`](https://www.npmjs.com/package/eslint-config-prettier). - -Using this config by adding it to the end of your `extends`: - -```js title=".eslintrc.js" -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - // Add this line - 'prettier', - ], -}; -``` - -### Community Configs - -Configurations exist solely to provide a comprehensive base config for you, with the intention that you add the config and it gives you an opinionated setup. -Many configuration packages exist in the ESLint ecosystem. -A few popular all-in-one configs are: - -- Airbnb's ESLint config: [`eslint-config-airbnb-typescript`](https://www.npmjs.com/package/eslint-config-airbnb-typescript). -- Standard: [`eslint-config-standard-with-typescript`](https://www.npmjs.com/package/eslint-config-standard-with-typescript). - -To use one of these complete config packages, you would replace the `extends` with the package name. -For example: - -```js title=".eslintrc.js" -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - extends: [ - // Removed lines start - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - // Removed lines end - // Add this line - 'airbnb-typescript', - ], -}; -``` - - - -Search ["eslint-config" on npm](https://www.npmjs.com/search?q=eslint-config) for more. - -### Plugins - -ESLint plugins provide additional rules and other functionality on top of ESLint. -Below are just a few examples: - -- ESLint comment restrictions: [`eslint-plugin-eslint-comments`](https://www.npmjs.com/package/eslint-plugin-eslint-comments) -- Import/export conventions : [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) -- Jest testing: [`eslint-plugin-jest`](https://www.npmjs.com/package/eslint-plugin-jest) -- NodeJS best practices: [`eslint-plugin-node`](https://www.npmjs.com/package/eslint-plugin-node) -- React best practices: [`eslint-plugin-react`](https://www.npmjs.com/package/eslint-plugin-react) and [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) - -Every plugin that is out there includes documentation on the various configurations and rules they offer. -A typical plugin might be used like: - -```js title=".eslintrc.js" -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - plugins: [ - '@typescript-eslint', - // Add this line - 'jest', - ], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - // Add this line - 'plugin:jest/recommended', - ], -}; -``` - - - -Search ["eslint-plugin" on npm](https://www.npmjs.com/search?q=eslint-plugin) for more. - -## Troubleshooting - -If you're having problems getting this working, please have a look at our [Troubleshooting FAQ](./TROUBLESHOOTING.md). diff --git a/docs/linting/TROUBLESHOOTING.md b/docs/linting/TROUBLESHOOTING.md index d9c447b4d0e..f37f8780a33 100644 --- a/docs/linting/TROUBLESHOOTING.md +++ b/docs/linting/TROUBLESHOOTING.md @@ -1,7 +1,6 @@ --- id: troubleshooting title: Troubleshooting & FAQs -sidebar_label: Troubleshooting & FAQs --- ## I am using a rule from ESLint core, and it doesn't work correctly with TypeScript code @@ -31,12 +30,10 @@ If you don't find an existing extension rule, or the extension rule doesn't work ## I get errors telling me "The file must be included in at least one of the projects provided" -This error means that the file that's being linted is not included in any of the tsconfig files you provided us. +This error means that the file that's being linted is not included in any of the TSConfig files you provided us. This happens when users have test files, config files, or similar that are not included. -There are a couple of solutions to this, depending on what you want to achieve. - -See our docs on [type aware linting](./TYPED_LINTING.md#i-get-errors-telling-me-the-file-must-be-included-in-at-least-one-of-the-projects-provided) for solutions to this. +See our docs on [type aware linting](./TYPED_LINTING.md#i-get-errors-telling-me-the-file-must-be-included-in-at-least-one-of-the-projects-provided) for solutions. ## I use a framework (like Vue) that requires custom file extensions, and I get errors like "You should add `parserOptions.extraFileExtensions` to your config" diff --git a/docs/linting/TYPED_LINTING.md b/docs/linting/TYPED_LINTING.md index ae58028e442..7a037e9a178 100644 --- a/docs/linting/TYPED_LINTING.md +++ b/docs/linting/TYPED_LINTING.md @@ -1,11 +1,9 @@ --- -id: type-linting +id: typed-linting title: Linting with Type Information -sidebar_label: Linting with Type Information --- -Under the hood, the typescript-eslint parser uses TypeScript's compiler APIs to parse the files. This means that we can provide lint rules with access to all of the type information that TypeScript knows about your codebase. - +Some typescript-eslint rules tap utilize the awesome power of TypeScript's type checking APIs to provide much deeper insights into your code. To tap into TypeScript's additional powers, there are two small changes you need to make to your config file: ```js title=".eslintrc.js" @@ -32,22 +30,23 @@ In more detail: - `parserOptions.tsconfigRootDir` tells our parser the absolute path of your project's root directory. - `parserOptions.project` tells our parser the relative path where your project's `tsconfig.json` is. - - If your project is a multi-package monorepo, see [our docs on configuring a monorepo](./MONOREPO.md). + - If your project is a multi-package monorepo, see [our docs on configuring a monorepo](./typed-linting/MONOREPOS.md). - `plugin:@typescript-eslint/recommended-requiring-type-checking` is another recommended configuration we provide. This one contains rules that specifically require type information. With that done, run the same lint command you ran before. -You will see new rules reporting errors based on type information! +You may see new rules reporting errors based on type information! ## FAQs ### How is performance? -_But wait_ - I hear you exclaim - _why would you ever not want type-aware rules?_ - -Well (for full disclosure) there is a catch; by including `parserOptions.project` in your config, you are essentially asking TypeScript to do a build of your project before ESLint can do its linting. For small projects this takes a negligible amount of time (a few seconds); for large projects, it can take longer (30s or more). +Typed rules come with a catch. +By including `parserOptions.project` in your config, you incur the performance penalty of asking TypeScript to do a build of your project before ESLint can do its linting. +For small projects this takes a negligible amount of time (a few seconds or less); for large projects, it can take longer. -Most of our users are fine with this, as they think the power of type-aware static analysis is worth it. -Additionally, most users primarily consume lint errors via IDE plugins which, through some caching magic, do not suffer the same penalties. This means that generally they usually only run a complete lint before a push, or via their CI, where the extra time really doesn't matter. +Most of our users do not mind this cost as the power and safety of type-aware static analysis rules is worth the tradeoff. +Additionally, most users primarily consume lint errors via IDE plugins which, through caching, do not suffer the same penalties. +This means that generally they usually only run a complete lint before a push, or via their CI, where the extra time often doesn't matter. **We strongly recommend you do use type-aware linting**, but the above information is included so that you can make your own, informed decision. diff --git a/docs/linting/TSLINT.md b/docs/linting/troubleshooting/TSLINT.md similarity index 63% rename from docs/linting/TSLINT.md rename to docs/linting/troubleshooting/TSLINT.md index 0d7954dd350..a145f9fca61 100644 --- a/docs/linting/TSLINT.md +++ b/docs/linting/troubleshooting/TSLINT.md @@ -10,9 +10,10 @@ TSLint was a linter equivalent to ESLint that was written specifically to work d ## Migrating from TSLint to ESLint -If you are looking for help in migrating from TSLint to ESLint, see [`tslint-to-eslint-config`](https://github.com/typescript-eslint/tslint-to-eslint-config). +The standard tool to convert a TSLint configuration to the equivalent ESLint configuration is [`tslint-to-eslint-config`](https://github.com/typescript-eslint/tslint-to-eslint-config). +If you are still using TSLint, we strongly recommend you use this tool to switch. -You can look at [`the plugin ROADMAP.md`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/ROADMAP.md) for an up to date overview of how TSLint rules compare to the ones in this package. +You can look at [the alternatives list](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/TSLINT_RULE_ALTERNATIVES.md) for an up to date overview of how TSLint rules compare to the ones in this package. There is also the ultimate fallback option of using both linters together for a while during your transition if you absolutely have to by using TSLint _within_ ESLint. @@ -27,6 +28,5 @@ TSLint had to reimplement everything from editor extensions to auto-fixing to ru TSLint's backers announced in 2019 that **they would be deprecating TSLint in favor of supporting `typescript-eslint`** in order to benefit the community. You can read more about that here: https://medium.com/palantir/tslint-in-2019-1a144c2317a9. -The TypeScript Team themselves also announced their plans to move the TypeScript codebase from TSLint to `typescript-eslint`, -and they have been big supporters of this project. -More details at https://github.com/microsoft/TypeScript/issues/30553. +The TypeScript team also migrated move the TypeScript codebase from TSLint to `typescript-eslint`, and they have been supporters of this project. +See more details at https://github.com/microsoft/TypeScript/issues/30553. diff --git a/docs/linting/typed-linting/MONOREPOS.md b/docs/linting/typed-linting/MONOREPOS.md new file mode 100644 index 00000000000..a67d05a9c2c --- /dev/null +++ b/docs/linting/typed-linting/MONOREPOS.md @@ -0,0 +1,79 @@ +--- +id: monorepos +title: Monorepo Configuration +--- + +If you're using a monorepo, these docs will help you figure out how to setup typed linting. +If you don't want to use typed linting, then you can stop here - you don't need to do anything special. + +Configurations will look different based on which setup you use: + +1. [One root `tsconfig.json`](#one-root-tsconfigjson) +2. [One `tsconfig.json` per package (and an optional one in the root)](#one-tsconfigjson-per-package-and-an-optional-one-in-the-root) + +## One root `tsconfig.json` + +If you only have one `tsconfig.json` file _and_ its `include` paths include all the files you'd like to lint, you can directly use it with typescript-eslint without further configuration. + +If its `include` paths cannot include all files to be linted, we suggest creating a new config called `tsconfig.eslint.json`, that looks something like this: + +```jsonc title="tsconfig.eslint.json" +{ + // extend your base config to share compilerOptions, etc + "extends": "./tsconfig.json", + "compilerOptions": { + // ensure that nobody can accidentally use this config for a build + "noEmit": true + }, + "include": [ + // whatever paths you intend to lint + "src", + "test", + "tools" + ] +} +``` + +Be sure to update your `.eslintrc.js` to point at this new config file. + +## One `tsconfig.json` per package (and an optional one in the root) + +The `parserOptions.project` option introduced in [Linting with Type Information](../TYPED_LINTING.md) accepts an array of relative paths. +Paths may be provided as [Node globs](https://github.com/isaacs/node-glob/blob/f5a57d3d6e19b324522a3fa5bdd5075fd1aa79d1/README.md#glob-primer). + +```js title=".eslintrc.js" +module.exports = { + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:@typescript-eslint/recommended-requiring-type-checking', + ], + parser: '@typescript-eslint/parser', + parserOptions: { + tsconfigRootDir: __dirname, + // Remove this line + project: ['./tsconfig.json'], + // Add this line + project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'], + }, + plugins: ['@typescript-eslint'], + root: true, +}; +``` + +### Important note regarding large (> 10) multi-package monorepos + +We've had reports that for sufficiently large and/or interdependent projects, you may run into OOMs using this approach. +Our advice is to set it up and test first, as there are very few cases that trigger this OOM. + +See [#1192](https://github.com/typescript-eslint/typescript-eslint/issues/1192) for more information and discussion. + +If you do run into an OOM, please comment on the above issue and let us know about your repo - the more information we have, the better. +As an interim workaround, consider one of the following: + +- Switching to one root `tsconfig.eslint.json` (see below) +- Using a shell script to only lint one package at a time, using your existing config above. + +## Troubleshooting + +If you're having problems getting this working, please have a look at our [Troubleshooting FAQ](../TROUBLESHOOTING.md). diff --git a/packages/eslint-plugin/README.md b/packages/eslint-plugin/README.md index 5124ce841ae..f236aeacd81 100644 --- a/packages/eslint-plugin/README.md +++ b/packages/eslint-plugin/README.md @@ -85,7 +85,7 @@ Some highly valuable rules require type-checking in order to be implemented corr Pro Tip: For larger codebases you may want to consider splitting our linting into two separate stages: 1. fast feedback rules which operate purely based on syntax (no type-checking), 2. rules which are based on semantics (type-checking). -**[You can read more about linting with type information here](https://typescript-eslint.io/docs/linting/type-linting)** +**[You can read more about linting with type information here](https://typescript-eslint.io/docs/linting/typed-linting)** ## Supported Rules diff --git a/packages/eslint-plugin/ROADMAP.md b/packages/eslint-plugin/ROADMAP.md index 6ebff3867c6..e108f6140b7 100644 --- a/packages/eslint-plugin/ROADMAP.md +++ b/packages/eslint-plugin/ROADMAP.md @@ -1,726 +1,3 @@ -# TSLint Migration Guide +# This page moved to [TSLINT_RULE_ALTERNATIVES.md](./TSLINT_RULE_ALTERNATIVES.md) -This document serves as a guide to help you migrate from TSLint. -It lists all TSLint rules along side rules from the ESLint ecosystem that are the same or similar. - -## TSLint rules - -✅ = done
-🌟 = in ESLint core
-🔌 = in another plugin
-🌓 = implementations differ or ESLint version is missing functionality
-🛑 = unimplemented
- -### TypeScript-specific - -| TSLint rule | | ESLint rule | -| --------------------------------- | :-: | ---------------------------------------------------- | -| [`adjacent-overload-signatures`] | ✅ | [`@typescript-eslint/adjacent-overload-signatures`] | -| [`ban-ts-ignore`] | ✅ | [`@typescript-eslint/ban-ts-comment`] | -| [`ban-types`] | 🌓 | [`@typescript-eslint/ban-types`][1] | -| [`invalid-void`] | ✅ | [`@typescript-eslint/no-invalid-void-type`] | -| [`member-access`] | ✅ | [`@typescript-eslint/explicit-member-accessibility`] | -| [`member-ordering`] | ✅ | [`@typescript-eslint/member-ordering`] | -| [`no-any`] | ✅ | [`@typescript-eslint/no-explicit-any`] | -| [`no-empty-interface`] | ✅ | [`@typescript-eslint/no-empty-interface`] | -| [`no-import-side-effect`] | 🔌 | [`import/no-unassigned-import`] | -| [`no-inferrable-types`] | ✅ | [`@typescript-eslint/no-inferrable-types`] | -| [`no-internal-module`] | ✅ | [`@typescript-eslint/prefer-namespace-keyword`] | -| [`no-magic-numbers`] | ✅ | [`@typescript-eslint/no-magic-numbers`] | -| [`no-namespace`] | ✅ | [`@typescript-eslint/no-namespace`] | -| [`no-non-null-assertion`] | ✅ | [`@typescript-eslint/no-non-null-assertion`] | -| [`no-parameter-reassignment`] | ✅ | [`no-param-reassign`][no-param-reassign] | -| [`no-reference`] | ✅ | [`@typescript-eslint/triple-slash-reference`] | -| [`no-unnecessary-type-assertion`] | ✅ | [`@typescript-eslint/no-unnecessary-type-assertion`] | -| [`no-var-requires`] | ✅ | [`@typescript-eslint/no-var-requires`] | -| [`only-arrow-functions`] | 🔌 | [`prefer-arrow/prefer-arrow-functions`] | -| [`prefer-for-of`] | ✅ | [`@typescript-eslint/prefer-for-of`] | -| [`promise-function-async`] | ✅ | [`@typescript-eslint/promise-function-async`] | -| [`typedef-whitespace`] | ✅ | [`@typescript-eslint/type-annotation-spacing`] | -| [`typedef`] | ✅ | [`@typescript-eslint/typedef`] | -| [`unified-signatures`] | ✅ | [`@typescript-eslint/unified-signatures`] | - -[1] The ESLint rule only supports exact string matching, rather than regular expressions
- -### Functionality - -| TSLint rule | | ESLint rule | -| ------------------------------------ | :-: | --------------------------------------------------------------------------------------------------------- | -| [`await-promise`] | ✅ | [`@typescript-eslint/await-thenable`] | -| [`ban-comma-operator`] | 🌟 | [`no-sequences`][no-sequences] | -| [`ban`] | 🌟 | [`no-restricted-globals`][no-restricted-globals] & [`no-restricted-properties`][no-restricted-properties] | -| [`curly`] | 🌟 | [`curly`][curly] | -| [`forin`] | 🌟 | [`guard-for-in`][guard-for-in] | -| [`function-constructor`] | 🌟 | [`no-new-func`][no-new-func] | -| [`import-blacklist`] | 🌟 | [`no-restricted-imports`][no-restricted-imports] | -| [`label-position`] | 🌟 | [`no-unused-labels`][no-unused-labels] (similar) | -| [`no-arg`] | 🌟 | [`no-caller`][no-caller] (also blocks `arguments.caller`) | -| [`no-async-without-await`] | ✅ | [`@typescript-eslint/require-await`] | -| [`no-bitwise`] | 🌟 | [`no-bitwise`][no-bitwise] | -| [`no-conditional-assignment`] | 🌟 | [`no-cond-assign`][no-cond-assign][1] | -| [`no-console`] | 🌟 | [`no-console`][no-console] (configuration works slightly differently) | -| [`no-construct`] | 🌟 | [`no-new-wrappers`][no-new-wrappers] | -| [`no-debugger`] | 🌟 | [`no-debugger`][no-debugger] | -| [`no-duplicate-super`] | 🌟 | [`constructor-super`][constructor-super] | -| [`no-duplicate-switch-case`] | 🌟 | [`no-duplicate-case`][no-duplicate-case] | -| [`no-duplicate-variable`] | 🌟 | [`no-redeclare`][no-redeclare] | -| [`no-dynamic-delete`] | ✅ | [`@typescript-eslint/no-dynamic-delete`] | -| [`no-empty`] | 🌟 | [`no-empty`][no-empty] | -| [`no-eval`] | 🌟 | [`no-eval`][no-eval] | -| [`no-floating-promises`] | ✅ | [`@typescript-eslint/no-floating-promises`] | -| [`no-for-in-array`] | ✅ | [`@typescript-eslint/no-for-in-array`] | -| [`no-implicit-dependencies`] | 🔌 | [`import/no-extraneous-dependencies`] | -| [`no-inferred-empty-object-type`] | 🛑 | N/A | -| [`no-invalid-template-strings`] | 🌟 | [`no-template-curly-in-string`][no-template-curly-in-string] | -| [`no-invalid-this`] | 🌟 | [`no-invalid-this`][no-invalid-this] | -| [`no-misused-new`] | ✅ | [`@typescript-eslint/no-misused-new`] | -| [`no-null-keyword`] | 🔌 | [`no-null/no-null`] (doesn’t handle `null` type) | -| [`no-null-undefined-union`] | 🛑 | N/A | -| [`no-object-literal-type-assertion`] | ✅ | [`@typescript-eslint/consistent-type-assertions`] | -| [`no-promise-as-boolean`] | ✅ | [`@typescript-eslint/no-misused-promises`] | -| [`no-restricted-globals`] | ✅ | [`no-restricted-globals`][no-restricted-globals] | -| [`no-return-await`] | 🌟 | [`no-return-await`][no-return-await] | -| [`no-shadowed-variable`] | 🌟 | [`no-shadow`][no-shadow] | -| [`no-sparse-arrays`] | 🌟 | [`no-sparse-arrays`][no-sparse-arrays] | -| [`no-string-literal`] | 🌟 | [`dot-notation`][dot-notation] | -| [`no-string-throw`] | ✅ | [`@typescript-eslint/no-throw-literal`] | -| [`no-submodule-imports`] | 🌓 | [`import/no-internal-modules`] (slightly different) | -| [`no-switch-case-fall-through`] | 🌟 | [`no-fallthrough`][no-fallthrough] | -| [`no-tautology-expression`] | 🛑 | N/A | -| [`no-this-assignment`] | ✅ | [`@typescript-eslint/no-this-alias`] | -| [`no-unbound-method`] | ✅ | [`@typescript-eslint/unbound-method`] | -| [`no-unnecessary-class`] | ✅ | [`@typescript-eslint/no-extraneous-class`] | -| [`no-unsafe-any`] | 🌓 | [`@typescript-eslint/no-unsafe-member-access`][2] | -| [`no-unsafe-finally`] | 🌟 | [`no-unsafe-finally`][no-unsafe-finally] | -| [`no-unused-expression`] | 🌟 | [`no-unused-expressions`][no-unused-expressions] | -| [`no-unused-variable`] | 🌓 | [`@typescript-eslint/no-unused-vars`] | -| [`no-use-before-declare`] | ✅ | [`@typescript-eslint/no-use-before-define`] | -| [`no-var-keyword`] | 🌟 | [`no-var`][no-var] | -| [`no-void-expression`] | ✅ | [`@typescript-eslint/no-confusing-void-expression`] | -| [`prefer-conditional-expression`] | 🛑 | N/A | -| [`prefer-object-spread`] | 🌟 | [`prefer-object-spread`][prefer-object-spread] | -| [`radix`] | 🌟 | [`radix`][radix] | -| [`restrict-plus-operands`] | ✅ | [`@typescript-eslint/restrict-plus-operands`] | -| [`static-this`] | 🛑 | N/A | -| [`strict-boolean-expressions`] | ✅ | [`@typescript-eslint/strict-boolean-expressions`] | -| [`strict-string-expressions`] | ✅ | [`@typescript-eslint/restrict-plus-operands`] & [`@typescript-eslint/restrict-template-expressions`] | -| [`strict-type-predicates`] | 🛑 | N/A | -| [`switch-default`] | 🌟 | [`default-case`][default-case] | -| [`triple-equals`] | 🌟 | [`eqeqeq`][eqeqeq] | -| [`typeof-compare`] | 🌟 | [`valid-typeof`][valid-typeof] | -| [`unnecessary-constructor`] | 🌟 | [`no-useless-constructor`][no-useless-constructor] | -| [`use-default-type-parameter`] | ✅ | [`@typescript-eslint/no-unnecessary-type-arguments`] | -| [`use-isnan`] | 🌟 | [`use-isnan`][use-isnan] | - -[1] The ESLint rule also supports silencing with an extra set of parentheses (`if ((foo = bar)) {}`)
-[2] Only checks member expressions - -### Maintainability - -| TSLint rule | | ESLint rule | -| ---------------------------- | :-: | -------------------------------------------------- | -| [`cyclomatic-complexity`] | 🌟 | [`complexity`][complexity] | -| [`deprecation`] | 🔌 | [`deprecation/deprecation`] | -| [`eofline`] | 🌟 | [`eol-last`][eol-last] | -| [`indent`] | ✅ | [`@typescript-eslint/indent`] or [Prettier] | -| [`linebreak-style`] | 🌟 | [`linebreak-style`][linebreak-style] or [Prettier] | -| [`max-classes-per-file`] | 🌟 | [`max-classes-per-file`][max-classes-per-file] | -| [`max-file-line-count`] | 🌟 | [`max-lines`][max-lines] | -| [`max-line-length`] | 🌟 | [`max-len`][max-len] or [Prettier] | -| [`no-default-export`] | 🔌 | [`import/no-default-export`] | -| [`no-default-import`] | 🛑 | N/A | -| [`no-duplicate-imports`] | 🔌 | [`import/no-duplicates`] | -| [`no-mergeable-namespace`] | 🛑 | N/A | -| [`no-require-imports`] | ✅ | [`@typescript-eslint/no-require-imports`] | -| [`object-literal-sort-keys`] | 🌓 | [`sort-keys`][sort-keys] [2] | -| [`prefer-const`] | 🌟 | [`prefer-const`][prefer-const] | -| [`prefer-readonly`] | ✅ | [`@typescript-eslint/prefer-readonly`] | -| [`trailing-comma`] | 🌓 | [`comma-dangle`][comma-dangle] or [Prettier] | - -[2] Missing support for blank-line-delimited sections - -### Style - -| TSLint rule | | ESLint rule | -| ----------------------------------- | :-: | ----------------------------------------------------------------------------------- | -| [`align`] | 🛑 | N/A | -| [`array-type`] | ✅ | [`@typescript-eslint/array-type`] | -| [`arrow-parens`] | 🌟 | [`arrow-parens`][arrow-parens] | -| [`arrow-return-shorthand`] | 🌟 | [`arrow-body-style`][arrow-body-style] | -| [`binary-expression-operand-order`] | 🌟 | [`yoda`][yoda] | -| [`callable-types`] | ✅ | [`@typescript-eslint/prefer-function-type`] | -| [`class-name`] | ✅ | [`@typescript-eslint/naming-convention`] | -| [`comment-format`] | 🌟 | [`capitalized-comments`][capitalized-comments] & [`spaced-comment`][spaced-comment] | -| [`comment-type`] | 🛑 | N/A | -| [`completed-docs`] | 🔌 | [`jsdoc/require-jsdoc`] | -| [`encoding`] | 🛑 | N/A | -| [`file-header`] | 🔌 | [`eslint-plugin-header`][plugin:header] or [`-file-header`][plugin:file-header] | -| [`file-name-casing`] | 🔌 | [`unicorn/filename-case`] | -| [`import-spacing`] | 🔌 | Use [Prettier] | -| [`increment-decrement`] | 🌟 | [`no-plusplus`][no-plusplus] | -| [`interface-name`] | ✅ | [`@typescript-eslint/interface-name-prefix`] | -| [`interface-over-type-literal`] | ✅ | [`@typescript-eslint/consistent-type-definitions`] | -| [`jsdoc-format`] | 🌓 | [`valid-jsdoc`][valid-jsdoc] or [`eslint-plugin-jsdoc`][plugin:jsdoc] | -| [`match-default-export-name`] | 🛑 | N/A | -| [`newline-before-return`] | 🌟 | [`padding-line-between-statements`][padding-line-between-statements] [1] | -| [`newline-per-chained-call`] | 🌟 | [`newline-per-chained-call`][newline-per-chained-call] | -| [`new-parens`] | 🌟 | [`new-parens`][new-parens] | -| [`no-angle-bracket-type-assertion`] | ✅ | [`@typescript-eslint/consistent-type-assertions`] | -| [`no-boolean-literal-compare`] | ✅ | [`@typescript-eslint/no-unnecessary-boolean-literal-compare`] | -| [`no-consecutive-blank-lines`] | 🌟 | [`no-multiple-empty-lines`][no-multiple-empty-lines] | -| [`no-irregular-whitespace`] | 🌟 | [`no-irregular-whitespace`][no-irregular-whitespace] with `skipStrings: false` | -| [`no-parameter-properties`] | ✅ | [`@typescript-eslint/parameter-properties`] | -| [`no-redundant-jsdoc`] | 🔌 | [`jsdoc/no-types`] | -| [`no-reference-import`] | ✅ | [`@typescript-eslint/triple-slash-reference`] | -| [`no-trailing-whitespace`] | 🌟 | [`no-trailing-spaces`][no-trailing-spaces] | -| [`no-unnecessary-callback-wrapper`] | 🛑 | N/A and this might be unsafe (i.e. with `forEach`) | -| [`no-unnecessary-else`] | 🌟 | [`no-else-return`][no-else-return] [2] | -| [`no-unnecessary-initializer`] | 🌟 | [`no-undef-init`][no-undef-init] | -| [`no-unnecessary-qualifier`] | ✅ | [`@typescript-eslint/no-unnecessary-qualifier`] | -| [`number-literal-format`] | 🛑 | N/A | -| [`object-literal-key-quotes`] | 🌟 | [`quote-props`][quote-props] | -| [`object-literal-shorthand`] | 🌟 | [`object-shorthand`][object-shorthand] | -| [`one-line`] | 🌟 | [`brace-style`][brace-style] or [Prettier] | -| [`one-variable-per-declaration`] | 🌟 | [`one-var`][one-var] | -| [`ordered-imports`] | 🌓 | [`import/order`] | -| [`prefer-function-over-method`] | 🌟 | [`class-methods-use-this`][class-methods-use-this] | -| [`prefer-method-signature`] | ✅ | [`@typescript-eslint/method-signature-style`] | -| [`prefer-switch`] | 🛑 | N/A | -| [`prefer-template`] | 🌟 | [`prefer-template`][prefer-template] | -| [`prefer-while`] | 🛑 | N/A | -| [`quotemark`] | 🌟 | [`quotes`][quotes] | -| [`return-undefined`] | 🛑 | N/A | -| [`semicolon`] | 🌓 | [`@typescript-eslint/semi`] | -| [`space-before-function-paren`] | 🌟 | [`space-before-function-paren`][space-after-function-paren] | -| [`space-within-parens`] | 🌟 | [`space-in-parens`][space-in-parens] | -| [`switch-final-break`] | 🛑 | N/A | -| [`type-literal-delimiter`] | ✅ | [`@typescript-eslint/member-delimiter-style`] | -| [`unnecessary-bind`] | 🌟 | [`no-extra-bind`][no-extra-bind] | -| [`variable-name`] | ✅ | [`@typescript-eslint/naming-convention`] | -| [`whitespace`] | 🔌 | Use [Prettier] | - -[1] Recommended config: `["error", { blankLine: "always", prev: "*", next: "return" }]`
-[2] Doesn't check other control flow statements, such as `break` or `continue`. - -## `tslint-microsoft-contrib` rules - -Rule listing is [here](https://github.com/Microsoft/tslint-microsoft-contrib#supported-rules). -Deprecated rules are excluded (`missing-jsdoc`, `missing-optional-annotation`, `no-duplicate-case`, `no-duplicate-parameter-names`, `no-function-constructor-with-string-args`, `no-increment-decrement`, `no-empty-interfaces`, `no-missing-visibility-modifiers`, `no-multiple-var-decl`, `no-reserved-keywords`, `no-stateless-class`, `no-var-self`, `no-unnecessary-bind`, and `valid-typeof`). See the docs in the link above to find out what to use instead. - -### Testing - -Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-plugin-chai-expect-keywords), [`chai-expect`](https://github.com/Turbo87/eslint-plugin-chai-expect), [`chai-friendly`](https://github.com/ihordiachenko/eslint-plugin-chai-friendly), [`mocha`](https://github.com/lo1tuma/eslint-plugin-mocha), and [`jest`](https://github.com/jest-community/eslint-plugin-jest) - -| `tslint-microsoft-contrib` rule | | ESLint rule | -| ---------------------------------- | :-: | ------------------------- | -| `chai-prefer-contains-to-index-of` | 🛑 | N/A | -| `chai-vague-errors` | 🛑 | N/A | -| `mocha-avoid-only` | 🔌 | [`jest/no-focused-tests`] | -| `mocha-unneeded-done` | 🛑 | N/A | - -### TypeScript - -| `tslint-microsoft-contrib` rule | | ESLint rule | -| ------------------------------- | :-: | ---------------------------------------------------------- | -| `prefer-array-literal` | 🌓 | [`@typescript-eslint/no-array-constructor`] [1] | -| `prefer-type-cast` | 🛑 | N/A | - -[1] ESLint rule is slightly less strict, allowing `new Array()` and `Array(2)`. - -### Miscellaneous - -| `tslint-microsoft-contrib` rule | | ESLint rule | -| ------------------------------------- | :-: | ---------------------------------------------------------------------- | -| `export-name` | 🛑 | N/A ([relevant plugin][plugin:import]) | -| `function-name` | 🛑 | N/A | -| `import-name` | 🛑 | N/A ([relevant plugin][plugin:import]) | -| `informative-docs` | 🛑 | N/A | -| `max-func-body-length` | 🌟 | [`max-statements`][max-statements] | -| `no-banned-terms` | 🌟 | [`no-caller`][no-caller] & [`no-eval`][no-eval] | -| `no-constant-condition` | 🌟 | [`no-constant-condition`][no-constant-condition] | -| `no-control-regex` | 🌟 | [`no-control-regex`][no-control-regex] | -| `no-delete-expression` | ✅ | [`@typescript-eslint/no-dynamic-delete`] | -| `no-empty-line-after-opening-brace` | 🌟 | [`padded-blocks`][padded-blocks] [1] or [Prettier] | -| `no-for-in` | 🌟 | [`no-restricted-syntax`][no-restricted-syntax] [2] | -| `no-function-expression` | 🌟 | [`func-style`][func-style] [3] | -| `no-invalid-regexp` | 🌟 | [`no-invalid-regexp`][no-invalid-regexp] | -| `no-multiline-string` | 🌟 | [`no-multi-str`][no-multi-str] | -| `no-octal-literal` | 🌟 | [`no-octal-escape`][no-octal-escape], see also [`no-octal`][no-octal] | -| `no-regex-spaces` | 🌟 | [`no-regex-spaces`][no-regex-spaces] | -| `no-relative-imports` | 🛑 | N/A, _Not recommended by the maintainers_ | -| `no-single-line-block-comment` | 🛑 | N/A | -| `no-suspicious-comment` | 🌟 | [`no-warning-comments`][no-warning-comments] [4] | -| `no-typeof-undefined` | 🛑 | N/A (this actually has a valid use: checking if a variable is defined) | -| `no-unexternalized-strings` | 🛑 | N/A | -| `no-unnecessary-field-initialization` | 🌓 | [`no-undef-init`][no-undef-init] [5] | -| `no-unnecessary-local-variable` | 🛑 | N/A | -| `no-unnecessary-override` | 🛑 | N/A | -| `no-unnecessary-semicolons` | 🌟 | [`no-extra-semi`][no-extra-semi] or [Prettier] | -| `no-useless-files` | 🛑 | N/A | -| `no-with-statement` | 🌟 | [`no-with`][no-with] | -| `promise-must-complete` | 🛑 | N/A | -| `underscore-consistent-invocation` | 🔌 | [`lodash/chaining`] | -| `use-named-parameter` | 🛑 | N/A | -| `use-simple-attributes` | 🛑 | N/A | - -[1] Enforces blank lines both at the beginning and end of a block
-[2] Recommended config: `["error", "ForInStatement"]`
-[3] Recommended config: `["error", "declaration", { "allowArrowFunctions": true }]`
-[4] Recommended config: `["error", { "terms": ["BUG", "HACK", "FIXME", "LATER", "LATER2", "TODO"], "location": "anywhere" }]`
-[5] Does not check class fields. - -### Security - -| `tslint-microsoft-contrib` rule | | ESLint rule | -| ------------------------------- | :-: | ------------------------------------------------------------------------------------------- | -| `insecure-random` | 🔌 | [`desktop/insecure-random`] or [`@microsoft/sdl/no-insecure-random`] | -| `no-disable-auto-sanitization` | 🔌 | [`@microsoft/sdl/no-msapp-exec-unsafe`] and [`@microsoft/sdl/no-winjs-html-unsafe`] | -| `no-document-domain` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-document-domain`] | -| `no-http-string` | 🔌 | [`@microsoft/sdl/no-insecure-url`] | -| `no-inner-html` | 🔌 | [`@microsoft/sdl/no-inner-html`] and [`@microsoft/sdl/no-html-method`] | -| `no-string-based-set-immediate` | 🌓 | [`@typescript-eslint/no-implied-eval`] | -| `no-string-based-set-interval` | 🌓 | [`@typescript-eslint/no-implied-eval`] | -| `no-string-based-set-timeout` | 🌓 | [`@typescript-eslint/no-implied-eval`] | -| `react-anchor-blank-noopener` | 🔌 | [`react/jsx-no-target-blank`] | -| `react-iframe-missing-sandbox` | 🔌 | [`@microsoft/sdl/react-iframe-missing-sandbox`] | -| `react-no-dangerous-html` | 🔌 | [`react/no-danger`] | -| `non-literal-fs-path` | 🔌 | [`security/detect-non-literal-fs-filename`] | -| `non-literal-require` | 🔌 | [`security/detect-non-literal-require`] | -| `possible-timing-attack` | 🔌 | [`security/detect-possible-timing-attacks`] | - -### Browser - -| `tslint-microsoft-contrib` rule | | ESLint rule | -| ----------------------------------- | :-: | -------------------------------------------------------------------------------------------- | -| `jquery-deferred-must-complete` | 🛑 | N/A | -| `no-backbone-get-set-outside-model` | 🛑 | N/A | -| `no-cookies` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-cookies`] | -| `no-document-write` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-document-write`] | -| `no-exec-script` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@typescript-eslint/no-implied-eval`] | -| `no-jquery-raw-elements` | 🛑 | N/A | -| `no-unsupported-browser-code` | 🛑 | N/A | -| `react-this-binding-issue` | 🛑 | N/A | -| `react-tsx-curly-spacing` | 🔌 | [`react/jsx-curly-spacing`] | -| `react-unused-props-and-state` | 🌓 | [`react/no-unused-state`] | - -### React A11y - -| `tslint-microsoft-contrib` rule | | ESLint rule | -| ----------------------------------------- | :-: | ---------------------------------------------------------- | -| `react-a11y-accessible-headings` | 🌓 | [`jsx-a11y/heading-has-content`] [1] | -| `react-a11y-anchors` | 🔌 | [`jsx-a11y/anchor-is-valid`] | -| `react-a11y-aria-unsupported-elements` | 🔌 | [`jsx-a11y/aria-unsupported-elements`] | -| `react-a11y-event-has-role` | 🌓 | [`jsx-a11y/no-static-element-interactions`] [2] | -| `react-a11y-image-button-has-alt` | 🔌 | [`jsx-a11y/alt-text`] | -| `react-a11y-img-has-alt` | 🔌 | [`jsx-a11y/alt-text`] | -| `react-a11y-input-elements` | 🛑 | N/A | -| `react-a11y-lang` | 🔌 | [`jsx-a11y/lang`] | -| `react-a11y-meta` | 🛑 | N/A | -| `react-a11y-no-onchange` | 🔌 | [`jsx-a11y/no-onchange`] | -| `react-a11y-props` | 🔌 | [`jsx-a11y/aria-props`] | -| `react-a11y-proptypes` | 🔌 | [`jsx-a11y/aria-proptypes`] | -| `react-a11y-required` | 🛑 | N/A | -| `react-a11y-role-has-required-aria-props` | 🔌 | [`jsx-a11y/role-has-required-aria-props`] | -| `react-a11y-role-supports-aria-props` | 🔌 | [`jsx-a11y/role-supports-aria-props`] | -| `react-a11y-role` | 🔌 | [`jsx-a11y/aria-role`] | -| `react-a11y-tabindex-no-positive` | 🔌 | [`jsx-a11y/tabindex-no-positive`] | -| `react-a11y-titles` | 🛑 | N/A | - -[1] TSLint rule is more strict
-[2] ESLint rule only reports for click handlers - -[prettier]: https://prettier.io - - - -[`adjacent-overload-signatures`]: https://palantir.github.io/tslint/rules/adjacent-overload-signatures -[`ban-ts-ignore`]: https://palantir.github.io/tslint/rules/ban-ts-ignore/ -[`ban-types`]: https://palantir.github.io/tslint/rules/ban-types -[`invalid-void`]: https://palantir.github.io/tslint/rules/invalid-void -[`member-access`]: https://palantir.github.io/tslint/rules/member-access -[`member-ordering`]: https://palantir.github.io/tslint/rules/member-ordering -[`no-any`]: https://palantir.github.io/tslint/rules/no-any -[`no-empty-interface`]: https://palantir.github.io/tslint/rules/no-empty-interface -[`no-import-side-effect`]: https://palantir.github.io/tslint/rules/no-import-side-effect -[`no-inferrable-types`]: https://palantir.github.io/tslint/rules/no-inferrable-types -[`no-internal-module`]: https://palantir.github.io/tslint/rules/no-internal-module -[`no-magic-numbers`]: https://palantir.github.io/tslint/rules/no-magic-numbers -[`no-namespace`]: https://palantir.github.io/tslint/rules/no-namespace -[`no-non-null-assertion`]: https://palantir.github.io/tslint/rules/no-non-null-assertion -[`no-parameter-reassignment`]: https://palantir.github.io/tslint/rules/no-parameter-reassignment -[`no-reference`]: https://palantir.github.io/tslint/rules/no-reference -[`no-unnecessary-type-assertion`]: https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion -[`no-var-requires`]: https://palantir.github.io/tslint/rules/no-var-requires -[`only-arrow-functions`]: https://palantir.github.io/tslint/rules/only-arrow-functions -[`prefer-for-of`]: https://palantir.github.io/tslint/rules/prefer-for-of -[`promise-function-async`]: https://palantir.github.io/tslint/rules/promise-function-async -[`typedef`]: https://palantir.github.io/tslint/rules/typedef -[`typedef-whitespace`]: https://palantir.github.io/tslint/rules/typedef-whitespace -[`unified-signatures`]: https://palantir.github.io/tslint/rules/unified-signatures -[`await-promise`]: https://palantir.github.io/tslint/rules/await-promise -[`ban-comma-operator`]: https://palantir.github.io/tslint/rules/ban-comma-operator -[`ban`]: https://palantir.github.io/tslint/rules/ban -[`curly`]: https://palantir.github.io/tslint/rules/curly -[`forin`]: https://palantir.github.io/tslint/rules/forin -[`function-constructor`]: https://palantir.github.io/tslint/rules/function-constructor -[`import-blacklist`]: https://palantir.github.io/tslint/rules/import-blacklist -[`label-position`]: https://palantir.github.io/tslint/rules/label-position -[`no-arg`]: https://palantir.github.io/tslint/rules/no-arg -[`no-async-without-await`]: https://palantir.github.io/tslint/rules/no-async-without-await -[`no-bitwise`]: https://palantir.github.io/tslint/rules/no-bitwise -[`no-conditional-assignment`]: https://palantir.github.io/tslint/rules/no-conditional-assignment -[`no-console`]: https://palantir.github.io/tslint/rules/no-console -[`no-construct`]: https://palantir.github.io/tslint/rules/no-construct -[`no-debugger`]: https://palantir.github.io/tslint/rules/no-debugger -[`no-duplicate-super`]: https://palantir.github.io/tslint/rules/no-duplicate-super -[`no-duplicate-switch-case`]: https://palantir.github.io/tslint/rules/no-duplicate-switch-case -[`no-duplicate-variable`]: https://palantir.github.io/tslint/rules/no-duplicate-variable -[`no-dynamic-delete`]: https://palantir.github.io/tslint/rules/no-dynamic-delete -[`no-empty`]: https://palantir.github.io/tslint/rules/no-empty -[`no-eval`]: https://palantir.github.io/tslint/rules/no-eval -[`no-floating-promises`]: https://palantir.github.io/tslint/rules/no-floating-promises -[`no-for-in-array`]: https://palantir.github.io/tslint/rules/no-for-in-array -[`no-implicit-dependencies`]: https://palantir.github.io/tslint/rules/no-implicit-dependencies -[`no-inferred-empty-object-type`]: https://palantir.github.io/tslint/rules/no-inferred-empty-object-type -[`no-invalid-template-strings`]: https://palantir.github.io/tslint/rules/no-invalid-template-strings -[`no-invalid-this`]: https://palantir.github.io/tslint/rules/no-invalid-this -[`no-misused-new`]: https://palantir.github.io/tslint/rules/no-misused-new -[`no-null-keyword`]: https://palantir.github.io/tslint/rules/no-null-keyword -[`no-null-undefined-union`]: https://palantir.github.io/tslint/rules/no-null-undefined-union -[`no-object-literal-type-assertion`]: https://palantir.github.io/tslint/rules/no-object-literal-type-assertion -[`no-promise-as-boolean`]: https://palantir.github.io/tslint/rules/no-promise-as-boolean -[`no-restricted-globals`]: https://palantir.github.io/tslint/rules/no-restricted-globals -[`no-return-await`]: https://palantir.github.io/tslint/rules/no-return-await -[`no-shadowed-variable`]: https://palantir.github.io/tslint/rules/no-shadowed-variable -[`no-sparse-arrays`]: https://palantir.github.io/tslint/rules/no-sparse-arrays -[`no-string-literal`]: https://palantir.github.io/tslint/rules/no-string-literal -[`no-string-throw`]: https://palantir.github.io/tslint/rules/no-string-throw -[`no-submodule-imports`]: https://palantir.github.io/tslint/rules/no-submodule-imports -[`no-switch-case-fall-through`]: https://palantir.github.io/tslint/rules/no-switch-case-fall-through -[`no-tautology-expression`]: https://palantir.github.io/tslint/rules/no-tautology-expression -[`no-this-assignment`]: https://palantir.github.io/tslint/rules/no-this-assignment -[`no-unbound-method`]: https://palantir.github.io/tslint/rules/no-unbound-method -[`no-unnecessary-class`]: https://palantir.github.io/tslint/rules/no-unnecessary-class -[`no-unsafe-any`]: https://palantir.github.io/tslint/rules/no-unsafe-any -[`no-unsafe-finally`]: https://palantir.github.io/tslint/rules/no-unsafe-finally -[`no-unused-expression`]: https://palantir.github.io/tslint/rules/no-unused-expression -[`no-unused-variable`]: https://palantir.github.io/tslint/rules/no-unused-variable -[`no-use-before-declare`]: https://palantir.github.io/tslint/rules/no-use-before-declare -[`no-var-keyword`]: https://palantir.github.io/tslint/rules/no-var-keyword -[`no-void-expression`]: https://palantir.github.io/tslint/rules/no-void-expression -[`prefer-conditional-expression`]: https://palantir.github.io/tslint/rules/prefer-conditional-expression -[`prefer-object-spread`]: https://palantir.github.io/tslint/rules/prefer-object-spread -[`radix`]: https://palantir.github.io/tslint/rules/radix -[`restrict-plus-operands`]: https://palantir.github.io/tslint/rules/restrict-plus-operands -[`static-this`]: https://palantir.github.io/tslint/rules/static-this -[`strict-boolean-expressions`]: https://palantir.github.io/tslint/rules/strict-boolean-expressions -[`strict-string-expressions`]: https://palantir.github.io/tslint/rules/strict-string-expressions -[`strict-type-predicates`]: https://palantir.github.io/tslint/rules/strict-type-predicates -[`switch-default`]: https://palantir.github.io/tslint/rules/switch-default -[`triple-equals`]: https://palantir.github.io/tslint/rules/triple-equals -[`typeof-compare`]: https://palantir.github.io/tslint/rules/typeof-compare -[`unnecessary-constructor`]: https://palantir.github.io/tslint/rules/unnecessary-constructor -[`use-default-type-parameter`]: https://palantir.github.io/tslint/rules/use-default-type-parameter -[`use-isnan`]: https://palantir.github.io/tslint/rules/use-isnan -[`cyclomatic-complexity`]: https://palantir.github.io/tslint/rules/cyclomatic-complexity -[`deprecation`]: https://palantir.github.io/tslint/rules/deprecation -[`eofline`]: https://palantir.github.io/tslint/rules/eofline -[`indent`]: https://palantir.github.io/tslint/rules/indent -[`linebreak-style`]: https://palantir.github.io/tslint/rules/linebreak-style -[`max-classes-per-file`]: https://palantir.github.io/tslint/rules/max-classes-per-file -[`max-file-line-count`]: https://palantir.github.io/tslint/rules/max-file-line-count -[`max-line-length`]: https://palantir.github.io/tslint/rules/max-line-length -[`no-default-export`]: https://palantir.github.io/tslint/rules/no-default-export -[`no-default-import`]: https://palantir.github.io/tslint/rules/no-default-import -[`no-duplicate-imports`]: https://palantir.github.io/tslint/rules/no-duplicate-imports -[`no-mergeable-namespace`]: https://palantir.github.io/tslint/rules/no-mergeable-namespace -[`no-require-imports`]: https://palantir.github.io/tslint/rules/no-require-imports -[`object-literal-sort-keys`]: https://palantir.github.io/tslint/rules/object-literal-sort-keys -[`prefer-const`]: https://palantir.github.io/tslint/rules/prefer-const -[`prefer-readonly`]: https://palantir.github.io/tslint/rules/prefer-readonly -[`trailing-comma`]: https://palantir.github.io/tslint/rules/trailing-comma -[`align`]: https://palantir.github.io/tslint/rules/align -[`array-type`]: https://palantir.github.io/tslint/rules/array-type -[`arrow-parens`]: https://palantir.github.io/tslint/rules/arrow-parens -[`arrow-return-shorthand`]: https://palantir.github.io/tslint/rules/arrow-return-shorthand -[`binary-expression-operand-order`]: https://palantir.github.io/tslint/rules/binary-expression-operand-order -[`callable-types`]: https://palantir.github.io/tslint/rules/callable-types -[`class-name`]: https://palantir.github.io/tslint/rules/class-name -[`comment-format`]: https://palantir.github.io/tslint/rules/comment-format -[`comment-type`]: https://palantir.github.io/tslint/rules/comment-type -[`completed-docs`]: https://palantir.github.io/tslint/rules/completed-docs -[`encoding`]: https://palantir.github.io/tslint/rules/encoding -[`file-header`]: https://palantir.github.io/tslint/rules/file-header -[`file-name-casing`]: https://palantir.github.io/tslint/rules/file-name-casing -[`import-spacing`]: https://palantir.github.io/tslint/rules/import-spacing -[`increment-decrement`]: https://palantir.github.io/tslint/rules/increment-decrement -[`interface-name`]: https://palantir.github.io/tslint/rules/interface-name -[`interface-over-type-literal`]: https://palantir.github.io/tslint/rules/interface-over-type-literal -[`jsdoc-format`]: https://palantir.github.io/tslint/rules/jsdoc-format -[`match-default-export-name`]: https://palantir.github.io/tslint/rules/match-default-export-name -[`newline-before-return`]: https://palantir.github.io/tslint/rules/newline-before-return -[`newline-per-chained-call`]: https://palantir.github.io/tslint/rules/newline-per-chained-call -[`new-parens`]: https://palantir.github.io/tslint/rules/new-parens -[`no-angle-bracket-type-assertion`]: https://palantir.github.io/tslint/rules/no-angle-bracket-type-assertion -[`no-boolean-literal-compare`]: https://palantir.github.io/tslint/rules/no-boolean-literal-compare -[`no-consecutive-blank-lines`]: https://palantir.github.io/tslint/rules/no-consecutive-blank-lines -[`no-irregular-whitespace`]: https://palantir.github.io/tslint/rules/no-irregular-whitespace -[`no-parameter-properties`]: https://palantir.github.io/tslint/rules/no-parameter-properties -[`no-redundant-jsdoc`]: https://palantir.github.io/tslint/rules/no-redundant-jsdoc -[`no-reference-import`]: https://palantir.github.io/tslint/rules/no-reference-import -[`no-trailing-whitespace`]: https://palantir.github.io/tslint/rules/no-trailing-whitespace -[`no-unnecessary-callback-wrapper`]: https://palantir.github.io/tslint/rules/no-unnecessary-callback-wrapper -[`no-unnecessary-else`]: https://palantir.github.io/tslint/rules/no-unnecessary-else -[`no-unnecessary-initializer`]: https://palantir.github.io/tslint/rules/no-unnecessary-initializer -[`no-unnecessary-qualifier`]: https://palantir.github.io/tslint/rules/no-unnecessary-qualifier -[`number-literal-format`]: https://palantir.github.io/tslint/rules/number-literal-format -[`object-literal-key-quotes`]: https://palantir.github.io/tslint/rules/object-literal-key-quotes -[`object-literal-shorthand`]: https://palantir.github.io/tslint/rules/object-literal-shorthand -[`one-line`]: https://palantir.github.io/tslint/rules/one-line -[`one-variable-per-declaration`]: https://palantir.github.io/tslint/rules/one-variable-per-declaration -[`ordered-imports`]: https://palantir.github.io/tslint/rules/ordered-imports -[`prefer-function-over-method`]: https://palantir.github.io/tslint/rules/prefer-function-over-method -[`prefer-method-signature`]: https://palantir.github.io/tslint/rules/prefer-method-signature -[`prefer-switch`]: https://palantir.github.io/tslint/rules/prefer-switch -[`prefer-template`]: https://palantir.github.io/tslint/rules/prefer-template -[`prefer-while`]: https://palantir.github.io/tslint/rules/prefer-while -[`quotemark`]: https://palantir.github.io/tslint/rules/quotemark -[`return-undefined`]: https://palantir.github.io/tslint/rules/return-undefined -[`semicolon`]: https://palantir.github.io/tslint/rules/semicolon -[`space-before-function-paren`]: https://palantir.github.io/tslint/rules/space-before-function-paren -[`space-within-parens`]: https://palantir.github.io/tslint/rules/space-within-parens -[`switch-final-break`]: https://palantir.github.io/tslint/rules/switch-final-break -[`type-literal-delimiter`]: https://palantir.github.io/tslint/rules/type-literal-delimiter -[`unnecessary-bind`]: https://palantir.github.io/tslint/rules/unnecessary-bind -[`variable-name`]: https://palantir.github.io/tslint/rules/variable-name -[`whitespace`]: https://palantir.github.io/tslint/rules/whitespace - - - -[no-magic-numbers]: https://eslint.org/docs/rules/no-magic-numbers -[no-param-reassign]: https://eslint.org/docs/rules/no-param-reassign -[no-sequences]: https://eslint.org/docs/rules/no-sequences -[no-restricted-globals]: https://eslint.org/docs/rules/no-restricted-globals -[no-restricted-properties]: https://eslint.org/docs/rules/no-restricted-properties -[no-restricted-syntax]: https://eslint.org/docs/rules/no-restricted-syntax -[curly]: https://eslint.org/docs/rules/curly -[guard-for-in]: https://eslint.org/docs/rules/guard-for-in -[no-new-func]: https://eslint.org/docs/rules/no-new-func -[no-restricted-imports]: https://eslint.org/docs/rules/no-restricted-imports -[no-unused-labels]: https://eslint.org/docs/rules/no-unused-labels -[no-caller]: https://eslint.org/docs/rules/no-caller -[no-bitwise]: https://eslint.org/docs/rules/no-bitwise -[no-cond-assign]: https://eslint.org/docs/rules/no-cond-assign -[no-console]: https://eslint.org/docs/rules/no-console -[no-new-wrappers]: https://eslint.org/docs/rules/no-new-wrappers -[no-debugger]: https://eslint.org/docs/rules/no-debugger -[constructor-super]: https://eslint.org/docs/rules/constructor-super -[no-duplicate-case]: https://eslint.org/docs/rules/no-duplicate-case -[no-redeclare]: https://eslint.org/docs/rules/no-redeclare -[no-empty]: https://eslint.org/docs/rules/no-empty -[no-eval]: https://eslint.org/docs/rules/no-eval -[no-template-curly-in-string]: https://eslint.org/docs/rules/no-template-curly-in-string -[no-invalid-this]: https://eslint.org/docs/rules/no-invalid-this -[no-return-await]: https://eslint.org/docs/rules/no-return-await -[no-shadow]: https://eslint.org/docs/rules/no-shadow -[no-sparse-arrays]: https://eslint.org/docs/rules/no-sparse-arrays -[dot-notation]: https://eslint.org/docs/rules/dot-notation -[no-fallthrough]: https://eslint.org/docs/rules/no-fallthrough -[no-unsafe-finally]: https://eslint.org/docs/rules/no-unsafe-finally -[no-unused-expressions]: https://eslint.org/docs/rules/no-unused-expressions -[no-var]: https://eslint.org/docs/rules/no-var -[prefer-object-spread]: https://eslint.org/docs/rules/prefer-object-spread -[radix]: https://eslint.org/docs/rules/radix -[default-case]: https://eslint.org/docs/rules/default-case -[eqeqeq]: https://eslint.org/docs/rules/eqeqeq -[valid-typeof]: https://eslint.org/docs/rules/valid-typeof -[no-useless-constructor]: https://eslint.org/docs/rules/no-useless-constructor -[use-isnan]: https://eslint.org/docs/rules/use-isnan -[complexity]: https://eslint.org/docs/rules/complexity -[eol-last]: https://eslint.org/docs/rules/eol-last -[linebreak-style]: https://eslint.org/docs/rules/linebreak-style -[max-classes-per-file]: https://eslint.org/docs/rules/max-classes-per-file -[max-lines]: https://eslint.org/docs/rules/max-lines -[max-len]: https://eslint.org/docs/rules/max-len -[sort-keys]: https://eslint.org/docs/rules/sort-keys -[prefer-const]: https://eslint.org/docs/rules/prefer-const -[comma-dangle]: https://eslint.org/docs/rules/comma-dangle -[arrow-parens]: https://eslint.org/docs/rules/arrow-parens -[arrow-body-style]: https://eslint.org/docs/rules/arrow-body-style -[yoda]: https://eslint.org/docs/rules/yoda -[capitalized-comments]: https://eslint.org/docs/rules/capitalized-comments -[spaced-comment]: https://eslint.org/docs/rules/spaced-comment -[no-plusplus]: https://eslint.org/docs/rules/no-plusplus -[valid-jsdoc]: https://eslint.org/docs/rules/valid-jsdoc -[padding-line-between-statements]: https://eslint.org/docs/rules/padding-line-between-statements -[newline-per-chained-call]: https://eslint.org/docs/rules/newline-per-chained-call -[new-parens]: https://eslint.org/docs/rules/new-parens -[no-else-return]: https://eslint.org/docs/rules/no-else-return -[no-multiple-empty-lines]: https://eslint.org/docs/rules/no-multiple-empty-lines -[no-irregular-whitespace]: https://eslint.org/docs/rules/no-irregular-whitespace -[no-trailing-spaces]: https://eslint.org/docs/rules/no-trailing-spaces -[no-undef-init]: https://eslint.org/docs/rules/no-undef-init -[quote-props]: https://eslint.org/docs/rules/quote-props -[object-shorthand]: https://eslint.org/docs/rules/object-shorthand -[brace-style]: https://eslint.org/docs/rules/brace-style -[one-var]: https://eslint.org/docs/rules/one-var -[class-methods-use-this]: https://eslint.org/docs/rules/class-methods-use-this -[prefer-template]: https://eslint.org/docs/rules/prefer-template -[quotes]: https://eslint.org/docs/rules/quotes -[semi]: https://eslint.org/docs/rules/semi -[space-after-function-paren]: https://eslint.org/docs/rules/space-before-function-paren -[space-in-parens]: https://eslint.org/docs/rules/space-in-parens -[no-extra-bind]: https://eslint.org/docs/rules/no-extra-bind -[camelcase]: https://eslint.org/docs/rules/camelcase -[no-underscore-dangle]: https://eslint.org/docs/rules/no-underscore-dangle -[id-blacklist]: https://eslint.org/docs/rules/id-blacklist -[id-match]: https://eslint.org/docs/rules/id-match -[max-statements]: https://eslint.org/docs/rules/max-statements -[no-constant-condition]: https://eslint.org/docs/rules/no-constant-condition -[no-control-regex]: https://eslint.org/docs/rules/no-control-regex -[no-invalid-regexp]: https://eslint.org/docs/rules/no-invalid-regexp -[no-regex-spaces]: https://eslint.org/docs/rules/no-regex-spaces -[no-new-func]: https://eslint.org/docs/rules/no-new-func -[padded-blocks]: https://eslint.org/docs/rules/padded-blocks -[func-style]: https://eslint.org/docs/rules/func-style -[no-multi-str]: https://eslint.org/docs/rules/no-multi-str -[no-octal]: https://eslint.org/docs/rules/no-octal -[no-octal-escape]: https://eslint.org/docs/rules/no-octal-escape -[no-extra-semi]: https://eslint.org/docs/rules/no-extra-semi -[no-with]: https://eslint.org/docs/rules/no-with -[no-warning-comments]: https://eslint.org/docs/rules/no-warning-comments - - - -[`@typescript-eslint/adjacent-overload-signatures`]: https://typescript-eslint.io/rules/adjacent-overload-signatures -[`@typescript-eslint/await-thenable`]: https://typescript-eslint.io/rules/await-thenable -[`@typescript-eslint/ban-types`]: https://typescript-eslint.io/rules/ban-types -[`@typescript-eslint/ban-ts-comment`]: https://typescript-eslint.io/rules/ban-ts-comment -[`@typescript-eslint/consistent-type-assertions`]: https://typescript-eslint.io/rules/consistent-type-assertions -[`@typescript-eslint/consistent-type-definitions`]: https://typescript-eslint.io/rules/consistent-type-definitions -[`@typescript-eslint/explicit-member-accessibility`]: https://typescript-eslint.io/rules/explicit-member-accessibility -[`@typescript-eslint/member-ordering`]: https://typescript-eslint.io/rules/member-ordering -[`@typescript-eslint/method-signature-style`]: https://typescript-eslint.io/rules/method-signature-style -[`@typescript-eslint/no-explicit-any`]: https://typescript-eslint.io/rules/no-explicit-any -[`@typescript-eslint/no-empty-interface`]: https://typescript-eslint.io/rules/no-empty-interface -[`@typescript-eslint/no-implied-eval`]: https://typescript-eslint.io/rules/no-implied-eval -[`@typescript-eslint/no-inferrable-types`]: https://typescript-eslint.io/rules/no-inferrable-types -[`@typescript-eslint/prefer-namespace-keyword`]: https://typescript-eslint.io/rules/prefer-namespace-keyword -[`@typescript-eslint/promise-function-async`]: https://typescript-eslint.io/rules/promise-function-async -[`@typescript-eslint/no-misused-promises`]: https://typescript-eslint.io/rules/no-misused-promises -[`@typescript-eslint/no-namespace`]: https://typescript-eslint.io/rules/no-namespace -[`@typescript-eslint/no-non-null-assertion`]: https://typescript-eslint.io/rules/no-non-null-assertion -[`@typescript-eslint/triple-slash-reference`]: https://typescript-eslint.io/rules/triple-slash-reference -[`@typescript-eslint/unbound-method`]: https://typescript-eslint.io/rules/unbound-method -[`@typescript-eslint/no-unnecessary-type-assertion`]: https://typescript-eslint.io/rules/no-unnecessary-type-assertion -[`@typescript-eslint/no-var-requires`]: https://typescript-eslint.io/rules/no-var-requires -[`@typescript-eslint/type-annotation-spacing`]: https://typescript-eslint.io/rules/type-annotation-spacing -[`@typescript-eslint/typedef`]: https://typescript-eslint.io/rules/typedef -[`@typescript-eslint/unified-signatures`]: https://typescript-eslint.io/rules/unified-signatures -[`@typescript-eslint/no-unnecessary-boolean-literal-compare`]: https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare -[`@typescript-eslint/no-misused-new`]: https://typescript-eslint.io/rules/no-misused-new -[`@typescript-eslint/no-this-alias`]: https://typescript-eslint.io/rules/no-this-alias -[`@typescript-eslint/no-throw-literal`]: https://typescript-eslint.io/rules/no-throw-literal -[`@typescript-eslint/no-extraneous-class`]: https://typescript-eslint.io/rules/no-extraneous-class -[`@typescript-eslint/no-unused-vars`]: https://typescript-eslint.io/rules/no-unused-vars -[`@typescript-eslint/no-use-before-define`]: https://typescript-eslint.io/rules/no-use-before-define -[`@typescript-eslint/restrict-plus-operands`]: https://typescript-eslint.io/rules/restrict-plus-operands -[`@typescript-eslint/strict-boolean-expressions`]: https://typescript-eslint.io/rules/strict-boolean-expressions -[`@typescript-eslint/indent`]: https://typescript-eslint.io/rules/indent -[`@typescript-eslint/no-invalid-void-type`]: https://typescript-eslint.io/rules/no-invalid-void-type -[`@typescript-eslint/no-require-imports`]: https://typescript-eslint.io/rules/no-require-imports -[`@typescript-eslint/array-type`]: https://typescript-eslint.io/rules/array-type -[`@typescript-eslint/naming-convention`]: https://typescript-eslint.io/rules/naming-convention -[`@typescript-eslint/interface-name-prefix`]: https://typescript-eslint.io/rules/interface-name-prefix -[`@typescript-eslint/naming-convention`]: https://typescript-eslint.io/rules/naming-convention -[`@typescript-eslint/parameter-properties`]: https://typescript-eslint.io/rules/parameter-properties -[`@typescript-eslint/member-delimiter-style`]: https://typescript-eslint.io/rules/member-delimiter-style -[`@typescript-eslint/prefer-for-of`]: https://typescript-eslint.io/rules/prefer-for-of -[`@typescript-eslint/no-array-constructor`]: https://typescript-eslint.io/rules/no-array-constructor -[`@typescript-eslint/no-dynamic-delete`]: https://typescript-eslint.io/rules/no-dynamic-delete -[`@typescript-eslint/prefer-function-type`]: https://typescript-eslint.io/rules/prefer-function-type -[`@typescript-eslint/prefer-readonly`]: https://typescript-eslint.io/rules/prefer-readonly -[`@typescript-eslint/require-await`]: https://typescript-eslint.io/rules/require-await -[`@typescript-eslint/no-for-in-array`]: https://typescript-eslint.io/rules/no-for-in-array -[`@typescript-eslint/no-unnecessary-qualifier`]: https://typescript-eslint.io/rules/no-unnecessary-qualifier -[`@typescript-eslint/no-unnecessary-type-arguments`]: https://typescript-eslint.io/rules/no-unnecessary-type-arguments -[`@typescript-eslint/semi`]: https://typescript-eslint.io/rules/semi -[`@typescript-eslint/no-floating-promises`]: https://typescript-eslint.io/rules/no-floating-promises -[`@typescript-eslint/no-magic-numbers`]: https://typescript-eslint.io/rules/no-magic-numbers -[`@typescript-eslint/no-unsafe-member-access`]: https://typescript-eslint.io/rules/no-unsafe-member-access -[`@typescript-eslint/restrict-template-expressions`]: https://typescript-eslint.io/rules/restrict-template-expressions -[`@typescript-eslint/no-confusing-void-expression`]: https://typescript-eslint.io/rules/no-confusing-void-expression - - - -[plugin:import]: https://github.com/benmosher/eslint-plugin-import -[`import/no-unassigned-import`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unassigned-import.md -[`import/no-extraneous-dependencies`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md -[`import/no-internal-modules`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-internal-modules.md -[`import/no-deprecated`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-deprecated.md -[`import/no-default-export`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-default-export.md -[`import/no-duplicates`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-duplicates.md -[`import/order`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md - - - -[`react/no-danger`]: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-danger.md -[`react/jsx-curly-spacing`]: https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/jsx-curly-spacing.md -[`react/jsx-no-target-blank`]: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md -[`react/no-unused-state`]: https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/no-unused-state.md - - - -[`jsx-a11y/anchor-is-valid`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md -[`jsx-a11y/aria-unsupported-elements`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-unsupported-elements.md -[`jsx-a11y/no-static-element-interactions`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md -[`jsx-a11y/alt-text`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md -[`jsx-a11y/html-has-lang`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/html-has-lang.md -[`jsx-a11y/lang`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/lang.md -[`jsx-a11y/no-onchange`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md -[`jsx-a11y/aria-props`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-props.md -[`jsx-a11y/aria-proptypes`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-proptypes.md -[`jsx-a11y/role-has-required-aria-props`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-has-required-aria-props.md -[`jsx-a11y/role-supports-aria-props`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-supports-aria-props.md -[`jsx-a11y/aria-role`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md -[`jsx-a11y/tabindex-no-positive`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/tabindex-no-positive.md - - - -[`security/detect-non-literal-fs-filename`]: https://github.com/nodesecurity/eslint-plugin-security#detect-non-literal-fs-filename -[`security/detect-non-literal-require`]: https://github.com/nodesecurity/eslint-plugin-security#detect-non-literal-require -[`security/detect-possible-timing-attacks`]: https://github.com/nodesecurity/eslint-plugin-security#detect-possible-timing-attacks - - - -[plugin:jsdoc]: https://github.com/gajus/eslint-plugin-jsdoc -[`jsdoc/require-jsdoc`]: https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc -[`jsdoc/no-types`]: https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-types - - - -[`@microsoft/sdl/no-cookies`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-cookies.md -[`@microsoft/sdl/no-document-domain`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-document-domain.md -[`@microsoft/sdl/no-document-write`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-document-write.md -[`@microsoft/sdl/no-html-method`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-html-method.md -[`@microsoft/sdl/no-inner-html`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-inner-html.md -[`@microsoft/sdl/no-insecure-random`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-insecure-random.md -[`@microsoft/sdl/no-insecure-url`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-insecure-url.md -[`@microsoft/sdl/no-msapp-exec-unsafe`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-msapp-exec-unsafe.md -[`@microsoft/sdl/no-winjs-html-unsafe`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-winjs-html-unsafe.md -[`@microsoft/sdl/react-iframe-missing-sandbox`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/react-iframe-missing-sandbox.md - - - -[`prefer-arrow/prefer-arrow-functions`]: https://github.com/TristonJ/eslint-plugin-prefer-arrow -[plugin:promise]: https://github.com/xjamundx/eslint-plugin-promise -[plugin:header]: https://github.com/Stuk/eslint-plugin-header -[plugin:file-header]: https://github.com/Sekhmet/eslint-plugin-file-header -[plugin:compat]: https://github.com/amilajack/eslint-plugin-compat -[`no-null/no-null`]: https://github.com/nene/eslint-plugin-no-null -[`unicorn/filename-case`]: https://github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/filename-case.md -[`jest/no-focused-tests`]: https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-focused-tests.md -[`jsx-a11y/heading-has-content`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md -[`lodash/chaining`]: https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/chaining.md -[`deprecation/deprecation`]: https://github.com/gund/eslint-plugin-deprecation -[`desktop/insecure-random`]: https://github.com/desktop/desktop/blob/development/eslint-rules/insecure-random.js +👋 diff --git a/packages/eslint-plugin/TSLINT_RULE_ALTERNATIVES.md b/packages/eslint-plugin/TSLINT_RULE_ALTERNATIVES.md new file mode 100644 index 00000000000..097de893804 --- /dev/null +++ b/packages/eslint-plugin/TSLINT_RULE_ALTERNATIVES.md @@ -0,0 +1,728 @@ +# TSLint Rule Alternatives + +This document serves as a guide to help you migrate from TSLint. +It lists all TSLint rules along side rules from the ESLint ecosystem that are the same or similar. + +> For a tool that migrates a TSLint config to the closest possible ESLint config, see [`tslint-to-eslint-config`](https://github.com/typescript-eslint/tslint-to-eslint-config). + +## TSLint rules + +✅ = done
+🌟 = in ESLint core
+🔌 = in another plugin
+🌓 = implementations differ or ESLint version is missing functionality
+🛑 = unimplemented
+ +### TypeScript-specific + +| TSLint rule | | ESLint rule | +| --------------------------------- | :-: | ---------------------------------------------------- | +| [`adjacent-overload-signatures`] | ✅ | [`@typescript-eslint/adjacent-overload-signatures`] | +| [`ban-ts-ignore`] | ✅ | [`@typescript-eslint/ban-ts-comment`] | +| [`ban-types`] | 🌓 | [`@typescript-eslint/ban-types`][1] | +| [`invalid-void`] | ✅ | [`@typescript-eslint/no-invalid-void-type`] | +| [`member-access`] | ✅ | [`@typescript-eslint/explicit-member-accessibility`] | +| [`member-ordering`] | ✅ | [`@typescript-eslint/member-ordering`] | +| [`no-any`] | ✅ | [`@typescript-eslint/no-explicit-any`] | +| [`no-empty-interface`] | ✅ | [`@typescript-eslint/no-empty-interface`] | +| [`no-import-side-effect`] | 🔌 | [`import/no-unassigned-import`] | +| [`no-inferrable-types`] | ✅ | [`@typescript-eslint/no-inferrable-types`] | +| [`no-internal-module`] | ✅ | [`@typescript-eslint/prefer-namespace-keyword`] | +| [`no-magic-numbers`] | ✅ | [`@typescript-eslint/no-magic-numbers`] | +| [`no-namespace`] | ✅ | [`@typescript-eslint/no-namespace`] | +| [`no-non-null-assertion`] | ✅ | [`@typescript-eslint/no-non-null-assertion`] | +| [`no-parameter-reassignment`] | ✅ | [`no-param-reassign`][no-param-reassign] | +| [`no-reference`] | ✅ | [`@typescript-eslint/triple-slash-reference`] | +| [`no-unnecessary-type-assertion`] | ✅ | [`@typescript-eslint/no-unnecessary-type-assertion`] | +| [`no-var-requires`] | ✅ | [`@typescript-eslint/no-var-requires`] | +| [`only-arrow-functions`] | 🔌 | [`prefer-arrow/prefer-arrow-functions`] | +| [`prefer-for-of`] | ✅ | [`@typescript-eslint/prefer-for-of`] | +| [`promise-function-async`] | ✅ | [`@typescript-eslint/promise-function-async`] | +| [`typedef-whitespace`] | ✅ | [`@typescript-eslint/type-annotation-spacing`] | +| [`typedef`] | ✅ | [`@typescript-eslint/typedef`] | +| [`unified-signatures`] | ✅ | [`@typescript-eslint/unified-signatures`] | + +[1] The ESLint rule only supports exact string matching, rather than regular expressions
+ +### Functionality + +| TSLint rule | | ESLint rule | +| ------------------------------------ | :-: | --------------------------------------------------------------------------------------------------------- | +| [`await-promise`] | ✅ | [`@typescript-eslint/await-thenable`] | +| [`ban-comma-operator`] | 🌟 | [`no-sequences`][no-sequences] | +| [`ban`] | 🌟 | [`no-restricted-globals`][no-restricted-globals] & [`no-restricted-properties`][no-restricted-properties] | +| [`curly`] | 🌟 | [`curly`][curly] | +| [`forin`] | 🌟 | [`guard-for-in`][guard-for-in] | +| [`function-constructor`] | 🌟 | [`no-new-func`][no-new-func] | +| [`import-blacklist`] | 🌟 | [`no-restricted-imports`][no-restricted-imports] | +| [`label-position`] | 🌟 | [`no-unused-labels`][no-unused-labels] (similar) | +| [`no-arg`] | 🌟 | [`no-caller`][no-caller] (also blocks `arguments.caller`) | +| [`no-async-without-await`] | ✅ | [`@typescript-eslint/require-await`] | +| [`no-bitwise`] | 🌟 | [`no-bitwise`][no-bitwise] | +| [`no-conditional-assignment`] | 🌟 | [`no-cond-assign`][no-cond-assign][1] | +| [`no-console`] | 🌟 | [`no-console`][no-console] (configuration works slightly differently) | +| [`no-construct`] | 🌟 | [`no-new-wrappers`][no-new-wrappers] | +| [`no-debugger`] | 🌟 | [`no-debugger`][no-debugger] | +| [`no-duplicate-super`] | 🌟 | [`constructor-super`][constructor-super] | +| [`no-duplicate-switch-case`] | 🌟 | [`no-duplicate-case`][no-duplicate-case] | +| [`no-duplicate-variable`] | 🌟 | [`no-redeclare`][no-redeclare] | +| [`no-dynamic-delete`] | ✅ | [`@typescript-eslint/no-dynamic-delete`] | +| [`no-empty`] | 🌟 | [`no-empty`][no-empty] | +| [`no-eval`] | 🌟 | [`no-eval`][no-eval] | +| [`no-floating-promises`] | ✅ | [`@typescript-eslint/no-floating-promises`] | +| [`no-for-in-array`] | ✅ | [`@typescript-eslint/no-for-in-array`] | +| [`no-implicit-dependencies`] | 🔌 | [`import/no-extraneous-dependencies`] | +| [`no-inferred-empty-object-type`] | 🛑 | N/A | +| [`no-invalid-template-strings`] | 🌟 | [`no-template-curly-in-string`][no-template-curly-in-string] | +| [`no-invalid-this`] | 🌟 | [`no-invalid-this`][no-invalid-this] | +| [`no-misused-new`] | ✅ | [`@typescript-eslint/no-misused-new`] | +| [`no-null-keyword`] | 🔌 | [`no-null/no-null`] (doesn’t handle `null` type) | +| [`no-null-undefined-union`] | 🛑 | N/A | +| [`no-object-literal-type-assertion`] | ✅ | [`@typescript-eslint/consistent-type-assertions`] | +| [`no-promise-as-boolean`] | ✅ | [`@typescript-eslint/no-misused-promises`] | +| [`no-restricted-globals`] | ✅ | [`no-restricted-globals`][no-restricted-globals] | +| [`no-return-await`] | 🌟 | [`no-return-await`][no-return-await] | +| [`no-shadowed-variable`] | 🌟 | [`no-shadow`][no-shadow] | +| [`no-sparse-arrays`] | 🌟 | [`no-sparse-arrays`][no-sparse-arrays] | +| [`no-string-literal`] | 🌟 | [`dot-notation`][dot-notation] | +| [`no-string-throw`] | ✅ | [`@typescript-eslint/no-throw-literal`] | +| [`no-submodule-imports`] | 🌓 | [`import/no-internal-modules`] (slightly different) | +| [`no-switch-case-fall-through`] | 🌟 | [`no-fallthrough`][no-fallthrough] | +| [`no-tautology-expression`] | 🛑 | N/A | +| [`no-this-assignment`] | ✅ | [`@typescript-eslint/no-this-alias`] | +| [`no-unbound-method`] | ✅ | [`@typescript-eslint/unbound-method`] | +| [`no-unnecessary-class`] | ✅ | [`@typescript-eslint/no-extraneous-class`] | +| [`no-unsafe-any`] | 🌓 | [`@typescript-eslint/no-unsafe-member-access`][2] | +| [`no-unsafe-finally`] | 🌟 | [`no-unsafe-finally`][no-unsafe-finally] | +| [`no-unused-expression`] | 🌟 | [`no-unused-expressions`][no-unused-expressions] | +| [`no-unused-variable`] | 🌓 | [`@typescript-eslint/no-unused-vars`] | +| [`no-use-before-declare`] | ✅ | [`@typescript-eslint/no-use-before-define`] | +| [`no-var-keyword`] | 🌟 | [`no-var`][no-var] | +| [`no-void-expression`] | ✅ | [`@typescript-eslint/no-confusing-void-expression`] | +| [`prefer-conditional-expression`] | 🛑 | N/A | +| [`prefer-object-spread`] | 🌟 | [`prefer-object-spread`][prefer-object-spread] | +| [`radix`] | 🌟 | [`radix`][radix] | +| [`restrict-plus-operands`] | ✅ | [`@typescript-eslint/restrict-plus-operands`] | +| [`static-this`] | 🛑 | N/A | +| [`strict-boolean-expressions`] | ✅ | [`@typescript-eslint/strict-boolean-expressions`] | +| [`strict-string-expressions`] | ✅ | [`@typescript-eslint/restrict-plus-operands`] & [`@typescript-eslint/restrict-template-expressions`] | +| [`strict-type-predicates`] | 🛑 | N/A | +| [`switch-default`] | 🌟 | [`default-case`][default-case] | +| [`triple-equals`] | 🌟 | [`eqeqeq`][eqeqeq] | +| [`typeof-compare`] | 🌟 | [`valid-typeof`][valid-typeof] | +| [`unnecessary-constructor`] | 🌟 | [`no-useless-constructor`][no-useless-constructor] | +| [`use-default-type-parameter`] | ✅ | [`@typescript-eslint/no-unnecessary-type-arguments`] | +| [`use-isnan`] | 🌟 | [`use-isnan`][use-isnan] | + +[1] The ESLint rule also supports silencing with an extra set of parentheses (`if ((foo = bar)) {}`)
+[2] Only checks member expressions + +### Maintainability + +| TSLint rule | | ESLint rule | +| ---------------------------- | :-: | -------------------------------------------------- | +| [`cyclomatic-complexity`] | 🌟 | [`complexity`][complexity] | +| [`deprecation`] | 🔌 | [`deprecation/deprecation`] | +| [`eofline`] | 🌟 | [`eol-last`][eol-last] | +| [`indent`] | ✅ | [`@typescript-eslint/indent`] or [Prettier] | +| [`linebreak-style`] | 🌟 | [`linebreak-style`][linebreak-style] or [Prettier] | +| [`max-classes-per-file`] | 🌟 | [`max-classes-per-file`][max-classes-per-file] | +| [`max-file-line-count`] | 🌟 | [`max-lines`][max-lines] | +| [`max-line-length`] | 🌟 | [`max-len`][max-len] or [Prettier] | +| [`no-default-export`] | 🔌 | [`import/no-default-export`] | +| [`no-default-import`] | 🛑 | N/A | +| [`no-duplicate-imports`] | 🔌 | [`import/no-duplicates`] | +| [`no-mergeable-namespace`] | 🛑 | N/A | +| [`no-require-imports`] | ✅ | [`@typescript-eslint/no-require-imports`] | +| [`object-literal-sort-keys`] | 🌓 | [`sort-keys`][sort-keys] [2] | +| [`prefer-const`] | 🌟 | [`prefer-const`][prefer-const] | +| [`prefer-readonly`] | ✅ | [`@typescript-eslint/prefer-readonly`] | +| [`trailing-comma`] | 🌓 | [`comma-dangle`][comma-dangle] or [Prettier] | + +[2] Missing support for blank-line-delimited sections + +### Style + +| TSLint rule | | ESLint rule | +| ----------------------------------- | :-: | ----------------------------------------------------------------------------------- | +| [`align`] | 🛑 | N/A | +| [`array-type`] | ✅ | [`@typescript-eslint/array-type`] | +| [`arrow-parens`] | 🌟 | [`arrow-parens`][arrow-parens] | +| [`arrow-return-shorthand`] | 🌟 | [`arrow-body-style`][arrow-body-style] | +| [`binary-expression-operand-order`] | 🌟 | [`yoda`][yoda] | +| [`callable-types`] | ✅ | [`@typescript-eslint/prefer-function-type`] | +| [`class-name`] | ✅ | [`@typescript-eslint/naming-convention`] | +| [`comment-format`] | 🌟 | [`capitalized-comments`][capitalized-comments] & [`spaced-comment`][spaced-comment] | +| [`comment-type`] | 🛑 | N/A | +| [`completed-docs`] | 🔌 | [`jsdoc/require-jsdoc`] | +| [`encoding`] | 🛑 | N/A | +| [`file-header`] | 🔌 | [`eslint-plugin-header`][plugin:header] or [`-file-header`][plugin:file-header] | +| [`file-name-casing`] | 🔌 | [`unicorn/filename-case`] | +| [`import-spacing`] | 🔌 | Use [Prettier] | +| [`increment-decrement`] | 🌟 | [`no-plusplus`][no-plusplus] | +| [`interface-name`] | ✅ | [`@typescript-eslint/interface-name-prefix`] | +| [`interface-over-type-literal`] | ✅ | [`@typescript-eslint/consistent-type-definitions`] | +| [`jsdoc-format`] | 🌓 | [`valid-jsdoc`][valid-jsdoc] or [`eslint-plugin-jsdoc`][plugin:jsdoc] | +| [`match-default-export-name`] | 🛑 | N/A | +| [`newline-before-return`] | 🌟 | [`padding-line-between-statements`][padding-line-between-statements] [1] | +| [`newline-per-chained-call`] | 🌟 | [`newline-per-chained-call`][newline-per-chained-call] | +| [`new-parens`] | 🌟 | [`new-parens`][new-parens] | +| [`no-angle-bracket-type-assertion`] | ✅ | [`@typescript-eslint/consistent-type-assertions`] | +| [`no-boolean-literal-compare`] | ✅ | [`@typescript-eslint/no-unnecessary-boolean-literal-compare`] | +| [`no-consecutive-blank-lines`] | 🌟 | [`no-multiple-empty-lines`][no-multiple-empty-lines] | +| [`no-irregular-whitespace`] | 🌟 | [`no-irregular-whitespace`][no-irregular-whitespace] with `skipStrings: false` | +| [`no-parameter-properties`] | ✅ | [`@typescript-eslint/parameter-properties`] | +| [`no-redundant-jsdoc`] | 🔌 | [`jsdoc/no-types`] | +| [`no-reference-import`] | ✅ | [`@typescript-eslint/triple-slash-reference`] | +| [`no-trailing-whitespace`] | 🌟 | [`no-trailing-spaces`][no-trailing-spaces] | +| [`no-unnecessary-callback-wrapper`] | 🛑 | N/A and this might be unsafe (i.e. with `forEach`) | +| [`no-unnecessary-else`] | 🌟 | [`no-else-return`][no-else-return] [2] | +| [`no-unnecessary-initializer`] | 🌟 | [`no-undef-init`][no-undef-init] | +| [`no-unnecessary-qualifier`] | ✅ | [`@typescript-eslint/no-unnecessary-qualifier`] | +| [`number-literal-format`] | 🛑 | N/A | +| [`object-literal-key-quotes`] | 🌟 | [`quote-props`][quote-props] | +| [`object-literal-shorthand`] | 🌟 | [`object-shorthand`][object-shorthand] | +| [`one-line`] | 🌟 | [`brace-style`][brace-style] or [Prettier] | +| [`one-variable-per-declaration`] | 🌟 | [`one-var`][one-var] | +| [`ordered-imports`] | 🌓 | [`import/order`] | +| [`prefer-function-over-method`] | 🌟 | [`class-methods-use-this`][class-methods-use-this] | +| [`prefer-method-signature`] | ✅ | [`@typescript-eslint/method-signature-style`] | +| [`prefer-switch`] | 🛑 | N/A | +| [`prefer-template`] | 🌟 | [`prefer-template`][prefer-template] | +| [`prefer-while`] | 🛑 | N/A | +| [`quotemark`] | 🌟 | [`quotes`][quotes] | +| [`return-undefined`] | 🛑 | N/A | +| [`semicolon`] | 🌓 | [`@typescript-eslint/semi`] | +| [`space-before-function-paren`] | 🌟 | [`space-before-function-paren`][space-after-function-paren] | +| [`space-within-parens`] | 🌟 | [`space-in-parens`][space-in-parens] | +| [`switch-final-break`] | 🛑 | N/A | +| [`type-literal-delimiter`] | ✅ | [`@typescript-eslint/member-delimiter-style`] | +| [`unnecessary-bind`] | 🌟 | [`no-extra-bind`][no-extra-bind] | +| [`variable-name`] | ✅ | [`@typescript-eslint/naming-convention`] | +| [`whitespace`] | 🔌 | Use [Prettier] | + +[1] Recommended config: `["error", { blankLine: "always", prev: "*", next: "return" }]`
+[2] Doesn't check other control flow statements, such as `break` or `continue`. + +## `tslint-microsoft-contrib` rules + +Rule listing is [here](https://github.com/Microsoft/tslint-microsoft-contrib#supported-rules). +Deprecated rules are excluded (`missing-jsdoc`, `missing-optional-annotation`, `no-duplicate-case`, `no-duplicate-parameter-names`, `no-function-constructor-with-string-args`, `no-increment-decrement`, `no-empty-interfaces`, `no-missing-visibility-modifiers`, `no-multiple-var-decl`, `no-reserved-keywords`, `no-stateless-class`, `no-var-self`, `no-unnecessary-bind`, and `valid-typeof`). See the docs in the link above to find out what to use instead. + +### Testing + +Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-plugin-chai-expect-keywords), [`chai-expect`](https://github.com/Turbo87/eslint-plugin-chai-expect), [`chai-friendly`](https://github.com/ihordiachenko/eslint-plugin-chai-friendly), [`mocha`](https://github.com/lo1tuma/eslint-plugin-mocha), and [`jest`](https://github.com/jest-community/eslint-plugin-jest) + +| `tslint-microsoft-contrib` rule | | ESLint rule | +| ---------------------------------- | :-: | ------------------------- | +| `chai-prefer-contains-to-index-of` | 🛑 | N/A | +| `chai-vague-errors` | 🛑 | N/A | +| `mocha-avoid-only` | 🔌 | [`jest/no-focused-tests`] | +| `mocha-unneeded-done` | 🛑 | N/A | + +### TypeScript + +| `tslint-microsoft-contrib` rule | | ESLint rule | +| ------------------------------- | :-: | ---------------------------------------------------------- | +| `prefer-array-literal` | 🌓 | [`@typescript-eslint/no-array-constructor`] [1] | +| `prefer-type-cast` | 🛑 | N/A | + +[1] ESLint rule is slightly less strict, allowing `new Array()` and `Array(2)`. + +### Miscellaneous + +| `tslint-microsoft-contrib` rule | | ESLint rule | +| ------------------------------------- | :-: | ---------------------------------------------------------------------- | +| `export-name` | 🛑 | N/A ([relevant plugin][plugin:import]) | +| `function-name` | 🛑 | N/A | +| `import-name` | 🛑 | N/A ([relevant plugin][plugin:import]) | +| `informative-docs` | 🛑 | N/A | +| `max-func-body-length` | 🌟 | [`max-statements`][max-statements] | +| `no-banned-terms` | 🌟 | [`no-caller`][no-caller] & [`no-eval`][no-eval] | +| `no-constant-condition` | 🌟 | [`no-constant-condition`][no-constant-condition] | +| `no-control-regex` | 🌟 | [`no-control-regex`][no-control-regex] | +| `no-delete-expression` | ✅ | [`@typescript-eslint/no-dynamic-delete`] | +| `no-empty-line-after-opening-brace` | 🌟 | [`padded-blocks`][padded-blocks] [1] or [Prettier] | +| `no-for-in` | 🌟 | [`no-restricted-syntax`][no-restricted-syntax] [2] | +| `no-function-expression` | 🌟 | [`func-style`][func-style] [3] | +| `no-invalid-regexp` | 🌟 | [`no-invalid-regexp`][no-invalid-regexp] | +| `no-multiline-string` | 🌟 | [`no-multi-str`][no-multi-str] | +| `no-octal-literal` | 🌟 | [`no-octal-escape`][no-octal-escape], see also [`no-octal`][no-octal] | +| `no-regex-spaces` | 🌟 | [`no-regex-spaces`][no-regex-spaces] | +| `no-relative-imports` | 🛑 | N/A, _Not recommended by the maintainers_ | +| `no-single-line-block-comment` | 🛑 | N/A | +| `no-suspicious-comment` | 🌟 | [`no-warning-comments`][no-warning-comments] [4] | +| `no-typeof-undefined` | 🛑 | N/A (this actually has a valid use: checking if a variable is defined) | +| `no-unexternalized-strings` | 🛑 | N/A | +| `no-unnecessary-field-initialization` | 🌓 | [`no-undef-init`][no-undef-init] [5] | +| `no-unnecessary-local-variable` | 🛑 | N/A | +| `no-unnecessary-override` | 🛑 | N/A | +| `no-unnecessary-semicolons` | 🌟 | [`no-extra-semi`][no-extra-semi] or [Prettier] | +| `no-useless-files` | 🛑 | N/A | +| `no-with-statement` | 🌟 | [`no-with`][no-with] | +| `promise-must-complete` | 🛑 | N/A | +| `underscore-consistent-invocation` | 🔌 | [`lodash/chaining`] | +| `use-named-parameter` | 🛑 | N/A | +| `use-simple-attributes` | 🛑 | N/A | + +[1] Enforces blank lines both at the beginning and end of a block
+[2] Recommended config: `["error", "ForInStatement"]`
+[3] Recommended config: `["error", "declaration", { "allowArrowFunctions": true }]`
+[4] Recommended config: `["error", { "terms": ["BUG", "HACK", "FIXME", "LATER", "LATER2", "TODO"], "location": "anywhere" }]`
+[5] Does not check class fields. + +### Security + +| `tslint-microsoft-contrib` rule | | ESLint rule | +| ------------------------------- | :-: | ------------------------------------------------------------------------------------------- | +| `insecure-random` | 🔌 | [`desktop/insecure-random`] or [`@microsoft/sdl/no-insecure-random`] | +| `no-disable-auto-sanitization` | 🔌 | [`@microsoft/sdl/no-msapp-exec-unsafe`] and [`@microsoft/sdl/no-winjs-html-unsafe`] | +| `no-document-domain` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-document-domain`] | +| `no-http-string` | 🔌 | [`@microsoft/sdl/no-insecure-url`] | +| `no-inner-html` | 🔌 | [`@microsoft/sdl/no-inner-html`] and [`@microsoft/sdl/no-html-method`] | +| `no-string-based-set-immediate` | 🌓 | [`@typescript-eslint/no-implied-eval`] | +| `no-string-based-set-interval` | 🌓 | [`@typescript-eslint/no-implied-eval`] | +| `no-string-based-set-timeout` | 🌓 | [`@typescript-eslint/no-implied-eval`] | +| `react-anchor-blank-noopener` | 🔌 | [`react/jsx-no-target-blank`] | +| `react-iframe-missing-sandbox` | 🔌 | [`@microsoft/sdl/react-iframe-missing-sandbox`] | +| `react-no-dangerous-html` | 🔌 | [`react/no-danger`] | +| `non-literal-fs-path` | 🔌 | [`security/detect-non-literal-fs-filename`] | +| `non-literal-require` | 🔌 | [`security/detect-non-literal-require`] | +| `possible-timing-attack` | 🔌 | [`security/detect-possible-timing-attacks`] | + +### Browser + +| `tslint-microsoft-contrib` rule | | ESLint rule | +| ----------------------------------- | :-: | -------------------------------------------------------------------------------------------- | +| `jquery-deferred-must-complete` | 🛑 | N/A | +| `no-backbone-get-set-outside-model` | 🛑 | N/A | +| `no-cookies` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-cookies`] | +| `no-document-write` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-document-write`] | +| `no-exec-script` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@typescript-eslint/no-implied-eval`] | +| `no-jquery-raw-elements` | 🛑 | N/A | +| `no-unsupported-browser-code` | 🛑 | N/A | +| `react-this-binding-issue` | 🛑 | N/A | +| `react-tsx-curly-spacing` | 🔌 | [`react/jsx-curly-spacing`] | +| `react-unused-props-and-state` | 🌓 | [`react/no-unused-state`] | + +### React A11y + +| `tslint-microsoft-contrib` rule | | ESLint rule | +| ----------------------------------------- | :-: | ---------------------------------------------------------- | +| `react-a11y-accessible-headings` | 🌓 | [`jsx-a11y/heading-has-content`] [1] | +| `react-a11y-anchors` | 🔌 | [`jsx-a11y/anchor-is-valid`] | +| `react-a11y-aria-unsupported-elements` | 🔌 | [`jsx-a11y/aria-unsupported-elements`] | +| `react-a11y-event-has-role` | 🌓 | [`jsx-a11y/no-static-element-interactions`] [2] | +| `react-a11y-image-button-has-alt` | 🔌 | [`jsx-a11y/alt-text`] | +| `react-a11y-img-has-alt` | 🔌 | [`jsx-a11y/alt-text`] | +| `react-a11y-input-elements` | 🛑 | N/A | +| `react-a11y-lang` | 🔌 | [`jsx-a11y/lang`] | +| `react-a11y-meta` | 🛑 | N/A | +| `react-a11y-no-onchange` | 🔌 | [`jsx-a11y/no-onchange`] | +| `react-a11y-props` | 🔌 | [`jsx-a11y/aria-props`] | +| `react-a11y-proptypes` | 🔌 | [`jsx-a11y/aria-proptypes`] | +| `react-a11y-required` | 🛑 | N/A | +| `react-a11y-role-has-required-aria-props` | 🔌 | [`jsx-a11y/role-has-required-aria-props`] | +| `react-a11y-role-supports-aria-props` | 🔌 | [`jsx-a11y/role-supports-aria-props`] | +| `react-a11y-role` | 🔌 | [`jsx-a11y/aria-role`] | +| `react-a11y-tabindex-no-positive` | 🔌 | [`jsx-a11y/tabindex-no-positive`] | +| `react-a11y-titles` | 🛑 | N/A | + +[1] TSLint rule is more strict
+[2] ESLint rule only reports for click handlers + +[prettier]: https://prettier.io + + + +[`adjacent-overload-signatures`]: https://palantir.github.io/tslint/rules/adjacent-overload-signatures +[`ban-ts-ignore`]: https://palantir.github.io/tslint/rules/ban-ts-ignore/ +[`ban-types`]: https://palantir.github.io/tslint/rules/ban-types +[`invalid-void`]: https://palantir.github.io/tslint/rules/invalid-void +[`member-access`]: https://palantir.github.io/tslint/rules/member-access +[`member-ordering`]: https://palantir.github.io/tslint/rules/member-ordering +[`no-any`]: https://palantir.github.io/tslint/rules/no-any +[`no-empty-interface`]: https://palantir.github.io/tslint/rules/no-empty-interface +[`no-import-side-effect`]: https://palantir.github.io/tslint/rules/no-import-side-effect +[`no-inferrable-types`]: https://palantir.github.io/tslint/rules/no-inferrable-types +[`no-internal-module`]: https://palantir.github.io/tslint/rules/no-internal-module +[`no-magic-numbers`]: https://palantir.github.io/tslint/rules/no-magic-numbers +[`no-namespace`]: https://palantir.github.io/tslint/rules/no-namespace +[`no-non-null-assertion`]: https://palantir.github.io/tslint/rules/no-non-null-assertion +[`no-parameter-reassignment`]: https://palantir.github.io/tslint/rules/no-parameter-reassignment +[`no-reference`]: https://palantir.github.io/tslint/rules/no-reference +[`no-unnecessary-type-assertion`]: https://palantir.github.io/tslint/rules/no-unnecessary-type-assertion +[`no-var-requires`]: https://palantir.github.io/tslint/rules/no-var-requires +[`only-arrow-functions`]: https://palantir.github.io/tslint/rules/only-arrow-functions +[`prefer-for-of`]: https://palantir.github.io/tslint/rules/prefer-for-of +[`promise-function-async`]: https://palantir.github.io/tslint/rules/promise-function-async +[`typedef`]: https://palantir.github.io/tslint/rules/typedef +[`typedef-whitespace`]: https://palantir.github.io/tslint/rules/typedef-whitespace +[`unified-signatures`]: https://palantir.github.io/tslint/rules/unified-signatures +[`await-promise`]: https://palantir.github.io/tslint/rules/await-promise +[`ban-comma-operator`]: https://palantir.github.io/tslint/rules/ban-comma-operator +[`ban`]: https://palantir.github.io/tslint/rules/ban +[`curly`]: https://palantir.github.io/tslint/rules/curly +[`forin`]: https://palantir.github.io/tslint/rules/forin +[`function-constructor`]: https://palantir.github.io/tslint/rules/function-constructor +[`import-blacklist`]: https://palantir.github.io/tslint/rules/import-blacklist +[`label-position`]: https://palantir.github.io/tslint/rules/label-position +[`no-arg`]: https://palantir.github.io/tslint/rules/no-arg +[`no-async-without-await`]: https://palantir.github.io/tslint/rules/no-async-without-await +[`no-bitwise`]: https://palantir.github.io/tslint/rules/no-bitwise +[`no-conditional-assignment`]: https://palantir.github.io/tslint/rules/no-conditional-assignment +[`no-console`]: https://palantir.github.io/tslint/rules/no-console +[`no-construct`]: https://palantir.github.io/tslint/rules/no-construct +[`no-debugger`]: https://palantir.github.io/tslint/rules/no-debugger +[`no-duplicate-super`]: https://palantir.github.io/tslint/rules/no-duplicate-super +[`no-duplicate-switch-case`]: https://palantir.github.io/tslint/rules/no-duplicate-switch-case +[`no-duplicate-variable`]: https://palantir.github.io/tslint/rules/no-duplicate-variable +[`no-dynamic-delete`]: https://palantir.github.io/tslint/rules/no-dynamic-delete +[`no-empty`]: https://palantir.github.io/tslint/rules/no-empty +[`no-eval`]: https://palantir.github.io/tslint/rules/no-eval +[`no-floating-promises`]: https://palantir.github.io/tslint/rules/no-floating-promises +[`no-for-in-array`]: https://palantir.github.io/tslint/rules/no-for-in-array +[`no-implicit-dependencies`]: https://palantir.github.io/tslint/rules/no-implicit-dependencies +[`no-inferred-empty-object-type`]: https://palantir.github.io/tslint/rules/no-inferred-empty-object-type +[`no-invalid-template-strings`]: https://palantir.github.io/tslint/rules/no-invalid-template-strings +[`no-invalid-this`]: https://palantir.github.io/tslint/rules/no-invalid-this +[`no-misused-new`]: https://palantir.github.io/tslint/rules/no-misused-new +[`no-null-keyword`]: https://palantir.github.io/tslint/rules/no-null-keyword +[`no-null-undefined-union`]: https://palantir.github.io/tslint/rules/no-null-undefined-union +[`no-object-literal-type-assertion`]: https://palantir.github.io/tslint/rules/no-object-literal-type-assertion +[`no-promise-as-boolean`]: https://palantir.github.io/tslint/rules/no-promise-as-boolean +[`no-restricted-globals`]: https://palantir.github.io/tslint/rules/no-restricted-globals +[`no-return-await`]: https://palantir.github.io/tslint/rules/no-return-await +[`no-shadowed-variable`]: https://palantir.github.io/tslint/rules/no-shadowed-variable +[`no-sparse-arrays`]: https://palantir.github.io/tslint/rules/no-sparse-arrays +[`no-string-literal`]: https://palantir.github.io/tslint/rules/no-string-literal +[`no-string-throw`]: https://palantir.github.io/tslint/rules/no-string-throw +[`no-submodule-imports`]: https://palantir.github.io/tslint/rules/no-submodule-imports +[`no-switch-case-fall-through`]: https://palantir.github.io/tslint/rules/no-switch-case-fall-through +[`no-tautology-expression`]: https://palantir.github.io/tslint/rules/no-tautology-expression +[`no-this-assignment`]: https://palantir.github.io/tslint/rules/no-this-assignment +[`no-unbound-method`]: https://palantir.github.io/tslint/rules/no-unbound-method +[`no-unnecessary-class`]: https://palantir.github.io/tslint/rules/no-unnecessary-class +[`no-unsafe-any`]: https://palantir.github.io/tslint/rules/no-unsafe-any +[`no-unsafe-finally`]: https://palantir.github.io/tslint/rules/no-unsafe-finally +[`no-unused-expression`]: https://palantir.github.io/tslint/rules/no-unused-expression +[`no-unused-variable`]: https://palantir.github.io/tslint/rules/no-unused-variable +[`no-use-before-declare`]: https://palantir.github.io/tslint/rules/no-use-before-declare +[`no-var-keyword`]: https://palantir.github.io/tslint/rules/no-var-keyword +[`no-void-expression`]: https://palantir.github.io/tslint/rules/no-void-expression +[`prefer-conditional-expression`]: https://palantir.github.io/tslint/rules/prefer-conditional-expression +[`prefer-object-spread`]: https://palantir.github.io/tslint/rules/prefer-object-spread +[`radix`]: https://palantir.github.io/tslint/rules/radix +[`restrict-plus-operands`]: https://palantir.github.io/tslint/rules/restrict-plus-operands +[`static-this`]: https://palantir.github.io/tslint/rules/static-this +[`strict-boolean-expressions`]: https://palantir.github.io/tslint/rules/strict-boolean-expressions +[`strict-string-expressions`]: https://palantir.github.io/tslint/rules/strict-string-expressions +[`strict-type-predicates`]: https://palantir.github.io/tslint/rules/strict-type-predicates +[`switch-default`]: https://palantir.github.io/tslint/rules/switch-default +[`triple-equals`]: https://palantir.github.io/tslint/rules/triple-equals +[`typeof-compare`]: https://palantir.github.io/tslint/rules/typeof-compare +[`unnecessary-constructor`]: https://palantir.github.io/tslint/rules/unnecessary-constructor +[`use-default-type-parameter`]: https://palantir.github.io/tslint/rules/use-default-type-parameter +[`use-isnan`]: https://palantir.github.io/tslint/rules/use-isnan +[`cyclomatic-complexity`]: https://palantir.github.io/tslint/rules/cyclomatic-complexity +[`deprecation`]: https://palantir.github.io/tslint/rules/deprecation +[`eofline`]: https://palantir.github.io/tslint/rules/eofline +[`indent`]: https://palantir.github.io/tslint/rules/indent +[`linebreak-style`]: https://palantir.github.io/tslint/rules/linebreak-style +[`max-classes-per-file`]: https://palantir.github.io/tslint/rules/max-classes-per-file +[`max-file-line-count`]: https://palantir.github.io/tslint/rules/max-file-line-count +[`max-line-length`]: https://palantir.github.io/tslint/rules/max-line-length +[`no-default-export`]: https://palantir.github.io/tslint/rules/no-default-export +[`no-default-import`]: https://palantir.github.io/tslint/rules/no-default-import +[`no-duplicate-imports`]: https://palantir.github.io/tslint/rules/no-duplicate-imports +[`no-mergeable-namespace`]: https://palantir.github.io/tslint/rules/no-mergeable-namespace +[`no-require-imports`]: https://palantir.github.io/tslint/rules/no-require-imports +[`object-literal-sort-keys`]: https://palantir.github.io/tslint/rules/object-literal-sort-keys +[`prefer-const`]: https://palantir.github.io/tslint/rules/prefer-const +[`prefer-readonly`]: https://palantir.github.io/tslint/rules/prefer-readonly +[`trailing-comma`]: https://palantir.github.io/tslint/rules/trailing-comma +[`align`]: https://palantir.github.io/tslint/rules/align +[`array-type`]: https://palantir.github.io/tslint/rules/array-type +[`arrow-parens`]: https://palantir.github.io/tslint/rules/arrow-parens +[`arrow-return-shorthand`]: https://palantir.github.io/tslint/rules/arrow-return-shorthand +[`binary-expression-operand-order`]: https://palantir.github.io/tslint/rules/binary-expression-operand-order +[`callable-types`]: https://palantir.github.io/tslint/rules/callable-types +[`class-name`]: https://palantir.github.io/tslint/rules/class-name +[`comment-format`]: https://palantir.github.io/tslint/rules/comment-format +[`comment-type`]: https://palantir.github.io/tslint/rules/comment-type +[`completed-docs`]: https://palantir.github.io/tslint/rules/completed-docs +[`encoding`]: https://palantir.github.io/tslint/rules/encoding +[`file-header`]: https://palantir.github.io/tslint/rules/file-header +[`file-name-casing`]: https://palantir.github.io/tslint/rules/file-name-casing +[`import-spacing`]: https://palantir.github.io/tslint/rules/import-spacing +[`increment-decrement`]: https://palantir.github.io/tslint/rules/increment-decrement +[`interface-name`]: https://palantir.github.io/tslint/rules/interface-name +[`interface-over-type-literal`]: https://palantir.github.io/tslint/rules/interface-over-type-literal +[`jsdoc-format`]: https://palantir.github.io/tslint/rules/jsdoc-format +[`match-default-export-name`]: https://palantir.github.io/tslint/rules/match-default-export-name +[`newline-before-return`]: https://palantir.github.io/tslint/rules/newline-before-return +[`newline-per-chained-call`]: https://palantir.github.io/tslint/rules/newline-per-chained-call +[`new-parens`]: https://palantir.github.io/tslint/rules/new-parens +[`no-angle-bracket-type-assertion`]: https://palantir.github.io/tslint/rules/no-angle-bracket-type-assertion +[`no-boolean-literal-compare`]: https://palantir.github.io/tslint/rules/no-boolean-literal-compare +[`no-consecutive-blank-lines`]: https://palantir.github.io/tslint/rules/no-consecutive-blank-lines +[`no-irregular-whitespace`]: https://palantir.github.io/tslint/rules/no-irregular-whitespace +[`no-parameter-properties`]: https://palantir.github.io/tslint/rules/no-parameter-properties +[`no-redundant-jsdoc`]: https://palantir.github.io/tslint/rules/no-redundant-jsdoc +[`no-reference-import`]: https://palantir.github.io/tslint/rules/no-reference-import +[`no-trailing-whitespace`]: https://palantir.github.io/tslint/rules/no-trailing-whitespace +[`no-unnecessary-callback-wrapper`]: https://palantir.github.io/tslint/rules/no-unnecessary-callback-wrapper +[`no-unnecessary-else`]: https://palantir.github.io/tslint/rules/no-unnecessary-else +[`no-unnecessary-initializer`]: https://palantir.github.io/tslint/rules/no-unnecessary-initializer +[`no-unnecessary-qualifier`]: https://palantir.github.io/tslint/rules/no-unnecessary-qualifier +[`number-literal-format`]: https://palantir.github.io/tslint/rules/number-literal-format +[`object-literal-key-quotes`]: https://palantir.github.io/tslint/rules/object-literal-key-quotes +[`object-literal-shorthand`]: https://palantir.github.io/tslint/rules/object-literal-shorthand +[`one-line`]: https://palantir.github.io/tslint/rules/one-line +[`one-variable-per-declaration`]: https://palantir.github.io/tslint/rules/one-variable-per-declaration +[`ordered-imports`]: https://palantir.github.io/tslint/rules/ordered-imports +[`prefer-function-over-method`]: https://palantir.github.io/tslint/rules/prefer-function-over-method +[`prefer-method-signature`]: https://palantir.github.io/tslint/rules/prefer-method-signature +[`prefer-switch`]: https://palantir.github.io/tslint/rules/prefer-switch +[`prefer-template`]: https://palantir.github.io/tslint/rules/prefer-template +[`prefer-while`]: https://palantir.github.io/tslint/rules/prefer-while +[`quotemark`]: https://palantir.github.io/tslint/rules/quotemark +[`return-undefined`]: https://palantir.github.io/tslint/rules/return-undefined +[`semicolon`]: https://palantir.github.io/tslint/rules/semicolon +[`space-before-function-paren`]: https://palantir.github.io/tslint/rules/space-before-function-paren +[`space-within-parens`]: https://palantir.github.io/tslint/rules/space-within-parens +[`switch-final-break`]: https://palantir.github.io/tslint/rules/switch-final-break +[`type-literal-delimiter`]: https://palantir.github.io/tslint/rules/type-literal-delimiter +[`unnecessary-bind`]: https://palantir.github.io/tslint/rules/unnecessary-bind +[`variable-name`]: https://palantir.github.io/tslint/rules/variable-name +[`whitespace`]: https://palantir.github.io/tslint/rules/whitespace + + + +[no-magic-numbers]: https://eslint.org/docs/rules/no-magic-numbers +[no-param-reassign]: https://eslint.org/docs/rules/no-param-reassign +[no-sequences]: https://eslint.org/docs/rules/no-sequences +[no-restricted-globals]: https://eslint.org/docs/rules/no-restricted-globals +[no-restricted-properties]: https://eslint.org/docs/rules/no-restricted-properties +[no-restricted-syntax]: https://eslint.org/docs/rules/no-restricted-syntax +[curly]: https://eslint.org/docs/rules/curly +[guard-for-in]: https://eslint.org/docs/rules/guard-for-in +[no-new-func]: https://eslint.org/docs/rules/no-new-func +[no-restricted-imports]: https://eslint.org/docs/rules/no-restricted-imports +[no-unused-labels]: https://eslint.org/docs/rules/no-unused-labels +[no-caller]: https://eslint.org/docs/rules/no-caller +[no-bitwise]: https://eslint.org/docs/rules/no-bitwise +[no-cond-assign]: https://eslint.org/docs/rules/no-cond-assign +[no-console]: https://eslint.org/docs/rules/no-console +[no-new-wrappers]: https://eslint.org/docs/rules/no-new-wrappers +[no-debugger]: https://eslint.org/docs/rules/no-debugger +[constructor-super]: https://eslint.org/docs/rules/constructor-super +[no-duplicate-case]: https://eslint.org/docs/rules/no-duplicate-case +[no-redeclare]: https://eslint.org/docs/rules/no-redeclare +[no-empty]: https://eslint.org/docs/rules/no-empty +[no-eval]: https://eslint.org/docs/rules/no-eval +[no-template-curly-in-string]: https://eslint.org/docs/rules/no-template-curly-in-string +[no-invalid-this]: https://eslint.org/docs/rules/no-invalid-this +[no-return-await]: https://eslint.org/docs/rules/no-return-await +[no-shadow]: https://eslint.org/docs/rules/no-shadow +[no-sparse-arrays]: https://eslint.org/docs/rules/no-sparse-arrays +[dot-notation]: https://eslint.org/docs/rules/dot-notation +[no-fallthrough]: https://eslint.org/docs/rules/no-fallthrough +[no-unsafe-finally]: https://eslint.org/docs/rules/no-unsafe-finally +[no-unused-expressions]: https://eslint.org/docs/rules/no-unused-expressions +[no-var]: https://eslint.org/docs/rules/no-var +[prefer-object-spread]: https://eslint.org/docs/rules/prefer-object-spread +[radix]: https://eslint.org/docs/rules/radix +[default-case]: https://eslint.org/docs/rules/default-case +[eqeqeq]: https://eslint.org/docs/rules/eqeqeq +[valid-typeof]: https://eslint.org/docs/rules/valid-typeof +[no-useless-constructor]: https://eslint.org/docs/rules/no-useless-constructor +[use-isnan]: https://eslint.org/docs/rules/use-isnan +[complexity]: https://eslint.org/docs/rules/complexity +[eol-last]: https://eslint.org/docs/rules/eol-last +[linebreak-style]: https://eslint.org/docs/rules/linebreak-style +[max-classes-per-file]: https://eslint.org/docs/rules/max-classes-per-file +[max-lines]: https://eslint.org/docs/rules/max-lines +[max-len]: https://eslint.org/docs/rules/max-len +[sort-keys]: https://eslint.org/docs/rules/sort-keys +[prefer-const]: https://eslint.org/docs/rules/prefer-const +[comma-dangle]: https://eslint.org/docs/rules/comma-dangle +[arrow-parens]: https://eslint.org/docs/rules/arrow-parens +[arrow-body-style]: https://eslint.org/docs/rules/arrow-body-style +[yoda]: https://eslint.org/docs/rules/yoda +[capitalized-comments]: https://eslint.org/docs/rules/capitalized-comments +[spaced-comment]: https://eslint.org/docs/rules/spaced-comment +[no-plusplus]: https://eslint.org/docs/rules/no-plusplus +[valid-jsdoc]: https://eslint.org/docs/rules/valid-jsdoc +[padding-line-between-statements]: https://eslint.org/docs/rules/padding-line-between-statements +[newline-per-chained-call]: https://eslint.org/docs/rules/newline-per-chained-call +[new-parens]: https://eslint.org/docs/rules/new-parens +[no-else-return]: https://eslint.org/docs/rules/no-else-return +[no-multiple-empty-lines]: https://eslint.org/docs/rules/no-multiple-empty-lines +[no-irregular-whitespace]: https://eslint.org/docs/rules/no-irregular-whitespace +[no-trailing-spaces]: https://eslint.org/docs/rules/no-trailing-spaces +[no-undef-init]: https://eslint.org/docs/rules/no-undef-init +[quote-props]: https://eslint.org/docs/rules/quote-props +[object-shorthand]: https://eslint.org/docs/rules/object-shorthand +[brace-style]: https://eslint.org/docs/rules/brace-style +[one-var]: https://eslint.org/docs/rules/one-var +[class-methods-use-this]: https://eslint.org/docs/rules/class-methods-use-this +[prefer-template]: https://eslint.org/docs/rules/prefer-template +[quotes]: https://eslint.org/docs/rules/quotes +[semi]: https://eslint.org/docs/rules/semi +[space-after-function-paren]: https://eslint.org/docs/rules/space-before-function-paren +[space-in-parens]: https://eslint.org/docs/rules/space-in-parens +[no-extra-bind]: https://eslint.org/docs/rules/no-extra-bind +[camelcase]: https://eslint.org/docs/rules/camelcase +[no-underscore-dangle]: https://eslint.org/docs/rules/no-underscore-dangle +[id-blacklist]: https://eslint.org/docs/rules/id-blacklist +[id-match]: https://eslint.org/docs/rules/id-match +[max-statements]: https://eslint.org/docs/rules/max-statements +[no-constant-condition]: https://eslint.org/docs/rules/no-constant-condition +[no-control-regex]: https://eslint.org/docs/rules/no-control-regex +[no-invalid-regexp]: https://eslint.org/docs/rules/no-invalid-regexp +[no-regex-spaces]: https://eslint.org/docs/rules/no-regex-spaces +[no-new-func]: https://eslint.org/docs/rules/no-new-func +[padded-blocks]: https://eslint.org/docs/rules/padded-blocks +[func-style]: https://eslint.org/docs/rules/func-style +[no-multi-str]: https://eslint.org/docs/rules/no-multi-str +[no-octal]: https://eslint.org/docs/rules/no-octal +[no-octal-escape]: https://eslint.org/docs/rules/no-octal-escape +[no-extra-semi]: https://eslint.org/docs/rules/no-extra-semi +[no-with]: https://eslint.org/docs/rules/no-with +[no-warning-comments]: https://eslint.org/docs/rules/no-warning-comments + + + +[`@typescript-eslint/adjacent-overload-signatures`]: https://typescript-eslint.io/rules/adjacent-overload-signatures +[`@typescript-eslint/await-thenable`]: https://typescript-eslint.io/rules/await-thenable +[`@typescript-eslint/ban-types`]: https://typescript-eslint.io/rules/ban-types +[`@typescript-eslint/ban-ts-comment`]: https://typescript-eslint.io/rules/ban-ts-comment +[`@typescript-eslint/consistent-type-assertions`]: https://typescript-eslint.io/rules/consistent-type-assertions +[`@typescript-eslint/consistent-type-definitions`]: https://typescript-eslint.io/rules/consistent-type-definitions +[`@typescript-eslint/explicit-member-accessibility`]: https://typescript-eslint.io/rules/explicit-member-accessibility +[`@typescript-eslint/member-ordering`]: https://typescript-eslint.io/rules/member-ordering +[`@typescript-eslint/method-signature-style`]: https://typescript-eslint.io/rules/method-signature-style +[`@typescript-eslint/no-explicit-any`]: https://typescript-eslint.io/rules/no-explicit-any +[`@typescript-eslint/no-empty-interface`]: https://typescript-eslint.io/rules/no-empty-interface +[`@typescript-eslint/no-implied-eval`]: https://typescript-eslint.io/rules/no-implied-eval +[`@typescript-eslint/no-inferrable-types`]: https://typescript-eslint.io/rules/no-inferrable-types +[`@typescript-eslint/prefer-namespace-keyword`]: https://typescript-eslint.io/rules/prefer-namespace-keyword +[`@typescript-eslint/promise-function-async`]: https://typescript-eslint.io/rules/promise-function-async +[`@typescript-eslint/no-misused-promises`]: https://typescript-eslint.io/rules/no-misused-promises +[`@typescript-eslint/no-namespace`]: https://typescript-eslint.io/rules/no-namespace +[`@typescript-eslint/no-non-null-assertion`]: https://typescript-eslint.io/rules/no-non-null-assertion +[`@typescript-eslint/triple-slash-reference`]: https://typescript-eslint.io/rules/triple-slash-reference +[`@typescript-eslint/unbound-method`]: https://typescript-eslint.io/rules/unbound-method +[`@typescript-eslint/no-unnecessary-type-assertion`]: https://typescript-eslint.io/rules/no-unnecessary-type-assertion +[`@typescript-eslint/no-var-requires`]: https://typescript-eslint.io/rules/no-var-requires +[`@typescript-eslint/type-annotation-spacing`]: https://typescript-eslint.io/rules/type-annotation-spacing +[`@typescript-eslint/typedef`]: https://typescript-eslint.io/rules/typedef +[`@typescript-eslint/unified-signatures`]: https://typescript-eslint.io/rules/unified-signatures +[`@typescript-eslint/no-unnecessary-boolean-literal-compare`]: https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare +[`@typescript-eslint/no-misused-new`]: https://typescript-eslint.io/rules/no-misused-new +[`@typescript-eslint/no-this-alias`]: https://typescript-eslint.io/rules/no-this-alias +[`@typescript-eslint/no-throw-literal`]: https://typescript-eslint.io/rules/no-throw-literal +[`@typescript-eslint/no-extraneous-class`]: https://typescript-eslint.io/rules/no-extraneous-class +[`@typescript-eslint/no-unused-vars`]: https://typescript-eslint.io/rules/no-unused-vars +[`@typescript-eslint/no-use-before-define`]: https://typescript-eslint.io/rules/no-use-before-define +[`@typescript-eslint/restrict-plus-operands`]: https://typescript-eslint.io/rules/restrict-plus-operands +[`@typescript-eslint/strict-boolean-expressions`]: https://typescript-eslint.io/rules/strict-boolean-expressions +[`@typescript-eslint/indent`]: https://typescript-eslint.io/rules/indent +[`@typescript-eslint/no-invalid-void-type`]: https://typescript-eslint.io/rules/no-invalid-void-type +[`@typescript-eslint/no-require-imports`]: https://typescript-eslint.io/rules/no-require-imports +[`@typescript-eslint/array-type`]: https://typescript-eslint.io/rules/array-type +[`@typescript-eslint/naming-convention`]: https://typescript-eslint.io/rules/naming-convention +[`@typescript-eslint/interface-name-prefix`]: https://typescript-eslint.io/rules/interface-name-prefix +[`@typescript-eslint/naming-convention`]: https://typescript-eslint.io/rules/naming-convention +[`@typescript-eslint/parameter-properties`]: https://typescript-eslint.io/rules/parameter-properties +[`@typescript-eslint/member-delimiter-style`]: https://typescript-eslint.io/rules/member-delimiter-style +[`@typescript-eslint/prefer-for-of`]: https://typescript-eslint.io/rules/prefer-for-of +[`@typescript-eslint/no-array-constructor`]: https://typescript-eslint.io/rules/no-array-constructor +[`@typescript-eslint/no-dynamic-delete`]: https://typescript-eslint.io/rules/no-dynamic-delete +[`@typescript-eslint/prefer-function-type`]: https://typescript-eslint.io/rules/prefer-function-type +[`@typescript-eslint/prefer-readonly`]: https://typescript-eslint.io/rules/prefer-readonly +[`@typescript-eslint/require-await`]: https://typescript-eslint.io/rules/require-await +[`@typescript-eslint/no-for-in-array`]: https://typescript-eslint.io/rules/no-for-in-array +[`@typescript-eslint/no-unnecessary-qualifier`]: https://typescript-eslint.io/rules/no-unnecessary-qualifier +[`@typescript-eslint/no-unnecessary-type-arguments`]: https://typescript-eslint.io/rules/no-unnecessary-type-arguments +[`@typescript-eslint/semi`]: https://typescript-eslint.io/rules/semi +[`@typescript-eslint/no-floating-promises`]: https://typescript-eslint.io/rules/no-floating-promises +[`@typescript-eslint/no-magic-numbers`]: https://typescript-eslint.io/rules/no-magic-numbers +[`@typescript-eslint/no-unsafe-member-access`]: https://typescript-eslint.io/rules/no-unsafe-member-access +[`@typescript-eslint/restrict-template-expressions`]: https://typescript-eslint.io/rules/restrict-template-expressions +[`@typescript-eslint/no-confusing-void-expression`]: https://typescript-eslint.io/rules/no-confusing-void-expression + + + +[plugin:import]: https://github.com/benmosher/eslint-plugin-import +[`import/no-unassigned-import`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unassigned-import.md +[`import/no-extraneous-dependencies`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md +[`import/no-internal-modules`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-internal-modules.md +[`import/no-deprecated`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-deprecated.md +[`import/no-default-export`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-default-export.md +[`import/no-duplicates`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-duplicates.md +[`import/order`]: https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md + + + +[`react/no-danger`]: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-danger.md +[`react/jsx-curly-spacing`]: https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/jsx-curly-spacing.md +[`react/jsx-no-target-blank`]: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md +[`react/no-unused-state`]: https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/no-unused-state.md + + + +[`jsx-a11y/anchor-is-valid`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md +[`jsx-a11y/aria-unsupported-elements`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-unsupported-elements.md +[`jsx-a11y/no-static-element-interactions`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md +[`jsx-a11y/alt-text`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md +[`jsx-a11y/html-has-lang`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/html-has-lang.md +[`jsx-a11y/lang`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/lang.md +[`jsx-a11y/no-onchange`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md +[`jsx-a11y/aria-props`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-props.md +[`jsx-a11y/aria-proptypes`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-proptypes.md +[`jsx-a11y/role-has-required-aria-props`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-has-required-aria-props.md +[`jsx-a11y/role-supports-aria-props`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-supports-aria-props.md +[`jsx-a11y/aria-role`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md +[`jsx-a11y/tabindex-no-positive`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/tabindex-no-positive.md + + + +[`security/detect-non-literal-fs-filename`]: https://github.com/nodesecurity/eslint-plugin-security#detect-non-literal-fs-filename +[`security/detect-non-literal-require`]: https://github.com/nodesecurity/eslint-plugin-security#detect-non-literal-require +[`security/detect-possible-timing-attacks`]: https://github.com/nodesecurity/eslint-plugin-security#detect-possible-timing-attacks + + + +[plugin:jsdoc]: https://github.com/gajus/eslint-plugin-jsdoc +[`jsdoc/require-jsdoc`]: https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc +[`jsdoc/no-types`]: https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-types + + + +[`@microsoft/sdl/no-cookies`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-cookies.md +[`@microsoft/sdl/no-document-domain`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-document-domain.md +[`@microsoft/sdl/no-document-write`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-document-write.md +[`@microsoft/sdl/no-html-method`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-html-method.md +[`@microsoft/sdl/no-inner-html`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-inner-html.md +[`@microsoft/sdl/no-insecure-random`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-insecure-random.md +[`@microsoft/sdl/no-insecure-url`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-insecure-url.md +[`@microsoft/sdl/no-msapp-exec-unsafe`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-msapp-exec-unsafe.md +[`@microsoft/sdl/no-winjs-html-unsafe`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-winjs-html-unsafe.md +[`@microsoft/sdl/react-iframe-missing-sandbox`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/react-iframe-missing-sandbox.md + + + +[`prefer-arrow/prefer-arrow-functions`]: https://github.com/TristonJ/eslint-plugin-prefer-arrow +[plugin:promise]: https://github.com/xjamundx/eslint-plugin-promise +[plugin:header]: https://github.com/Stuk/eslint-plugin-header +[plugin:file-header]: https://github.com/Sekhmet/eslint-plugin-file-header +[plugin:compat]: https://github.com/amilajack/eslint-plugin-compat +[`no-null/no-null`]: https://github.com/nene/eslint-plugin-no-null +[`unicorn/filename-case`]: https://github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/filename-case.md +[`jest/no-focused-tests`]: https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-focused-tests.md +[`jsx-a11y/heading-has-content`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md +[`lodash/chaining`]: https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/chaining.md +[`deprecation/deprecation`]: https://github.com/gund/eslint-plugin-deprecation +[`desktop/insecure-random`]: https://github.com/desktop/desktop/blob/development/eslint-rules/insecure-random.js diff --git a/packages/eslint-plugin/src/configs/README.md b/packages/eslint-plugin/src/configs/README.md deleted file mode 100644 index c440d3d61c5..00000000000 --- a/packages/eslint-plugin/src/configs/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Premade Configs - -This page has moved to [docs/linting/CONFIGS.md](../../../../docs/linting/CONFIGS.md). diff --git a/packages/parser/README.md b/packages/parser/README.md index 018935b2ca9..3488cd5e505 100644 --- a/packages/parser/README.md +++ b/packages/parser/README.md @@ -256,7 +256,7 @@ Note that if you pass custom programs via `options.programs` this option will no Default `undefined`. -This option allow you to tell parser to act as if `emitDecoratorMetadata: true` is set in `tsconfig.json`, but without [type-aware linting](https://typescript-eslint.io/docs/linting/type-linting). In other words, you don't have to specify `parserOptions.project` in this case, making the linting process faster. +This option allow you to tell parser to act as if `emitDecoratorMetadata: true` is set in `tsconfig.json`, but without [type-aware linting](https://typescript-eslint.io/docs/linting/typed-linting). In other words, you don't have to specify `parserOptions.project` in this case, making the linting process faster. ## Utilities diff --git a/packages/website/docusaurusConfig.ts b/packages/website/docusaurusConfig.ts index ac050430f53..db806b0a3aa 100644 --- a/packages/website/docusaurusConfig.ts +++ b/packages/website/docusaurusConfig.ts @@ -172,7 +172,7 @@ const config: Config = { url: 'https://typescript-eslint.io', baseUrl: '/', onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', // If Markdown link resolution fails, it will result in a broken link anyways + onBrokenMarkdownLinks: 'throw', favicon: 'img/favicon.ico', organizationName: 'typescript-eslint', projectName: 'typescript-eslint', diff --git a/packages/website/sidebars/sidebar.base.js b/packages/website/sidebars/sidebar.base.js index 8fbf27e2dc9..8e896c376ad 100644 --- a/packages/website/sidebars/sidebar.base.js +++ b/packages/website/sidebars/sidebar.base.js @@ -1,18 +1,34 @@ module.exports = { docs: [ - 'README', { - type: 'category', - label: 'Linting', collapsed: false, items: [ - 'linting/linting', - 'linting/type-linting', + { + label: 'Linting with Type Information', + items: ['linting/typed-linting/monorepos'], + link: { + id: 'linting/typed-linting', + type: 'doc', + }, + type: 'category', + }, 'linting/configs', - 'linting/monorepo', - 'linting/troubleshooting', - 'linting/tslint', + { + label: 'Troubleshooting & FAQs', + link: { + id: 'linting/troubleshooting', + type: 'doc', + }, + type: 'category', + items: ['linting/troubleshooting/tslint'], + }, ], + link: { + id: 'getting-started', + type: 'doc', + }, + label: 'Getting Started', + type: 'category', }, { type: 'category', From a0d5a706144c5af9b8b3d077a2b8d50176aa9671 Mon Sep 17 00:00:00 2001 From: Armano Date: Fri, 22 Jul 2022 20:07:53 +0200 Subject: [PATCH 18/72] chore(website): add current version of typescript to playground dropdown (#5341) --- packages/website/src/components/OptionsSelector.tsx | 5 ++--- .../website/src/components/editor/useSandboxServices.ts | 9 ++++++++- packages/website/src/components/inputs/Dropdown.tsx | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/website/src/components/OptionsSelector.tsx b/packages/website/src/components/OptionsSelector.tsx index f57f2600f49..b9b78edfad0 100644 --- a/packages/website/src/components/OptionsSelector.tsx +++ b/packages/website/src/components/OptionsSelector.tsx @@ -90,10 +90,9 @@ function OptionsSelectorContent({ name="ts" className="text--right" value={state.ts} + disabled={!tsVersions.length} onChange={updateTS} - options={((tsVersions.length && tsVersions) || [state.ts]).filter( - item => parseFloat(item) >= 3.3, - )} + options={(tsVersions.length && tsVersions) || [state.ts]} />