npm eslint 9.0.0

latest releases: 9.1.1, 9.1.0
24 days ago

Breaking Changes

  • b7cf3bd fix!: correct camelcase rule schema for allow option (#18232) (eMerzh)
  • 09bd7fe feat!: move AST traversal into SourceCode (#18167) (Nicholas C. Zakas)
  • 79a95eb feat!: disallow multiple configuration comments for same rule (#18157) (Milos Djermanovic)
  • 9163646 feat!: Rule Tester checks for missing placeholder data in the message (#18073) (fnx)
  • 3c4d51d feat!: default for enforceForClassMembers in no-useless-computed-key (#18054) (Francesco Trotta)
  • 47e60f8 feat!: Stricter rule test validations (#17654) (fnx)
  • 1a94589 feat!: no-unused-vars default caughtErrors to 'all' (#18043) (Josh Goldberg ✨)
  • 57089cb feat!: no-restricted-imports allow multiple config entries for same path (#18021) (Milos Djermanovic)
  • 2e1d549 feat!: detect duplicate test cases (#17955) (Bryan Mishkin)
  • 701f1af feat!: no-inner-declaration new default behaviour and option (#17885) (Tanuj Kanti)
  • bde5105 fix!: handle --output-file for empty output when saving to disk (#17957) (Nitin Kumar)
  • 07107a5 fix!: upgrade eslint-scope@8.0.0 (#17942) (Milos Djermanovic)
  • 3ee0f6c fix!: no-unused-vars varsIgnorePattern behavior with catch arguments (#17932) (Tanuj Kanti)
  • 51f8bc8 fix!: configuration comments with just severity should retain options (#17945) (Milos Djermanovic)
  • d191bdd feat!: Remove CodePath#currentSegments (#17936) (Milos Djermanovic)
  • 946ae00 feat!: FlatRuleTester -> RuleTester (#17922) (Nicholas C. Zakas)
  • baff28c feat!: remove no-inner-declarations from eslint:recommended (#17920) (Milos Djermanovic)
  • cadfbcd feat!: Rename FlatESLint to ESLint (#17914) (Nicholas C. Zakas)
  • d1018fc feat!: skip running warnings in --quiet mode (#17274) (Maddy Miller)
  • fb81b1c feat!: Set default schema: [], drop support for function-style rules (#17792) (Milos Djermanovic)
  • 0b21e1f feat!: add two more cases to no-implicit-coercion (#17832) (Gürgün Dayıoğlu)
  • 2916c63 feat!: Switch Linter to flat config by default (#17851) (Nicholas C. Zakas)
  • 200518e fix!: Parsing 'exported' comment using parseListConfig (#17675) (amondev)
  • bdd6ba1 feat!: Remove valid-jsdoc and require-jsdoc (#17694) (Nicholas C. Zakas)
  • 12be307 fix!: Behavior of CLI when no arguments are passed (#17644) (Nicholas C. Zakas)
  • 8fe8c56 feat!: Update shouldUseFlatConfig and CLI so flat config is default (#17748) (Nicholas C. Zakas)
  • 60dea3e feat!: deprecate no-new-symbol, recommend no-new-native-nonconstructor (#17710) (Francesco Trotta)
  • 5aa9c49 feat!: check for parsing errors in suggestion fixes (#16639) (Bryan Mishkin)
  • b3e0bb0 feat!: assert suggestion messages are unique in rule testers (#17532) (Josh Goldberg ✨)
  • e563c52 feat!: no-invalid-regexp make allowConstructorFlags case-sensitive (#17533) (Josh Goldberg ✨)
  • e5f02c7 fix!: no-sequences rule schema correction (#17878) (MHO)
  • 6ee3e9e feat!: Update eslint:recommended configuration (#17716) (Milos Djermanovic)
  • c2cf85a feat!: drop support for string configurations in flat config array (#17717) (Milos Djermanovic)
  • c314fd6 feat!: Remove SourceCode#getComments() (#17715) (Milos Djermanovic)
  • ae78ff1 feat!: Remove deprecated context methods (#17698) (Nicholas C. Zakas)
  • f71c328 feat!: Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API (#17823) (Nicholas C. Zakas)
  • 5304da0 feat!: remove formatters except html, json(-with-metadata), and stylish (#17531) (Josh Goldberg ✨)
  • e1e827f feat!: Require Node.js ^18.18.0 || ^20.9.0 || >=21.1.0 (#17725) (Milos Djermanovic)

Features

  • d54a412 feat: Add --inspect-config CLI flag (#18270) (Nicholas C. Zakas)
  • 97ce45b feat: Add reportUsedIgnorePattern option to no-unused-vars rule (#17662) (Pearce Ropion)
  • 3e9fcea feat: Show config names in error messages (#18256) (Nicholas C. Zakas)
  • de40874 feat: Rule Performance Statistics for flat ESLint (#17850) (Mara Kiefer)
  • d85c436 feat: use-isnan report NaN in indexOf and lastIndexOf with fromIndex (#18225) (Tanuj Kanti)
  • b8fb572 feat: add reportUnusedFallthroughComment option to no-fallthrough rule (#18188) (Kirk Waiblinger)
  • 1c173dc feat: add ignoreClassWithStaticInitBlock option to no-unused-vars (#18170) (Tanuj Kanti)
  • a451b32 feat: make no-misleading-character-class report more granular errors (#18082) (Francesco Trotta)
  • c49ed63 feat: update complexity rule for optional chaining & default values (#18152) (Mathias Schreck)
  • 11144a2 feat: no-restricted-imports option added allowImportNames (#16196) (M Pater)
  • 74124c2 feat: add suggestions to use-isnan in indexOf & lastIndexOf calls (#18063) (StyleShit)
  • 53f0f47 feat: Add loadESLint() API method for v9 (#18097) (Nicholas C. Zakas)
  • 2d11d46 feat: add suggestions to use-isnan in binary expressions (#17996) (StyleShit)
  • 26093c7 feat: fix false negatives in no-this-before-super (#17762) (Yosuke Ota)
  • 5471e43 feat: convert unsafe autofixes to suggestions in no-implicit-coercion (#17985) (Gürgün Dayıoğlu)
  • e3051be feat: emit warning when .eslintignore file is detected (#17952) (Nitin Kumar)
  • a630edd feat: maintain latest ecma version in ESLint (#17958) (Milos Djermanovic)
  • b4e0503 feat: add no-useless-assignment rule (#17625) (Yosuke Ota)
  • 287c4b7 feat: no-misleading-character-class granular errors (#17515) (Josh Goldberg ✨)
  • 8792464 feat: Enable eslint.config.mjs and eslint.config.cjs (#17909) (Nicholas C. Zakas)
  • 24ce927 feat: warn by default for unused disable directives (#17879) (Bryan Mishkin)

Bug Fixes

  • 610c148 fix: Support using declarations in no-lone-blocks (#18269) (Kirk Waiblinger)
  • e508800 fix: rule tester ignore irrelevant test case properties (#18235) (fnx)
  • a129acb fix: flat config name on ignores object (#18258) (Nicholas C. Zakas)
  • dadc5bf fix: constructor-super false positives with loops (#18226) (Milos Djermanovic)
  • ae8103d fix: load plugins in the CLI in flat config mode (#18185) (Francesco Trotta)
  • e37153f fix: improve error message for invalid rule config (#18147) (Nitin Kumar)
  • af6e170 fix: stop linting files after an error (#18155) (Francesco Trotta)
  • 0cb4914 fix: validate options when comment with just severity enables rule (#18133) (Milos Djermanovic)
  • c4d26fd fix: use-isnan doesn't report on SequenceExpressions (#18059) (StyleShit)
  • 39076fb fix: handle absolute file paths in RuleTester (#17989) (Nitin Kumar)
  • 6d11f3d fix: Ensure config keys are printed for config errors (#17980) (Nicholas C. Zakas)
  • 806f708 fix: no-misleading-character-class edge cases with granular errors (#17970) (Milos Djermanovic)
  • f182114 fix: deep merge behavior in flat config (#17906) (Francesco Trotta)
  • b577e8a fix: allow circular references in config (#17752) (Francesco Trotta)

Documentation

  • e151050 docs: update get-started to the new @eslint/create-config (#18217) (唯然)
  • 94178ad docs: mention about name field in flat config (#18252) (Anthony Fu)
  • 1765c24 docs: add Troubleshooting page (#18181) (Josh Goldberg ✨)
  • 96607d0 docs: version selectors synchronization (#18260) (Milos Djermanovic)
  • 651ec91 docs: remove /* eslint-env */ comments from rule examples (#18249) (Milos Djermanovic)
  • 950c4f1 docs: Update README (GitHub Actions Bot)
  • 12f5746 docs: add info about dot files and dir in flat config (#18239) (Tanuj Kanti)
  • b93f408 docs: update shared settings example (#18251) (Tanuj Kanti)
  • 26384d3 docs: fix ecmaVersion in one example, add checks (#18241) (Milos Djermanovic)
  • 7747097 docs: Update PR review process (#18233) (Nicholas C. Zakas)
  • b07d427 docs: fix typo (#18246) (Kirill Gavrilov)
  • 778082d docs: add Glossary page (#18187) (Josh Goldberg ✨)
  • 239a7e2 docs: Clarify the description of sort-imports options (#18198) (gyeongwoo park)
  • 4769c86 docs: fix incorrect example in no-lone-blocks (#18215) (Tanuj Kanti)
  • 5251327 docs: Update README (GitHub Actions Bot)
  • 1dc8618 docs: Update README (GitHub Actions Bot)
  • ba1c1bb docs: Update README (GitHub Actions Bot)
  • 337cdf9 docs: Explain limitations of RuleTester fix testing (#18175) (Nicholas C. Zakas)
  • c7abd89 docs: Explain Node.js version support (#18176) (Nicholas C. Zakas)
  • d961eeb docs: show red underlines in examples in rules docs (#18041) (Yosuke Ota)
  • 558274a docs: Update README (GitHub Actions Bot)
  • 2908b9b docs: Update release documentation (#18174) (Nicholas C. Zakas)
  • 1f1260e docs: replace HackerOne link with GitHub advisory (#18165) (Francesco Trotta)
  • e5ef3cd docs: add inline cases condition in no-fallthrough (#18158) (Tanuj Kanti)
  • 450d0f0 docs: fix ignore option docs (#18154) (Francesco Trotta)
  • 5fe095c docs: show v8.57.0 as latest version in dropdown (#18142) (Milos Djermanovic)
  • 7db5bb2 docs: Show prerelease version in dropdown (#18135) (Nicholas C. Zakas)
  • 73a5f06 docs: Update README (GitHub Actions Bot)
  • f95cd27 docs: Disallow multiple rule configuration comments in the same example (#18116) (Milos Djermanovic)
  • d8068ec docs: Update link for schema examples (#18112) (Svetlana)
  • f1c7e6f docs: Switch to Ethical Ads (#18090) (Strek)
  • 15c143f docs: JS Foundation -> OpenJS Foundation in PR template (#18092) (Nicholas C. Zakas)
  • 6ea339e docs: add stricter rule test validations to v9 migration guide (#18085) (Milos Djermanovic)
  • 3c816f1 docs: use relative link from CLI to core concepts (#18083) (Milos Djermanovic)
  • 9458735 docs: fix malformed eslint config comments in rule examples (#18078) (Francesco Trotta)
  • 07a1ada docs: link from --fix CLI doc to the relevant core concept (#18080) (Bryan Mishkin)
  • b844324 docs: Update team responsibilities (#18048) (Nicholas C. Zakas)
  • aadfb60 docs: document languageOptions and other v9 changes for context (#18074) (fnx)
  • 857e242 docs: tweak explanation for meta.docs rule properties (#18057) (Bryan Mishkin)
  • 10485e8 docs: recommend messageId over message for reporting rule violations (#18050) (Bryan Mishkin)
  • 98b5ab4 docs: Update README (GitHub Actions Bot)
  • 505fbf4 docs: update no-restricted-imports rule (#18015) (Tanuj Kanti)
  • c25b4af docs: Update README (GitHub Actions Bot)
  • 33d1ab0 docs: add more examples to flat config ignores docs (#18020) (Milos Djermanovic)
  • e6eebca docs: Update sort-keys options properties count (#18025) (LB (Ben Johnston))
  • 1fedfd2 docs: Improve flat config ignores docs (#17997) (Nicholas C. Zakas)
  • 38b9b06 docs: update valid-typeof rule (#18001) (Tanuj Kanti)
  • b4abfea docs: Update note about ECMAScript support (#17991) (Francesco Trotta)
  • 6788873 docs: Update release blog post template (#17994) (Nicholas C. Zakas)
  • 1f37442 docs: Add sections on non-npm plugin configuration (#17984) (Nicholas C. Zakas)
  • 96307da docs: migration guide entry for no-inner-declarations (#17977) (Tanuj Kanti)
  • 40be60e docs: Update README (GitHub Actions Bot)
  • d31c180 docs: fix number of code-path events on custom rules page (#17969) (Richard Hunter)
  • 1529ab2 docs: reorder entries in v9 migration guide (#17967) (Milos Djermanovic)
  • 9507525 docs: Explain how to combine configs (#17947) (Nicholas C. Zakas)
  • 7c78576 docs: Add more removed context methods to migrate to v9 guide (#17951) (Milos Djermanovic)
  • 3a877d6 docs: Update removed CLI flags migration (#17939) (Nicholas C. Zakas)
  • 4a9cd1e docs: Update Linter API for v9 (#17937) (Milos Djermanovic)
  • 2a8eea8 docs: update docs for v9.0.0-alpha.0 (#17929) (Milos Djermanovic)
  • 7f0ba51 docs: show NEXT in version selectors (#17911) (Milos Djermanovic)
  • 0a7911e docs: add flat config default to v9 migration guide (#17927) (Milos Djermanovic)
  • 94f8065 docs: Add CLI updates to migrate to v9 guide (#17924) (Nicholas C. Zakas)
  • 16187f2 docs: Add exported and string config notes to migrate to v9 guide (#17926) (Nicholas C. Zakas)
  • 3ae50cc docs: Add RuleTester changes to migrate to v9 guide (#17923) (Nicholas C. Zakas)
  • 0831b58 docs: add rule changes to v9 migration guide (#17925) (Milos Djermanovic)
  • 037abfc docs: update API docs (#17919) (Milos Djermanovic)
  • afc3c03 docs: add function-style and meta.schema changes to v9 migration guide (#17912) (Milos Djermanovic)
  • 1da0723 docs: update eslint:recommended section in Migrate to v9.x (#17908) (Milos Djermanovic)
  • f55881f docs: remove configuration-files-new.md (#17907) (Milos Djermanovic)
  • 63ae191 docs: Migrate to v9.0.0 (#17905) (Nicholas C. Zakas)
  • e708496 docs: Switch to flat config by default (#17840) (Nicholas C. Zakas)
  • fdf0424 docs: Update Create a Plugin for flat config (#17826) (Nicholas C. Zakas)
  • e6a91bd docs: Switch shareable config docs to use flat config (#17827) (Nicholas C. Zakas)
  • 3831fb7 docs: updated examples of max-lines rule (#17898) (Tanuj Kanti)
  • cd1ac20 docs: Update README (GitHub Actions Bot)

Build Related

  • 26010c2 Build: changelog update for 9.0.0-rc.0 (Jenkins)
  • b91f9dc build: fix TypeError in prism-eslint-hooks.js (#18209) (Francesco Trotta)
  • d7ec0d1 Build: changelog update for 9.0.0-beta.2 (Jenkins)
  • fd9c0a9 Build: changelog update for 9.0.0-beta.1 (Jenkins)
  • c9f2f33 build: changelog update for 8.57.0 (#18144) (Milos Djermanovic)
  • 1bbc495 Build: changelog update for 9.0.0-beta.0 (Jenkins)
  • 96f8877 Build: changelog update for 9.0.0-alpha.2 (Jenkins)
  • 52d5e7a Build: changelog update for 9.0.0-alpha.1 (Jenkins)
  • c2bf27d build: update docs files when publishing prereleases (#17940) (Milos Djermanovic)
  • e91d85d Build: changelog update for 9.0.0-alpha.0 (Jenkins)

Chores

  • 19f9a89 chore: Update dependencies for v9.0.0 (#18275) (Nicholas C. Zakas)
  • 7c957f2 chore: package.json update for @eslint/js release (Jenkins)
  • d73a33c chore: ignore /docs/v8.x in link checker (#18274) (Milos Djermanovic)
  • 44a81c6 chore: upgrade knip (#18272) (Lars Kappert)
  • e80b60c chore: remove code for testing version selectors (#18266) (Milos Djermanovic)
  • a98babc chore: add npm script to run WebdriverIO test (#18238) (Francesco Trotta)
  • 9b7bd3b chore: update dependency markdownlint to ^0.34.0 (#18237) (renovate[bot])
  • 297416d chore: package.json update for eslint-9.0.0-rc.0 (#18223) (Francesco Trotta)
  • d363c51 chore: package.json update for @eslint/js release (Jenkins)
  • 1b841bb chore: fix some comments (#18213) (avoidaway)
  • 29c3595 chore: remove repetitive words (#18193) (cuithon)
  • acc2e06 chore: Introduce Knip (#18005) (Lars Kappert)
  • 7509276 chore: upgrade @eslint/js@9.0.0-beta.2 (#18180) (Milos Djermanovic)
  • 96087b3 chore: package.json update for @eslint/js release (Jenkins)
  • 925afa2 chore: Remove some uses of lodash.merge (#18179) (Milos Djermanovic)
  • 972ef15 chore: remove invalid type in @eslint/js (#18164) (Nitin Kumar)
  • 32ffdd1 chore: upgrade @eslint/js@9.0.0-beta.1 (#18146) (Milos Djermanovic)
  • e41425b chore: package.json update for @eslint/js release (Jenkins)
  • bb3b9c6 chore: upgrade @eslint/eslintrc@3.0.2 (#18145) (Milos Djermanovic)
  • e462524 chore: upgrade eslint-release@3.2.2 (#18138) (Milos Djermanovic)
  • 8e13a6b chore: fix spelling mistake in README.md (#18128) (Will Eastcott)
  • 66f52e2 chore: remove unused tools rule-types.json, update-rule-types.js (#18125) (Josh Goldberg ✨)
  • bf0c7ef ci: fix sync-labels value of pr-labeler (#18124) (Tanuj Kanti)
  • cace6d0 ci: add PR labeler action (#18109) (Nitin Kumar)
  • 1a65d3e chore: export base config from eslint-config-eslint (#18119) (Milos Djermanovic)
  • 9aa4df3 refactor: remove globals dependency (#18115) (Milos Djermanovic)
  • e40d1d7 chore: upgrade @eslint/js@9.0.0-beta.0 (#18108) (Milos Djermanovic)
  • 9870f93 chore: package.json update for @eslint/js release (Jenkins)
  • 2c62e79 chore: upgrade @eslint/eslintrc@3.0.1 (#18107) (Milos Djermanovic)
  • 81f0294 chore: upgrade espree@10.0.1 (#18106) (Milos Djermanovic)
  • 5e2b292 chore: upgrade eslint-visitor-keys@4.0.0 (#18105) (Milos Djermanovic)
  • ce838ad chore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (#18045) (renovate[bot])
  • 54df731 chore: update dependency markdownlint-cli to ^0.39.0 (#18084) (renovate[bot])
  • 8f06a60 chore: update dependency shelljs to ^0.8.5 (#18079) (Francesco Trotta)
  • 93ffe30 chore: update dependency file-entry-cache to v8 (#17903) (renovate[bot])
  • 6ffdcbb chore: upgrade @eslint/js@9.0.0-alpha.2 (#18038) (Milos Djermanovic)
  • 2c12715 chore: package.json update for @eslint/js release (Jenkins)
  • cc74c4d chore: upgrade espree@10.0.0 (#18037) (Milos Djermanovic)
  • dfb68b6 chore: use Node.js 20 for docs sites (#18026) (Milos Djermanovic)
  • 8c1b8dd test: add more tests for ignoring files and directories (#18018) (Milos Djermanovic)
  • 60b966b chore: update dependency @eslint/js to v9.0.0-alpha.1 (#18014) (renovate[bot])
  • c893bc0 chore: update markdownlint to v0.33.0 (#17995) (Nitin Kumar)
  • c5e50ee chore: package.json update for @eslint/js release (Jenkins)
  • 1bf2520 chore: Split Docs CI from core CI (#17897) (Nicholas C. Zakas)
  • 320787e chore: delete relative-module-resolver.js (#17981) (Francesco Trotta)
  • 4926f33 refactor: use Object.hasOwn() (#17948) (Milos Djermanovic)
  • df200e1 refactor: use Array.prototype.at() to get last elements (#17949) (Milos Djermanovic)
  • 750b8df chore: update dependency glob to v10 (#17917) (renovate[bot])
  • 74794f5 chore: removed unused eslintrc modules (#17938) (Milos Djermanovic)
  • 10ed29c chore: remove unused dependency rimraf (#17934) (Francesco Trotta)
  • 903ee60 ci: use --force flag when installing eslint (#17921) (Milos Djermanovic)
  • 17fedc1 chore: upgrade @eslint/js@9.0.0-alpha.0 (#17928) (Milos Djermanovic)
  • cb89ef3 chore: package.json update for @eslint/js release (Jenkins)
  • f6f4a45 chore: drop structuredClone polyfill for v9 (#17915) (Kevin Gibbons)
  • 412dcbb chore: upgrade eslint-plugin-n@16.6.0 (#17916) (Milos Djermanovic)
  • 02a8baf chore: Rename files with underscores (#17910) (Nicholas C. Zakas)
  • c0f5d91 chore: remove creating an unused instance of Linter in tests (#17902) (Milos Djermanovic)
  • 3826cdf chore: use jsdoc/no-multi-asterisks with allowWhitespace: true (#17900) (Percy Ma)
  • a9a17b3 chore: fix getting scope in tests (#17899) (Milos Djermanovic)
  • 595a1f6 test: ensure that CLI tests run with FlatESLint (#17884) (Francesco Trotta)
  • c7eca43 chore: update dependency markdownlint-cli to ^0.38.0 (#17865) (renovate[bot])
  • cc0c9f7 ci: bump github/codeql-action from 2 to 3 (#17873) (dependabot[bot])

Don't miss a new eslint release

NewReleases is sending notifications on new releases.