What's Changed
New Features 馃帀
- feat(unicorn): port rule no-await-in-promise-methods by @elecmonkey in #1785
- feat(unicorn): port rule no-invalid-remove-event-listener by @elecmonkey in #1791
- feat(rstest): add prefer-called-exactly-once-with rule by @elecmonkey in #1776
- feat: port rule no-object-constructor by @swwind in #1751
- feat: port rule func-names by @swwind in #1738
- feat: port rule no-magic-numbers by @swwind in #1736
- feat: expose language options through rule context by @fansenze in #1805
- feat: port rule id-length by @swwind in #1745
- feat(rstest): add require-local-test-context-for-concurrent-snapshots rule by @elecmonkey in #1778
- feat: port rule consistent-this by @swwind in #1740
- feat: port rule no-lonely-if by @swwind in #1734
- feat: port rule no-inline-comments by @swwind in #1749
- feat: port rule no-underscore-dangle by @swwind in #1788
- feat(rstest): add no-conditional-in-test rule by @elecmonkey in #1839
- feat(rstest): add no-hooks rule by @elecmonkey in #1835
- feat(unicorn): port rule no-array-fill-with-reference-type by @elecmonkey in #1793
- feat(rstest): add max-expects rule by @elecmonkey in #1838
- feat: port rule sort-keys by @swwind in #1732
- feat: port rule prefer-object-has-own by @swwind in #1801
- feat(rstest): add prefer-hooks-in-order rule by @elecmonkey in #1836
- feat(eslint-plugin-jest): add
prefer-ending-with-an-expectrule by @eryue0220 in #1601 - feat: port rule unicorn/catch-error-name by @rockm3 in #1733
- feat(rstest): add no-alias-methods rule by @elecmonkey in #1837
- feat(unicorn): port rule no-unsafe-string-replacement by @elecmonkey in #1786
- feat: port rule sort-vars by @swwind in #1872
- feat: support
languageOptions.sourceTypeby @eryue0220 in #1605 - feat(rstest): add prefer-each rule by @elecmonkey in #1841
- feat(unicorn): port rule no-invalid-fetch-options by @elecmonkey in #1789
- feat: port rule import/order by @fansenze in #1783
- feat: port rule no-restricted-exports by @swwind in #1761
- feat(rstest): add prefer-expect-type-of rule by @elecmonkey in #1885
- feat(rstest): add prefer-todo rule by @elecmonkey in #1840
- feat: port rule capitalized-comments by @swwind in #1824
- feat(website): use published wasm binary in playground by @swwind in #1883
- feat: port rule no-restricted-properties by @swwind in #1750
- feat: port rule unicorn/no-this-assignment by @rockm3 in #1870
- feat: port rule vars-on-top by @swwind in #1896
- feat(rstest): add prefer-called-times rule by @elecmonkey in #1890
- feat: port rule new-cap by @swwind in #1882
- feat: port rule sort-imports by @swwind in #1868
- feat: port rule func-name-matching by @swwind in #1826
- feat: port rule default-param-last by @swwind in #1894
- feat: port rule no-array-constructor by @swwind in #1753
- feat: port rule unicorn/no-xor-as-exponentiation by @rockm3 in #1907
- feat(unicorn): port rule no-nested-ternary by @guihua-c in #1910
Performance 馃殌
- perf(rstest): optimize expect-expect rule by @elecmonkey in #1827
- perf(rstest): optimize valid-expect-in-promise rule by @elecmonkey in #1832
- perf(rstest): optimize prefer-called-exactly-once-with rule by @elecmonkey in #1871
- perf(rstest): optimize max-expects rule by @elecmonkey in #1874
Bug Fixes 馃悶
- fix: align no-cond-assign with ESLint by @fansenze in #1806
- fix: align no-unmodified-loop-condition with ESLint by @fansenze in #1807
- fix: align no-inner-declarations with ESLint by @fansenze in #1803
- fix: align duplicate enum value detection by @fansenze in #1809
- fix: align TypeScript dot-notation with upstream by @fansenze in #1812
- fix: align typescript no-empty-function behavior by @fansenze in #1813
- fix: align no-invalid-void-type with upstream by @fansenze in #1814
- fix: align consistent-type-definitions with typescript-eslint by @fansenze in #1808
- fix: align no-inferrable-types with upstream by @fansenze in #1815
- fix: align no-this-alias diagnostics with upstream by @fansenze in #1816
- fix: align no-static-only-class JSDoc modifiers by @fansenze in #1818
- fix: align require-await diagnostics with upstream by @fansenze in #1817
- fix(tsgo): collect token symbols in semantic data by @CPunisher in #1821
- fix: remove no-undef from JavaScript recommended preset by @chenjiahan in #1828
- fix: align filename-case with latest unicorn by @fansenze in #1819
- fix: align no-case-declarations with ESLint by @fansenze in #1842
- fix: align max-lines-per-function diagnostics by @fansenze in #1843
- fix: align no-unused-vars diagnostics with upstream by @fansenze in #1844
- fix: report sparse array commas by @fansenze in #1846
- fix: align rules-of-hooks diagnostics with upstream by @fansenze in #1820
- fix: align no-dupe-keys with ESLint by @fansenze in #1845
- fix: align no-var with ESLint by @fansenze in #1847
- fix: align getter-return with ESLint by @fansenze in #1848
- fix: align no-unreachable boolean branch reachability by @fansenze in #1849
- fix: track inline global member reads by @fansenze in #1850
- fix: align large radix keys with ESLint by @fansenze in #1860
- fix: align filename-case diagnostics with upstream by @fansenze in #1862
- fix: align prefer-optional-chain optional boundaries by @fansenze in #1863
- fix(tsgo): preserve semantic symbol metadata by @CPunisher in #1864
- fix: align consistent-type-definitions fix ranges by @fansenze in #1867
- fix: preserve catch error name bindings by @fansenze in #1873
- fix: respect effective source type in no-unused-vars by @fansenze in #1878
- fix(wasm): remove stray debugger statement by @chenjiahan in #1887
- fix(linter): skip js-doc AST for every rule by @swwind in #1877
- fix: ignore hosted JSDoc syntax in rule checks by @fansenze in #1891
- fix: align prefer-optional-chain suggestion message by @fansenze in #1900
- fix: classify Node builtins before resolution by @fansenze in #1905
- fix: unify lint execution pipeline by @fansenze in #1892
- fix(website): keep playground editor hover from being clipped by @elecmonkey in #1909
- fix: harden no-array-constructor edits by @fansenze in #1916
- fix: align autofix rounds across integrations by @fansenze in #1914
Refactor 馃敤
- refactor(utils): port JavaScript's string utility functions on Unicode 17 by @swwind in #1766
- refactor: define config target semantics by @fansenze in #1851
- refactor: make rule catalogs explicit by @fansenze in #1854
- refactor(config): isolate lint target planning by @fansenze in #1855
- refactor(config): modularize config discovery by @fansenze in #1861
- refactor(lsp): split service responsibilities by @fansenze in #1866
- refactor: split lint command responsibilities by @fansenze in #1869
- refactor: split API handler responsibilities by @fansenze in #1876
- refactor: share lint runtime capabilities by @fansenze in #1879
- refactor: isolate API server implementation by @fansenze in #1881
- refactor: consolidate diagnostic processing by @fansenze in #1884
- refactor: separate lint planning from execution by @fansenze in #1893
- refactor: remove configured rule compatibility alias by @fansenze in #1904
Document 馃摉
- docs: fix invalid code blocks by @chenjiahan in #1798
- docs: clarify Plugin API preset sources by @fansenze in #1800
- docs: refresh TypeScript compiler wording and package README by @chenjiahan in #1888
- docs(website): move LLMs UI to page outline by @chenjiahan in #1906
- docs: rewrite
rstest/rules' documents by @elecmonkey in #1901
Other Changes
- ci: cap GOMAXPROCS on the Linux Go test runner by @swwind in #1796
- chore(deps): update rust crate napi to 3.12.1 by @renovate[bot] in #1765
- test: lock CLI lint target contracts by @fansenze in #1853
- chore: fix CI lint failure by @fansenze in #1880
- chore(deps): update dependency eslint to ^10.9.0 by @renovate[bot] in #1857
- chore(deps): migrate to @rstackjs/doc-ui v1.14.9 by @chenjiahan in #1908
- test: update rule tests for configured rule move by @fansenze in #1911
New Contributors
Full Changelog: v0.8.1...v0.8.2