What's Changed
New Features 馃帀
- feat(rstest): add prefer-expect-resolves rule by @elecmonkey in #2238
- feat(jest,rstest): add prefer-mock-return-shorthand rule by @elecmonkey in #2240
- feat(rstest): add no-unneeded-async-expect-function rule by @elecmonkey in #2194
- feat(import): add no-commonjs rule by @fansenze in #2259
- feat(import): add no-unresolved rule by @fansenze in #2263
- feat: port import/export rule by @fansenze in #2261
- feat(import): add consistent-type-specifier-style by @fansenze in #2260
- feat(tsgo): map imports without module symbols to source files by @CPunisher in #2262
- feat: add import/no-namespace rule by @fansenze in #2268
- feat: add import/no-amd rule by @fansenze in #2267
- feat(import): add no-named-as-default rule by @fansenze in #2269
- feat: add import/no-dynamic-require rule by @fansenze in #2266
- feat: add import/no-anonymous-default-export by @fansenze in #2282
- feat(import): add no-empty-named-blocks rule by @fansenze in #2283
- feat: add import/max-dependencies rule by @fansenze in #2281
- feat(import): add no-named-as-default-member by @fansenze in #2279
- feat(import): add exports-last rule by @fansenze in #2288
- feat(import): add no-named-export rule by @fansenze in #2295
- feat(import): add enforce-node-protocol-usage rule by @fansenze in #2286
- feat(import): add no-named-default rule by @fansenze in #2290
- feat(jest,rstest): add prefer-expect-assertions rule by @elecmonkey in #2246
- feat: add import/group-exports rule by @fansenze in #2291
- feat(import): add unambiguous rule by @fansenze in #2297
- feat(import): add no-absolute-path rule by @fansenze in #2289
- feat(jest,rstest): add prefer-mock-promise-shorthand rule and extract the shared mock shorthand analysis by @elecmonkey in #2276
- feat(rstest): add prefer-spy-on rule and extract the shared detection by @elecmonkey in #2274
- feat(import): add no-unassigned-import rule by @fansenze in #2303
- feat(import): add no-useless-path-segments rule by @fansenze in #2302
- feat(import): add no-relative-parent-imports rule by @fansenze in #2301
- feat(import): add prefer-default-export rule by @fansenze in #2296
- feat(unicorn): add prefer-structured-clone rule by @HashemKhalifa in #2300
- feat(unicorn): port no-useless-continue rule by @aryan1306 in #2321
- feat(import): add extensions rule by @fansenze in #2305
- feat(import): add named rule by @fansenze in #2304
- feat(unicorn): add no-async-promise-finally rule by @HashemKhalifa in #2244
- feat: add react/jsx-no-constructed-context-values by @fansenze in #2322
- feat(import): add no-nodejs-modules rule by @fansenze in #2298
- feat(react): port async-server-action rule by @fansenze in #2325
- feat(jest,rstest): add no-untyped-mock-factory rule by @elecmonkey in #2292
- feat(jest,rstest): add no-test-return-statement rule by @elecmonkey in #2284
- feat(unicorn): add consistent-template-literal-escape rule by @HashemKhalifa in #2315
- feat: add react/jsx-newline rule by @fansenze in #2306
- feat(react): add jsx-tag-spacing rule by @fansenze in #2308
- feat(react): port no-object-type-as-default-prop rule by @fansenze in #2323
- feat(jest,rstest): add prefer-snapshot-hint rule by @elecmonkey in #2293
- feat(unicorn): add prefer-array-last-methods rule by @HashemKhalifa in #2317
- feat(react): add state-in-constructor rule by @fansenze in #2307
- feat(jest): add no-error-equal rule by @elecmonkey in #2332
- feat(jest): port no-unnecessary-assertion rule by @elecmonkey in #2334
- feat(jest): add valid-expect-with-promise rule by @elecmonkey in #2337
- feat(jest): add unbound-method rule by @elecmonkey in #2336
- feat(jest): add consistent-test-it rule and align jest call parsing with upstream by @elecmonkey in #2335
- feat(jest): add valid-mock-module-path rule by @elecmonkey in #2333
Performance 馃殌
- perf(node): compact builtin API metadata by @swwind in #2239
- perf: grow JavaScript plugin workers on demand by @fansenze in #2264
- perf: build project root indexes on demand by @fansenze in #2270
- perf: load a lightweight plugin host in the CLI by @fansenze in #2272
- perf: share and streamline no-useless-assignment liveness by @fansenze in #2309
- perf: avoid eager indexing in typescript-eslint no-array-constructor by @fansenze in #2310
- perf: reduce no-global-assign lookup and scope scan costs by @fansenze in #2311
- perf(config): index entry-local literal ignores by @fansenze in #2312
- perf(config): reuse target discovery matches by @fansenze in #2319
- perf: avoid redundant no-unassigned-vars reference scans by @fansenze in #2318
- perf: avoid repeated scans in no-useless-continue by @fansenze in #2324
- perf: release completed lint generations by @fansenze in #2327
Bug Fixes 馃悶
- fix: preserve Unicode case-first sorting by @fansenze in #2247
- fix: align no-use-before-define with upstream by @fansenze in #2250
- fix: align array-type with upstream by @fansenze in #2253
- fix: align exhaustive-deps with upstream behavior by @fansenze in #2255
- fix: align consistent-type-exports with upstream by @fansenze in #2251
- fix: align import/order with upstream behavior by @fansenze in #2254
- fix: keep unmatched project files source-only by @fansenze in #2265
- fix(cli): skip Node compile cache in CI by @chenjiahan in #2331
- fix: preserve finally callback ranges through JSDoc casts by @fansenze in #2330
Refactor 馃敤
- refactor: share project identity checks by @fansenze in #2252
- refactor: share source-only gap compiler options by @fansenze in #2257
- refactor(jest): share call analysis across jest expect matcher rules by @elecmonkey in #2273
- refactor(jest): share call analysis across jest registration rules by @elecmonkey in #2275
- refactor(jest): share call analysis across jest callback and scope rules by @elecmonkey in #2277
- refactor(jest): remove the context-taking jest call parser entry points by @elecmonkey in #2280
Document 馃摉
- docs: add @vitest/eslint-plugin third-party notice by @elecmonkey in #2248
Other Changes
- chore: upgrade to Go 1.27 and golangci-lint 2.13.2 by @swwind in #2237
- chore(deps): upgrade rstack to 0.8.0 by @SoonIter in #2258
- ci: derive Windows Go parallelism from runner CPU quotas by @fansenze in #2233
- ci: log binary size report when cross-repo PR comments are forbidden by @elecmonkey in #2249
- ci: find binary size baselines across skipped main commits by @elecmonkey in #2256
- chore: bump tsgo packages to 0.0.15 by @CPunisher in #2271
- ci: select affected Go tests for pull requests by @fansenze in #2285
- ci: refine Go test selection and share Windows resource limits by @fansenze in #2294
- ci: schedule Windows Go tools by runner memory budget by @fansenze in #2329
New Contributors
- @aryan1306 made their first contribution in #2321
Full Changelog: v0.9.3...v0.9.4