# Changelog All notable changes to this package will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project does not adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) until v1.0.0. ## [0.9.10] - 2024-10-07 - 5a73a66 regular_expression: [**BREAKING**] Simplify public APIs (#6262) (leaysgur) ### Features - 376cc09 linter: Implement `no-throw-literal` (#6144) (dalaoshu) - 5957214 linter: Allow fixing in files with source offsets (#6197) (camchenry) - a089e19 linter: Eslint/no-else-return (#4305) (yoho) - 183739f linter: Implement prefer-await-to-callbacks (#6153) (dalaoshu) - ae539af linter: Implement no-return-assign (#6108) (Radu Baston) ### Bug Fixes - 9e9808b linter: Fix regression when parsing ts in vue files (#6336) (Boshen) - 93c6db6 linter: Improve docs and diagnostics message for no-else-return (#6327) (DonIsaac) - e0a3378 linter: Correct false positive in `unicorn/prefer-string-replace-all` (#6263) (H11) - ea28ee9 linter: Improve the fixer of `prefer-namespace-keyword` (#6230) (dalaoshu) - f6a3450 linter: Get correct source offsets for astro files (#6196) (camchenry) - be0030c linter: Allow whitespace control characters in `no-control-regex` (#6140) (camchenry) - e7e8ead linter: False positive in `no-return-assign` (#6128) (DonIsaac) ### Performance - ac0a82a linter: Reuse allocator when there are multiple source texts (#6337) (Boshen) - 50a0029 linter: Do not concat vec in `no-useless-length-check` (#6276) (camchenry) ### Documentation - 7ca70dd linter: Add docs for `ContextHost` and `LintContext` (#6272) (camchenry) - a949ecb linter: Improve docs for `eslint/getter-return` (#6229) (DonIsaac) - 14ba263 linter: Improve docs for `eslint-plugin-import` rules (#6131) (dalaoshu) ### Refactor - 642725c linter: Rename vars from `ast_node_id` to `node_id` (#6305) (overlookmotel) - 8413175 linter: Move shared function from utils to rule (#6127) (dalaoshu) - ba9c372 linter: Make jest/vitest rule mapping more clear (#6273) (camchenry) - 82b8f21 linter: Add schemars and serde traits to AllowWarnDeny and RuleCategories (#6119) (DonIsaac) - ea908f7 linter: Consolidate file loading logic (#6130) (DonIsaac) - db751f0 linter: Use regexp AST visitor in `no-control-regex` (#6129) (camchenry) - 3aa7e42 linter: Use RegExp AST visitor for `no-hex-escape` (#6117) (camchenry) - 9d5b44a linter: Use regex visitor in `no-regex-spaces` (#6063) (camchenry) - 0d44cf7 linter: Use regex visitor in `no-useless-escape` (#6062) (camchenry) - eeb8873 linter: Use regex visitor in `no-empty-character-class` (#6058) (camchenry) ### Testing - d883562 linter: Invalid `eslint/no-unused-vars` options (#6228) (DonIsaac) ## [0.9.9] - 2024-09-27 ### Bug Fixes - bd8f786 linter: Rule and generic filters do not re-configure existing rules (#6087) (DonIsaac) - c5cdb4c linter: Disable all rules in a plugin when that plugin gets turned off (#6086) (DonIsaac) - 6c855af linter: Only write fix results if source code has changed (#6096) (DonIsaac) - 8759528 linter: Category filters not re-configuring already-enabled rules (#6085) (DonIsaac) - c2616f7 linter: Fix panic in fixer for `oxc/only-used-in-recursion` (#6070) (camc314) - 3da3845 linter: Malformed snippets in `eslint/for-direction` docs (#6060) (DonIsaac) - c047d42 linter: `no-useless-escape`: do not crash on backslash character (#6048) (camchenry) - 6f76ebe linter: Ignore invalid or partial disable directives (#6045) (camchenry) - 09a24cd linter: Fix false positives for generics in `no-unexpected-multiline` (#6039) (camchenry) - d05fd20 linter: Newline in type parameters causing false positive in `no-unexpected-multiline` (#6031) (DonIsaac) ### Performance - f8464a3 linter: `no-magic-numbers` remove redudant checks in `is_array_index` (#6033) (Alexander S.) - c16ae60 linter: `jest/prefer-hooks-in-order`: rewrite rule to allocate less and iterate fewer times (#6030) (camchenry) ### Documentation - a4fdf1b linter: Improve docs for promise rules (#6051) (dalaoshu) - 21cdb78 linter: Fix incorrect "bad" example in `only-used-in-recursion` (#6029) (Boshen) ### Refactor - 1f92d61 linter: `jest/prefer-hooks-in-order`: improve diagnostic messages (#6036) (camchenry) ### Testing - 55949eb linter: Add `OxlintRules::override_rules` tests (#6081) (DonIsaac) - 1a6923a linter: Add filter parsing test cases (#6080) (DonIsaac) - 58d333a linter: Add more test cases for disable directives (#6047) (camchenry) ## [0.9.8] - 2024-09-24 ### Bug Fixes - e3c8a12 linter: Fix panic in sort-keys (#6017) (Boshen) - 4771492 linter: Fix `import/no_cycle` with `ignoreTypes` (#5995) (Boshen) ### Performance - 5ae3f36 linter: `no-fallthrough`: Use string matching instead of Regex for default comment pattern (#6008) (camchenry) - 2b17003 linter, prettier, diagnostics: Use `FxHashMap` instead of `std::collections::HashMap` (#5993) (camchenry) ## [0.9.7] - 2024-09-23 ### Features - d24985e linter: Add `oxc-security/api-keys` (#5906) (DonIsaac) - f9b44c5 linter: Add unicode sets support to `no-useless-escape` rule (#5974) (camchenry) - 0f19848 linter: Implement `no-unexpected-multiline` rule (#5911) (camchenry) - 16fe383 linter: Implement `no-extend-native` rule (#5867) (Cam McHenry) ### Bug Fixes - eed9ac7 linter: Include actual span size in `no-regex-spaces` diagnostic (#5957) (camchenry) - 40c89c2 linter: Move `promise/avoid-new` to style category (#5961) (DonIsaac) ### Performance - 608d637 linter: Use `aho-corasick` instead of `regex` for string matching in `jsx-a11y/img-redundant-alt` (#5892) (camchenry) - 3148d4b linter: Check file path after checking node kind for `nextjs/no-head-element` (#5868) (Cam McHenry) ### Refactor - 0a5a4a9 linter: Use parsed patterns for `unicorn/no-hex-escape` (#5985) (camchenry) - 2cf2edd linter: Use parsed patterns in `no-empty-character-class` rule (#5980) (camchenry) - a9a8e2a linter: Use regex parser in `eslint/no-regex-spaces` (#5952) (camchenry) - 05f592b linter: Use parsed patterns in `unicorn/prefer-string-starts-ends-with` (#5949) (camchenry) - 3273b64 linter: Use parsed patterns for `unicorn/prefer-string-replace-all` rule (#5943) (camchenry) - ba7b01f linter: Add `LinterBuilder` (#5714) (DonIsaac) - db4f16a semantic: Call `with_trivias` before `build_with_jsdoc` (#5875) (Boshen) - 3d13c6d semantic: Impl `IntoIterator` for `&AstNodes` (#5873) (DonIsaac) ### Testing - b681c9a linter: Import test cases for `no-empty-character-class` (#5981) (camchenry) - 767602b linter: Add regression test for #5227 (#5975) (camchenry) ## [0.9.6] - 2024-09-18 ### Features - 3bf7b24 linter: Make `typescript/no-duplicate-enum-values` a `correctness` rule (#5810) (DonIsaac) - 7799c06 linter/react: Implement `no-danger-with-children` rule (#5420) (Cam McHenry) ### Bug Fixes - f942485 linter: Remove all* remaining "Disallow " messages (#5812) (DonIsaac) - b5ad518 linter: Improve diagnostic messages for various lint rules (#5808) (DonIsaac) - 858f7af linter: Plugin prefix name for eslint-plugin-node (#5807) (DonIsaac) - 737ba1d linter: Fix some cases on ```AssignmentExpression``` for ```unicorn/consistent-function-scoping``` (#5675) (Arian94) - 148c7a8 linter: Replace bitwise AND (&) with logical AND (&&) in explici… (#5780) (kaykdm) - b4ed564 linter/no-unused-vars: Writes to members triggering false positive (#5744) (Dunqing) - e9c084a linter/no-unused-vars: False positive when a variable used as a computed member property (#5722) (Dunqing) ### Performance - 3725d5d linter: Make all rules share a diagnostics vec (#5806) (DonIsaac) - e978567 linter: Shrink size of `DisableDirectives` (#5798) (DonIsaac) - 1bfa515 linter: Remove redundant clone of diagnostics in context (#5797) (DonIsaac) - e413cad linter: Move shared context info to `ContextHost` (#5795) (DonIsaac) ### Refactor - 6dd6f7c ast: Change `Comment` struct (#5783) (Boshen) - 7caae5b codegen: Add `GetSpan` requirement to `Gen` trait (#5772) (Boshen) - 026ee6a linter: Decouple module resolution from import plugin (#5829) (dalaoshu) - 50834bc linter: Move `override_rule` to `OxlintRules` (#5708) (DonIsaac) - a438743 linter: Move `OxlintConfig` to `Oxlintrc` (#5707) (DonIsaac) - f61e8b5 linter: Impl serde and schemars traits for `LintPlugins` (#5706) (DonIsaac) - 20a7861 linter: Shorten `Option` syntax (#5735) (overlookmotel) - d8b612c oxc_linter: Prefer pass Enum instead of str `no_plus_plus` (#5730) (IWANABETHATGUY) - cc0408b semantic: S/AstNodeId/NodeId (#5740) (Boshen) ## [0.9.5] - 2024-09-12 ### Features - 4b04f65 linter: Implement `no-plusplus` rule (#5570) (Cam McHenry) ## [0.9.4] - 2024-09-12 - 1fa3e56 semantic: [**BREAKING**] Rename `SymbolTable::iter` to `symbol_ids` (#5621) (overlookmotel) - 4a8aec1 span: [**BREAKING**] Change `SourceType::js` to `SourceType::cjs` and `SourceType::mjs` (#5606) (Boshen) ### Features - 9ca2593 linter: Eslint/sort-keys (#4845) (Na'aman Hirschfeld) - 023c160 linter: Impl `Serialize` for `OxlintConfig` (#5594) (DonIsaac) - 24d6a47 linter: Implement `eslint/no-invalid-regexp` (#5443) (Boshen) - c6bbf94 minifier: Constant fold unary expression (#5669) (Boshen) ### Bug Fixes - af6d240 linter: Panic in consistent-function-scoping (#5613) (DonIsaac) - 54e2e76 linter: `react/no_set_state` + `react/no_string_refs` rules find correct parent (#5615) (overlookmotel) - 3b87ac4 linter: Fix no_unused_vars panic when encountering unicode (#5582) (Boshen) ### Performance - bfe9186 linter: Use `cow_replace` instead of `replace` (#5643) (dalaoshu) - e3ae5db linter: Use cow_to_ascii_lowercase/uppercase (#5637) (heygsc) - a0370bf linter: Use cow_utils in no_script_url (#5633) (heygsc) - 37e922c linter: `eslint/no_shadow_restricted_names` use `run_on_symbol` (#5618) (overlookmotel) - 0b7fccf linter: `react/no_set_state` + `react/no_string_refs` rules reduce iteration over ancestors (#5616) (overlookmotel) - 2c3f3fe linter: Make `jsx_key` slightly faster (#5585) (Boshen) - cd81d12 linter: Add `should_run` to check path only once to nextjs/no_typos (#5584) (Boshen) - d18c896 rust: Use `cow_utils` instead (#5664) (dalaoshu) ### Documentation - 64f9575 linter: Add plugin usage to example with configuration (Boshen) - 8c9179d linter: Fix typos (#5591) (Brian Donovan) ### Refactor - 9e9435f linter: Add `LintFilter` (#5685) (DonIsaac) - 4f70fe5 linter: Start internal/external split of LintPluginOptions (#5660) (DonIsaac) - 5ae9b48 linter: Start internal/external split of `OxlintOptions` (#5659) (DonIsaac) - c8bc6f0 linter: Use `std::ptr::eq` (#5649) (overlookmotel) - a37c064 linter: Use `ContentHash` for `no_duplicate_case`; remove `calculate_hash` (#5648) (Boshen) - 0b3c1d7 linter: Start internal/external split of `OxlintConfig` (#5595) (DonIsaac) - 89bdf55 linter: Inline `Rule` trait default methods (#5619) (overlookmotel) - afea8d5 linter: Rename `Rule` trait method params (#5617) (overlookmotel) - 4e748b5 linter: Replace ast "compare by hash" to "compare by content" (#5602) (dalaoshu) - bac03e3 linter: Make fields of `LintServiceOptions` private (#5593) (DonIsaac) - 2661d8b linter: Jest prefer_strict_equal (#5588) (IWANABETHATGUY) - 067f9b5 semantic: Introduce `IsGlobalReference` trait (#5672) (Boshen)- 26d9235 Enable clippy::ref_as_ptr (#5577) (夕舞八弦) ### Testing - 8e79f8d linter: Add class method test cases for `oxc/no-async-await` (#5550) (DonIsaac) - 3835189 linter: Add test case for no_unused_vars in 3b87ac4 (Boshen) - 5f27551 linter: Add a passing case to no_undef (#5580) (Boshen) ## [0.9.3] - 2024-09-07 - b060525 semantic: [**BREAKING**] Remove `source_type` argument from `SemanticBuilder::new` (#5553) (Boshen) - cba93f5 ast: [**BREAKING**] Add `ThisExpression` variants to `JSXElementName` and `JSXMemberExpressionObject` (#5466) (overlookmotel) - 87c5df2 ast: [**BREAKING**] Rename `Expression::without_parentheses` (#5448) (overlookmotel) - 1aa49af ast: [**BREAKING**] Remove `JSXMemberExpressionObject::Identifier` variant (#5358) (Dunqing) ### Features - 90facd3 ast: Add `ContentHash` trait; remove noop `Hash` implementation from `Span` (#5451) (rzvxa) - 59abf27 ast, parser: Add `oxc_regular_expression` types to the parser and AST. (#5256) (rzvxa) - be3a432 linter: Implement typescript/no-magic-numbers (#4745) (Alexander S.) - 09aa86d linter/eslint: Implement `sort-vars` rule (#5430) (Jelle van der Waa) - 2ec2f7d linter/eslint: Implement no-alert (#5535) (Edwin Lim) - a786acf linter/import: Add no-dynamic-require rule (#5389) (Jelle van der Waa) - 4473779 linter/node: Implement no-exports-assign (#5370) (dalaoshu) - b846432 linter/oxc: Add fixer for `erasing-op` (#5377) (camc314) - aff2c71 linter/react: Implement `self-closing-comp` (#5415) (Jelle van der Waa) ### Bug Fixes - 0df1d9d ast, codegen, linter: Panics in fixers. (#5431) (rzvxa) - cdd1a91 linter: Typescript/no-magic-numbers: remove double minus for reporting negative bigint numbers (#5565) (Alexander S.) - ff88c1f linter: Don't mark binding rest elements as unused in TS function overloads (#5470) (Cam McHenry) - 088733b linter: Handle loops in `getter-return` rule (#5517) (Cam McHenry) - 82c0a16 linter: `tree_shaking/no_side_effects_in_initialization` handle JSX correctly (#5450) (overlookmotel) - 6285a02 linter: `eslint/radix` rule correctly check for unbound symbols (#5446) (overlookmotel) - c8ab353 linter/tree-shaking: Align JSXMemberExpression's report (#5548) (mysteryven) - 5187f38 linter/tree-shaking: Detect the correct export symbol resolution (#5467) (mysteryven) ### Performance - 8170954 linter/react: Add should_run conditions for react rules (#5402) (Jelle van der Waa) ### Documentation - a540215 linter: Update docs `Examples` for linter rules (#5513) (dalaoshu) - 7414190 linter: Update docs `Example` for linter rules (#5479) (heygsc) ### Refactor - 0ac420d linter: Use meaningful names for diagnostic parameters (#5564) (Don Isaac) - 81a394d linter: Deduplicate code in `oxc/no-async-await` (#5549) (DonIsaac) - 979c16c linter: Reduce nested if statements in eslint/no_this_before_super (#5485) (IWANABETHATGUY) - 1d3e973 linter: Simplify `eslint/radix` rule (#5445) (overlookmotel) - fdb8857 linter: Use "parsed pattern" in `no_div_regex` rule. (#5417) (rzvxa) - 2ccbd93 linter: `react/jsx_no_undef` rule `get_member_ident` do not return Option (#5411) (overlookmotel) ### Styling - 2a43fa4 linter: Introduce the writing style from PR #5491 and reduce the if nesting (#5512) (dalaoshu)- d8b29e7 Add trailing line breaks to JSON files (#5544) (overlookmotel)- 694f032 Add trailing line breaks to `package.json` files (#5542) (overlookmotel) ### Testing - 340b535 linter/no-unused-vars: Arrow functions in tagged templates (#5510) (Don Isaac) - af69393 linter/no-useless-spread: Ensure spreads on identifiers pass (#5561) (DonIsaac)- dc92489 Add trailing line breaks to conformance fixtures (#5541) (overlookmotel) ## [0.9.2] - 2024-09-02 - 32f7300 ast: [**BREAKING**] Add `JSXElementName::IdentifierReference` and `JSXMemberExpressionObject::IdentifierReference` (#5223) (Dunqing) ### Features - 180b1a1 ast: Add `Function::name()` (#5361) (DonIsaac) - f81e8a1 linter: Add `oxc/no-async-endpoint-handlers` (#5364) (DonIsaac) - b103737 linter: Improve no-accumulating-spread (#5302) (camc314) - 9c22ce9 linter: Add hyperlinks to diagnostic messages (#5318) (DonIsaac) - 1967c67 linter/eslint: Implement no-new-func (#5360) (dalaoshu) - b867e5f linter/eslint-plugin-promise: Implement catch-or-return (#5121) (Jelle van der Waa) - 8d781e7 linter/oxc: Differentiate between array/object in `no-accumulating-spread` loop diagnostic (#5375) (camc314) - db55444 linter/oxc: Add fixer for `double-comparisons` (#5378) (camc314) - e5c755a linter/promise: Add `spec-only` rule (#5124) (Jelle van der Waa) - 4c0861f linter/unicorn: Add fixer for `prefer-type-error` (#5311) (camc314) - 084c2d1 linter/vitest: Implement prefer-to-be-object (#5321) (dalaoshu) ### Bug Fixes - 11b93af linter/unicorn: Consistent-function-scoping false positive on assignment expression (#5312) (Arian94) ### Performance - f052a6d linter: `react/jsx_no_undef` faster check for unbound references (#5349) (overlookmotel) - 05636b7 linter: Avoid unnecessary work in `jsx_a11y/anchor_is_valid` rule (#5341) (overlookmotel) ### Refactor - afb038e linter: `react/jsx_no_undef` use loop instead of recursion (#5347) (overlookmotel) - fe62687 linter: Simplify skipping JSX elements in `unicorn/consistent_function_scoping` (#5351) (overlookmotel) - 381d9fe linter: Shorten code in `react/jsx_no_useless_fragment` (#5350) (overlookmotel) - 83b9a82 linter: Fix indentation in `nextjs/no_script_component_in_head` rule (#5338) (overlookmotel) - 89f0188 linter: Improve docs for `react/jsx_no_target_blank` rule (#5342) (overlookmotel) - 57050ab linter: Shorten code in `jsx_a11y/aria_activedescendant_has_tabindex` rule (#5340) (overlookmotel) - ed31d67 linter/jest: Fix indentation in code comment (#5372) (camc314) - 2499cb9 linter/oxc: Update rule docs for `erasing-op` (#5376) (camc314) - 69493d2 linter/oxc: Improve diagnostic for `no-accumulating-spread` in loops (#5374) (camc314) - 024b585 linter/oxc: Improve code comment for `no-accumulating-spread` (#5373) (camc314) - 3ae94b8 semantic: Change `build_module_record` to accept &Path instead of PathBuf (Boshen) ## [0.9.1] - 2024-08-29 - 234a24c ast: [**BREAKING**] Merge `UsingDeclaration` into `VariableDeclaration` (#5270) (Kevin Deng 三咲智子) ### Features - 6633972 linter: Add fixer for `no-empty` (#5276) (camc314) - a58e448 linter/eslint: Add fixer to `no-var` (#5144) (camc314) - a6e9769 linter/jsx-a11y: Add `label-has-associated-control` (#5163) (Billy Levin) - c8e8532 linter/unicorn: Add fixer to `throw-new-error` (#5275) (camc314) - 7ccde4b linter/unicorn: Add fixer to `prefer-date-now` (#5147) (camc314) ### Bug Fixes - 76e86f8 linter: Eslint-plugin-unicorn prefer-spread wrong linter suggestion on variables of type string (#5265) (Arian94) - b39544e linter/jest: Fixer for `prefer-jest-mocked` creates invalid LHS expressions (#5243) (camc314) - 9953fa5 linter/no-null: Incorrect fixer for `NullLiteral` within `ReturnStatement` (#5247) (Dunqing) - 318479e linter/no-unused-vars: Mark the class/function in the new expression as used (#5306) (magic-akari) ### Refactor - fa1d460 linter: Clean up Fixer and Message (#5308) (DonIsaac) ## [0.9.0] - 2024-08-26 - 5946748 linter: [**BREAKING**] Parse and display syntax errors for regular expressions (#5214) (Boshen) - b894d3b linter: [**BREAKING**] Make `no-unused-vars` correctness (#5081) (DonIsaac) ### Features - 1ce9630 linter/config: Implement FromIterator for LintPluginOptions (#5102) (DonIsaac) - 34bfaf6 linter/react: Add fixer to `jsx-props-no-spread-multi` (#5145) (camc314) - 982bd6e linter/unicorn: Add fixer to `require-array-join-separator` (#5152) (camc314) - a6704bd linter/unicorn: Add fixer to `prefer-set-size` (#5149) (camc314) - ac7edcc linter/unicorn: Add fixer to `prefer-array-some` (#5153) (camc314) - 1d01aa3 linter/unicorn: Add partial fixer for `prefer-array-flat` (#5143) (camc314) - 22d57f9 linter/unicorn: Add fixer to `prefer-string-slice` (#5150) (Cameron) - 2fe4415 linter/unicorn: Add fixer to `no-redundant-roles` (#5146) (Cameron) - d35c6f5 linter/unicorn: Add fixer to `prefer-regexp-test` (#5151) (Cameron) - 27db769 linter/unicorn: Add fixer to `text-encoding-identifier-case` (#5154) (Cameron) - f7958c4 linter/unicorn: Add prefer-structured-clone (#5095) (Jelle van der Waa) - 004ffa0 linter/vitest: Implement `prefer-each` (#5203) (dalaoshu) ### Bug Fixes - aaaf26c linter: Error in fixer for prefer-to-have-length (#5197) (dalaoshu) - 1f5b6b6 linter: Bug in fixer for prefer-to-have-length (#5164) (dalaoshu) - 7eb052e linter: `no-hex-escape` fixer removing regex flags (#5137) (Cameron) - 76c66b4 linter/max-lines: Point span to end of file for disable directive to work (#5117) (Boshen) - 8ff6f2c linter/no-unused-vars: Panic on UsingDeclarations (#5206) (DonIsaac) - d29042e linter/no-unused-vars: Function expression in implicit arrow function return (#5155) (DonIsaac) - 36e4a28 linter/no-unused-vars: Panic in variable declarator usage checks (#5160) (DonIsaac) - ba62a71 linter/react: Fixed false positive with missing key inside React.Children.toArray() for fragments (#5133) (Earl Chase) - fd1031a linter/unicorn: Breaking fixer in case statements for `no-null` (#5176) (DonIsaac) - 7b86ed6 linter/unicorn: Handle type casts and parens in `no-null` (#5175) (Don Isaac) - b629e16 linter/unicorn: Improve diagnostic message for `no-null` (#5172) (DonIsaac) ### Performance - ce454cf Use simdutf8 to validate UTF-8 when reading files (#5196) (dalaoshu) ### Refactor - 543cad6 codegen: Remove some pub APIs (Boshen) - 0d3661a linter: Remove meaningless `span0` (#5209) (dalaoshu) - 2a91ef1 linter: `eslint/no_redeclare` rule use `run_on_symbol` not `run_once` (#5201) (overlookmotel) - 33599b0 linter: Split options into multiple files (#5101) (DonIsaac) - 7ab6152 linter/unicorn: Clean up `no-null` (#5174) (DonIsaac) ### Testing - a877e5a linter/no-unused-vars: Ensure type annotations on property accessors are considered used (#5183) (DonIsaac) - 7886618 linter/unicorn: Add fixer tests for `no-null` (#5173) (DonIsaac) ## [0.8.0] - 2024-08-23 - 5f4c9ab semantic: [**BREAKING**] Rename `SymbolTable::get_flag` to `get_flags` (#5030) (overlookmotel) - ce4d469 codegen: [**BREAKING**] Remove const generic `MINIFY` (#5001) (Boshen) - b2ff2df parser: [**BREAKING**] Remove builder pattern from `Parser` struct (#5000) (Boshen) - f88970b ast: [**BREAKING**] Change order of fields in CallExpression (#4859) (Burlin) ### Features - 2292606 linter: Typescript-eslint/no-wrapper-object-types (#5022) (camc314) - a0effab linter: Support more flexible config.globals values (#4990) (Don Isaac) - cdbfcfb linter: Start import fixer for eslint/no-unused-vars (#4849) (DonIsaac) - 915cb4d linter: Add dangerous fixer for oxc only used in recursion (#4805) (camc314) - 3f28c77 linter/eslint: Improve no-dupe-keys (#4943) (DonIsaac) - e1582a5 linter/eslint: Improve no-duplicate-case rule (#4942) (DonIsaac) - f1e4611 linter/eslint-plugin-vitest: Implement no-conditional-in-test (#4971) (dalaoshu) - 14bf5d5 linter/eslint-plugin-vitest: Implement no-restricted-vi-methods (#4956) (dalaoshu) - ed9a1c4 linter/eslint-plugin-vitest: Implement require-local-test-context-for-concurrent-snapshots (#4951) (dalaoshu) - 7859f58 linter/eslint-plugin-vitest: Implement no-conditional-tests (#4955) (dalaoshu) - 841174f linter/no-unused-vars: Delete non-root arrows, skip `await` (#5083) (Don Isaac) ### Bug Fixes - 86d0c0c linter: Change consistent-function-scoping to suspicious (#5010) (DonIsaac) - 7b99386 linter: Missing closing ticks in some example blocks (#4994) (DonIsaac) - 9c64b12 linter: Improve no-zero-fractions rule for member expressions and scientific notation (#4793) (Burlin) - c43945c linter/consistent-function-scoping: Allow functions passed as arguments (#5011) (Don Isaac) - 9354779 linter/no-unused-vars: Give `argsIgnorePattern` the same default behavior as `varsIgnorePattern` (#5018) (DonIsaac) - 5a55dcf linter/no-unused-vars: `type` specifier not deleted for type imports (#5029) (DonIsaac) - 4081293 linter/no-unused-vars: Panic in fixer when removing destructures (#4923) (Don Isaac) - ddf83ff linter/react: Fixed false positive with missing key inside React.Children.toArray() (#4945) (Earl Chase) - 508644a linter/tree-shaking: Correct the calculation of `>>`, `<<` and `>>>` (#4932) (mysteryven) - e99836d linter/unicorn: Allow set spreading in no-useless-spread (#4944) (Don Isaac) - 5f8a7c2 oxlint: Rules in the configuration file are not being correctly … (#4949) (dalaoshu) ### Documentation - e331ca0 linter: Improve documentation for several rules (#4997) (DonIsaac) - cd9f1cd linter/consistent-function-scoping: Improve rule documentation (#5015) (DonIsaac) ### Refactor - eca6fdb linter: Move plugin options into separate struct (#5100) (DonIsaac) - 06f2d81 linter: Avoid unnecessary temp `Vec`s (#4963) (overlookmotel) - 4cb8c37 linter: Move default_true to utils (#4947) (Don Isaac) - ca70cc7 linter, mangler, parser, semantic, transformer, traverse, wasm: Rename various `flag` vars to `flags` (#5028) (overlookmotel) - 59d15c7 semantic: `root_unresolved_references` contain only `ReferenceId` (#4959) (overlookmotel) ### Testing - c21d735 linter/no-unused-vars: Add ignored destructuring test cases (#4922) (Don Isaac) ## [0.7.2] - 2024-08-15 ### Features - 97e38cd linter: Add fixer for unicorn/prefer-optional-catch-binding (#4867) (heygsc) - 93ae1c7 linter: Eslint-plugin-react jsx-props-no-spread-multi (#4866) (keita hino) - 0a23610 linter: Add fixer for unicorn/prefer-array-flat-map (#4844) (heygsc) - 13c7b1b linter/jsx-a11y: Add fixer for aria-unsupported-elements (#4854) (DonIsaac) - a6195a6 linter/jsx-a11y: Add fixer for anchor-has-content (#4852) (DonIsaac) - 4d28d03 task/website: Support render `subschemas.all_of` (#4800) (mysteryven) ### Bug Fixes - 21f5762 codegen: Minify large numbers (#4889) (Boshen) - a08d7a7 linter/jsx-a11y: Reduce false negatives for html-has-lang (#4855) (DonIsaac) - a81ce3a linter/no-unused-vars: Do not delete function expressions when fixing (#4848) (DonIsaac) ### Refactor - 56f033c linter: Improve diagnostics for several jsx-a11y rules (#4853) (DonIsaac) - c53c210 linter/no-unused-vars: Split fixer logic into multiple files (#4847) (DonIsaac) ## [0.7.1] - 2024-08-12 ### Features - 3d40528 linter: Add fix emoji to rules table and doc pages (#4715) (DonIsaac) - d2734f3 linter: Start fixer for no-unused-vars (#4718) (DonIsaac) - 070ae53 linter: Add fixer for unicorn prefer-string-replace-all (#4801) (camc314) - b3c3125 linter: Overhaul unicorn/no-useless-spread (#4791) (DonIsaac) - 5992b75 linter: Implement `eslint-plugin-promise/no-return-in-finally, prefer-await-to-then` rule (#4318) (Jelle van der Waa) - b259f47 linter: Add fixer for unicorn/no-length-as-slice-end (#4780) (heygsc) - abd83fa linter: Add fixer for jsx_ally/no_aria_hidden_on_focusable (#4772) (heygsc) - b20e335 linter: Add fixer for eslint/no-eq-null (#4758) (heygsc) - 2f6c3b9 linter: Add fixer for eslint/no-compare-neg-zero (#4748) (heygsc) - eaddc8f linter: Add fixer for eslint/func_names (#4714) (DonIsaac) - 80557a9 linter: Add fixer for eslint/for-direction (#4679) (heygsc) - c3c5766 linter/eslint-plugin-promise: Implement valid-params (#4598) (Jelle van der Waa) - c509a21 linter/eslint-plugin-vitest: Implement prefer-to-be-falsy (#4770) (dalaoshu) - 41f861f linter/eslint-plugin-vitest: Implement prefer-to-be-truthy (#4755) (dalaoshu) - cc922f4 vscode: Provide config's schema to oxlint config files (#4826) (Don Isaac) - f629514 website: Auto-generate rule docs pages (#4640) (DonIsaac) ### Bug Fixes - b22ed45 linter: Improve prefer_namespace_keyword rule (#4751) (Burlin) - db68a6c linter: Fixer for eslint/for-direction (#4727) (heygsc) - 6273994 linter: Block in eslint/no_cond_assign (#4721) (heygsc) - b9d6aa5 linter: Fix false positives in no-confusing-non-null-assertion (#4665) (Renée) - cbf08d2 linter: Skip no-multi-str on jsx attributes (#4666) (heygsc) - a6f9f96 linter: No unused errors should be warnings (Boshen) - 7345bc9 linter/func-names: Handle ts accessibility when reporting missing names (#4713) (DonIsaac) ### Performance - d191823 linter: Optmize allocations in jest fn parsing (#4787) (lucab) - e3abdfa linter: Reduce String allocations and clones (#4673) (DonIsaac) ### Documentation - 4b7dfd6 linter: Correct docs for no-unused-vars (#4716) (Don Isaac) ### Refactor - 096ac7b linter: Clean up jsx-a11y/anchor-is-valid (#4831) (DonIsaac) - 15a0fd4 linter: Use Option to reduce nested level in `eslint/getter-return` (#4814) (IWANABETHATGUY) - 63f274c linter: Simplify NoObjCalls resolution logic (#4765) (lucab) - 6708680 linter: Replace Windows-style line breaks with Unix-style in test fixture (#4768) (overlookmotel) - e285903 linter: Clean up eslint/func_names (#4710) (DonIsaac) ### Testing - 8f2a566 linter: Ensure rule docs have valid syntax (#4644) (DonIsaac) - 4dd29db linter: Add fixer test for unicorn/no-zero-fractions (#4783) (heygsc) ## [0.7.0] - 2024-08-05 - 85a7cea semantic: [**BREAKING**] Remove name from `reference` (#4329) (Dunqing) ### Features - aaee07e ast: Add `AstKind::AssignmentTargetPattern`, `AstKind::ArrayAssignmentTarget` and `AstKind::ObjectAssignmentTarget` (#4456) (Dunqing) - 9df7b56 jsx-a11y/no-autofocus: Implement fixer support (#4171) (Jelle van der Waa) - b87bf70 linter: Add fix capabilties to existing lint rules (#4560) (DonIsaac) - ddd8b27 linter: Support conditional fix capabilities (#4559) (DonIsaac) - b952942 linter: Add eslint/no-unused-vars (⭐ attempt 3.2) (#4445) (DonIsaac) - 6543958 linter: Add auto-fix metadata to RuleMeta (#4557) (Don Isaac) - 85e8418 linter: Add react/jsx-curly-brace-presence (#3949) (Don Isaac) - 4c4da56 linter: Add typescript-eslint/prefer-keyword-namespce (#4438) (Aza Walker) - d8c2a83 linter: Eslint-plugin-vitest/no-import-node-test (#4440) (cinchen) - e3b0c40 linter: Eslint-plugin-vitest/no-identical-title (#4422) (cinchen) - c936782 linter: Eslint-plugin-vitest/no-conditional-expect (#4425) (cinchen) - 27fdd69 linter: Eslint-plugin-vitest/no-commented-out-tests (#4424) (cinchen) - 51f5025 linter: Add fixer for unicorn/prefer-string-starts-ends-with (#4378) (DonIsaac) - 3c0c709 linter: Add typescript-eslint/no-extraneous-class (#4357) (Jaden Rodriguez) - 7afa1f0 linter: Support suggestions and dangerous fixes (#4223) (DonIsaac) - acc5729 linter: Eslint-plugin-vitest/expect-expect (#4299) (cinchen) - 2213f93 linter: Eslint-plugin-vitest/no-alias-methods (#4301) (cinchen) - c296bc3 linter/eslint: Implement func-names (#4618) (Alexander S.) - e116ae0 linter/eslint: Implement fixer for prefer-numeric-literals (#4591) (Jelle van der Waa) - eaf834f linter/eslint: Implement prefer-numeric-literals (#4109) (Jelle van der Waa) - db2fd70 linter/eslint-plugin-promise: Implement no-webpack-loader-syntax (#4331) (Jelle van der Waa) - 5f1e070 linter/eslint-plugin-unicorn: Add fixer for prefer-code-point (#4353) (Jelle van der Waa) - ed49e16 linter/eslint-plugin-unicorn: Implement fixer for prefer-dom-node-append (#4306) (Jelle van der Waa) - e2b15ac linter/react: Implement react-jsx-boolean-value (#4613) (Jelle van der Waa) - 68efcd4 linter/react-perf: Handle new objects and arrays in prop assignment patterns (#4396) (DonIsaac) ### Bug Fixes - 368112c ast: Remove `#[visit(ignore)]` from `ExportDefaultDeclarationKind`'s `TSInterfaceDeclaration` (#4497) (Dunqing) - d384f60 ci: Remove unused(?) .html file (#4545) (Yuji Sugiura) - 06aec77 linter: Invalid binary expression with overflow (#4647) (DonIsaac) - b2da22b linter: Invalid tags in rule docs (#4646) (DonIsaac) - 94440ad linter: Panic on invalid lang in `a11y/lang`. (#4630) (rzvxa) - e0b03f8 linter: Improve the boundary for eslint/for-direction (#4590) (heygsc) - 70b8cfa linter: Missing return in no-obj-calls recursion (#4594) (DonIsaac) - fe1356d linter: Change no-unused-vars to nursery (#4588) (DonIsaac) - 72337b1 linter: Change typescript-eslint/no-namespace to restriction (#4539) (Don Isaac) - 289dc39 linter: Overflow in no-obj-calls (#4397) (DonIsaac) - a664715 linter/eslint: Fix invalid regexp in no_regex_spaces test (#4605) (Yuji Sugiura) - 74fa75a linter/eslint: Drop quotes around max-params lint warning (#4608) (Jelle van der Waa) - 9fcd9ae linter/eslint: Fix invalid regexp in no_control_regex test (#4544) (leaysgur) - ac08de8 linter/react_perf: Allow new objects, array, fns, etc in top scope (#4395) (DonIsaac) - 73d2558 oxlint: Fix oxlint failed to build due to missing feature (Boshen) ### Performance - 6ff200d linter: Change react rules and utils to use `Cow` and `CompactStr` instead of `String` (#4603) (DonIsaac) - f259df0 linter: Make img-redundant-alt only build a regex once (#4604) (DonIsaac) - 7585e16 linter: Remove allocations for string comparisons (#4570) (DonIsaac) - b60bdf1 linter: `no_shadow_restricted_names` only look up name in hashmap once (#4472) (overlookmotel) - 81384f5 linter: Avoid unnecessary work in `nextjs:no_duplicate_head` rule (#4465) (overlookmotel) - f7da22d linter: Disable lint rules by file type (#4380) (DonIsaac) - 348c1ad semantic: Remove `span` field from `Reference` (#4464) (overlookmotel) - 6a9f4db semantic: Reduce storage size for symbol redeclarations (#4463) (overlookmotel)- a207923 Replace some CompactStr usages with Cows (#4377) (DonIsaac) ### Refactor - 7a75e0f linter: Use diagnostic codes in lint rules (#4349) (DonIsaac) - ccb1835 semantic: Methods take `Span` as param, not `&Span` (#4470) (overlookmotel) - 7cd53f3 semantic: Var hoisting (#4379) (Dunqing) - c99b3eb syntax: Give `ScopeId` a niche (#4468) (overlookmotel) ## [0.6.1] - 2024-07-17 ### Features - 83c2c62 codegen: Add option for choosing quotes; remove slow `choose_quot` method (#4219) (Boshen) - 1f8968a linter: Add eslint-plugin-promise rules: avoid-new, no-new-statics, params-names (#4293) (Jelle van der Waa) - a4dc56c linter: Add fixer for unicorn/no_useless_promise_resolve_reject (#4244) (Burlin) - 6fb808f linter: Add typescript-eslint/no-confusing-non-null-assertion (#4224) (Jaden Rodriguez) - 126b66c linter: Support eslint-plugin-vitest/valid-describe-callback (#4185) (cinchen) - 05b9a73 linter: Support eslint-plugin-vitest/valid-expect (#4183) (cinchen) - 3e56b2b linter: Support eslint-plugin-vitest/no-test-prefixes (#4182) (cinchen) - 3016f03 linter: Let fixer functions return a `None` fix (#4210) (DonIsaac) - bbe6137 linter: Implement unicorn/no-useless-undefined (#4079) (Burlin) - 20cdb1f semantic: Align class scope with typescript (#4195) (Dunqing) ### Bug Fixes - 9df60da linter: Correct find first non whitespace logic in @typescript-eslint/consistent-type-imports (#4198) (mysteryven) - 67240dc linter: Not ignore adjacent spans when fixing (#4217) (mysteryven) - dd07a54 linter: Global variables should always check the builtin variables (#4209) (Jelle van der Waa) - 351ecf2 semantic: Incorrect resolve references for `TSTypeQuery` (#4310) (Dunqing) - 1108f2a semantic: Resolve references to the incorrect symbol (#4280) (Dunqing) ### Performance - 0fdc88b linter: Optimize no-dupe-keys (#4292) (lucab) ### Refactor - 2c7bb9f ast: Pass final `ScopeFlags` into `visit_function` (#4283) (overlookmotel) - aa22073 codegen: Improve print API (#4196) (Boshen) - b5a8f3c linter: Use get_first_parameter_name from unicorn utils (#4255) (Jelle van der Waa) - 7089a3d linter: Split up fixer code into separate files (#4222) (DonIsaac) - ace4f1f semantic: Update the order of `visit_function` and `Visit` fields in the builder to be consistent (#4248) (Dunqing) - 7f1addd semantic: Correct scope in CatchClause (#4192) (Dunqing) ## [0.6.0] - 2024-07-11 - 5731e39 ast: [**BREAKING**] Store span details inside comment struct (#4132) (Luca Bruno) ### Features - fb549e1 linter: Add vitest/no-focused-tests rule (#4178) (mysteryven) - 6c49007 linter: Add fixer for @typescript-eslint/consistent-type-imports (#3984) (mysteryven) - 278c3e9 linter: Add fixer for jsx-a11y/aria-props (#4176) (DonIsaac) - 2188144 linter: Eslint-plugin-jest/prefer-hooks-in-order (#4052) (cinchen) - cc58614 linter: Better schemas for allow/warn/deny (#4150) (DonIsaac) - c5b4be0 linter: Add fixer for prefer-node-protocol (#4129) (DonIsaac) - 7ec0c0b linter/eslint: Implement no-label-var (#4087) (Jelle van der Waa) ### Bug Fixes - ed4c54c eslint/radix: Detect yield Number.parseInt variant (#4110) (Jelle van der Waa) - e9ad03b linter: Fixer for no-debugger creates incorrect code (#4184) (DonIsaac) - bd69571 linter: Fix top level return panic in eslint/array_callback_return (#4167) (Boshen) - c8f5664 linter: Fix panic with unicode in unicorn/prefer_dom_node_dataset (#4166) (Boshen) - f2b3273 linter: Fix fixer panic in typescript/consistent_indexed_object_style (#4165) (Boshen) - 2334515 linter: Panic in `get_enclosing_function` (#4121) (DonIsaac) - 1b91d40 linter: Incorrect fixer for `no-unused-labels` (#4123) (Don Isaac) - 1729249 linter: Incorrect fix in `no-single-promise-in-promise-methods` rule; (#4094) (DonIsaac) - cc7e893 linter/tree-shaking: Avoid recursive function stackoverflow (#4191) (mysteryven) - 28eeee0 parser: Fix asi error diagnostic pointing at invalid text causing crash (#4163) (Boshen) - 0f02608 semantic: Bind `TSImportEqualsDeclaration`s (#4100) (Don Isaac) ### Performance - ddfa343 diagnostic: Use `Cow<'static, str>` over `String` (#4175) (DonIsaac) ### Refactor - 2687ebc react: Use find_binding helper for finding React binding (#4108) (Jelle van der Waa) ## [0.5.3] - 2024-07-07 ### Features - 1681b11 linter: Eslint-plugin-jest/consistent-test-it (#4053) (cinchen) - 6876490 linter: Add rule no-undefined (#4041) (jordan boyer) - bf04dee linter: Implement unicorn/no-negation-in-equality-check (#4034) (Nissim Chekroun) - aa45604 linter/eslint: Implement no-multi-str (#4038) (Jelle van der Waa) ### Bug Fixes - 7b2dc3b linter: Fix panic in import/namespace (#4080) (Boshen) ## [0.5.2] - 2024-07-02 ### Features - b257d53 linter: Support report `@typescript-eslint/consistent-type-imports` (#3895) (mysteryven) - 2114475 linter: Implement @typescript-eslint/no-dynamic-delete (#3971) (kaykdm) - 10a3c9a linter/eslint-plugin-react: Implement no-set-state (#3975) (Jelle van der Waa) ### Bug Fixes - 432d6d9 linter: Find disabled directives using the message's `Span`. (#4010) (rzvxa) - dbbb6fc linter: Global variable check should always check builtin variables (#3973) (Boshen) ## [0.5.1] - 2024-06-29 ### Features - f64ad4b semantic: Make jsdoc building optional (turned off by default) (#3955) (Boshen) ### Bug Fixes - c26975a linter: Only show the filename for max-lines (#3966) (Boshen) - 94329e4 linter: Handle useful but empty constructors in no-useless-constructor (#3951) (DonIsaac) - 6498a08 linter: No-useless-spread fixer with multiple spread elements (#3950) (DonIsaac) ### Refactor - 1cca2a8 eslint: Convert with_labels to with_label where applicable (#3946) (Jelle van der Waa) - 2705df9 linter: Improve diagnostic labeling (#3960) (DonIsaac) ## [0.5.0] - 2024-06-27 - 6796891 ast: [**BREAKING**] Rename all instances of `BigintLiteral` to `BigIntLiteral`. (#3898) (rzvxa) - ae09a97 ast: [**BREAKING**] Remove `Modifiers` from ts nodes (#3846) (Boshen) - 1af5ed3 ast: [**BREAKING**] Replace `Modifiers` with `declare` and `const` on `EnumDeclaration` (#3845) (Boshen) - ee6ec4e ast: [**BREAKING**] Replace `Modifiers` with `declare` and `abstract` on `Class` (#3841) (Boshen) - 4456034 ast: [**BREAKING**] Add `IdentifierReference` to `ExportSpecifier` (#3820) (Boshen) - 0537d29 cfg: [**BREAKING**] Move control flow to its own crate. (#3728) (rzvxa) - 5c38a0f codegen: [**BREAKING**] New code gen API (#3740) (Boshen) - 4bce59d semantic/cfg: [**BREAKING**] Re-export `petgraph` as `control_flow::graph`. (#3722) (rzvxa) ### Features - 3ae2628 linter: Change `no-import-assign` to correctness (#3928) (Boshen) - a89d501 linter: Implement @typescript-eslint/no-non-null-asserted-nulli… (#3850) (kaykdm) - fc48cb4 linter: eslint-plugin-jest/prefer-jest-mocked (#3865) (cinchen) - 63b98bd linter: Accept multiple fixes when fix code (#3842) (mysteryven) - 328445b linter: Support `vitest/no-disabled-tests` (#3717) (mysteryven) - 8c61f9c linter: Implement @typescript-eslint/no-non-null-assertion (#3825) (kaykdm) - 080ecbd linter: Add `no-fallthrough`. (#3673) (rzvxa) - 9493fbe linter: Add `oxc/no-optional-chaining` rule (#3700) (mysteryven) - 139adfe linter: Add `@typescript-eslint/no-import-type-side_effects` (#3699) (mysteryven) - 5f84500 linter/eslint-plugin-react: Implement prefer-es6-class (#3812) (Jelle van der Waa) - fafe67c linter/import: Implement max-dependencies (#3814) (Jelle van der Waa) - d5f6aeb semantic: Check for illegal symbol modifiers (#3838) (Don Isaac) ### Bug Fixes - 4bd2c88 linter: Fix and promote `getter-return` to correctness. (#3777) (rzvxa) - 1190dee linter: False positives with setters in the `getter-return` rule. (#3714) (rzvxa) - de0690f linter: Do not run getter-return in typescript (#3693) (Boshen) - cf71c23 linter: Edge case with infinite loops. (#3672) (rzvxa) - 99a40ce semantic: `export default foo` should have `ExportLocalName::Default(NameSpan)` entry (#3823) (Boshen) - abd6ac8 semantic/cfg: Discrete finalization path after `NewFunction`s. (#3671) (rzvxa) ### Performance - 4f7ff7e Do not pass `&Atom` to functions (#3818) (overlookmotel) ### Refactor - 4d2b7f1 linter: `LintContext` can now only be constructed with a cfg enabled semantic. (#3761) (rzvxa) - 7302429 linter/prefer_number_properties: Remove the unused `IdentifierName` check (#3822) (Boshen) - d8ad321 semantic: Make control flow generation optional. (#3737) (rzvxa) ### Testing - 887da40 linter: Enable `no-fallthrough` test with `disable-next-line`. (#3766) (rzvxa) ## [0.4.4] - 2024-06-14 ### Features - 8f5655d linter: Add eslint/no-useless-constructor (#3594) (Don Isaac) - 29c78db linter: Implement @typescript-eslint/explicit-function-return-type (#3455) (kaykdm) - 21d3425 linter: Typescript-eslint no-useless-empty-export (#3605) (keita hino) - 85c3b83 linter: Eslint-plugin-jest/max-nested-describes (#3585) (cinchen) - f6d9ca6 linter: Add `eslint/sort-imports` rule (#3568) (Wang Wenzhe) - 046ff3f linter/eslint: Add `no_unreachable` rule. (#3238) (rzvxa) - e32ce00 linter/jsdoc: Implement require-param-name rule (#3636) (Yuji Sugiura) - 110661c linter/jsdoc: Implement require-param-description (#3621) (Yuji Sugiura) - d6370f1 linter/jsdoc: Implement require-param-type rule (#3601) (Yuji Sugiura) - d9c5b33 semantic/cfg: Add `Condition` instruction. (#3567) (Ali Rezvani) - f2dfd66 semantic/cfg: Add iteration instructions. (#3566) (rzvxa) ### Bug Fixes - f0b689d linter: Panic in jsdoc/require-param (#3590) (Don Isaac) - e148a32 semantic/cfg: Correct unreachability propagation in try-finally. (#3667) (Ali Rezvani) ### Refactor - 84304b4 linter: Add a `ctx.module_record()` method (#3637) (Boshen) - f98f777 linter: Add rule fixer (#3589) (Don Isaac) - fa11644 linter: Pass `Rc` by value (#3587) (overlookmotel) - f702fb9 semantic/cfg: Cleanup control flow and it's builder. (#3650) (rzvxa) - 5793ff1 transformer: Replace `&’a Trivias` with `Rc` (#3580) (Dunqing) ## [0.4.3] - 2024-06-07 ### Features - 1fb9d23 linter: Add fixer for no-useless-fallback-in-spread rule (#3544) (Don Isaac) - 6506d08 linter: Add fixer for no-single-promise-in-promise-methods (#3531) (Don Isaac) - daf559f linter: Eslint-plugin-jest/no-large-snapshot (#3436) (cinchen) - 4c17bc6 linter: Eslint/no-constructor-return (#3321) (谭光志) - 4a075cc linter/jsdoc: Implement require-param rule (#3554) (Yuji Sugiura) - 747500a linter/jsdoc: Implement require-returns-type rule (#3458) (Yuji Sugiura) - 6b39654 linter/tree-shaking: Support options (#3504) (Wang Wenzhe) - 0cdb45a oxc_codegen: Preserve annotate comment (#3465) (IWANABETHATGUY) ### Bug Fixes - b188778 linter/eslint: Fix `require-await` false positives in `ForOfStatement`. (#3457) (rzvxa) - 350cd91 parser: Should parser error when function declaration has no name (#3461) (Dunqing) ## [0.4.2] - 2024-05-28 ### Features - 14ef4df lint/eslint: Implement require-await (#3406) (Todor Andonov) - e275659 linter: Add `oxc/no-rest-spread-properties` rule (#3432) (Wang Wenzhe) - 0d2c977 linter: Add `oxc/no-const-enum` rule (#3435) (Wang Wenzhe) - 085f917 linter: Add `oxc/no-async-await` rule (#3438) (Wang Wenzhe) - ded59bc linter: Eslint-plugin-jest/require-top-level-describe (#3439) (cinchen) - edaa555 linter: Eslint-plugin-jest/prefer-hooks-on-top (#3437) (cinchen) - aa26ce9 linter: @typescript-eslint/consistent-indexed-object-style (#3126) (Todor Andonov) - b589fd6 linter/eslint: Implement no-div-regex (#3442) (Jelle van der Waa) - 147864c linter/eslint: Implement no-useless-concat (#3363) (Jelle van der Waa) ### Bug Fixes - 5e06298 linter: Memorize visited block id in `neighbors_filtered_by_edge_weight` (#3407) (mysteryven) - 74b06a7 linter: Accept more valid regex (#3408) (magic-akari) - 19bb1c0 website: Hack `schemars` to render code snippet in markdown (#3417) (Boshen) ### Documentation - 5c7041b linter: Add docs for consistent-indexed-object-style (#3409) (Wang Wenzhe) ## [0.4.0] - 2024-05-24 ### Features - e241136 cli,linter: Add `--disable-oxc-plugin` (#3328) (Boshen) - 8ab9856 cli,linter: Add `--disable`-react/unicorn/typescript-`plugin` (#3305) (Boshen) - ecdffcf linter: Temporary move react/require-render-return to nursery (Boshen) - b8997f5 linter: Eslint/no-restricted-globals (#3390) (mysteryven) - 79811ca linter: Change jsdoc/require-returns from correctness to pedantic (Boshen) - 8a1db67 linter: Change jsdoc/require-render-return from correctness to pedantic (Boshen) - fe208dd linter: Start adding json schema for configuration file (#3375) (Boshen) - aec613b linter: Eslint-plugin-jest/no-duplicate-hooks (#3358) (cinchen) - e4b3a3c linter: Backward compability for `react-hooks` and `deepscan` plugins (#3334) (Boshen) - 9744707 linter/eslint: Implement default_case rule (#3379) (Jelle van der Waa) - 74be8b1 linter/eslint: Implement no-new (#3368) (Jelle van der Waa) - c588e52 linter/eslint: Implement prefer-exponentiation-operator (#3365) (Jelle van der Waa) - 283d6c7 linter/eslint: Implement symbol-description (#3364) (Jelle van der Waa) - b6e2d62 linter/jsdoc: Implement require-returns-description (#3397) (Yuji Sugiura) - 3a5f088 linter/jsdoc: Implement require-returns rule (#3218) (Yuji Sugiura) - 3671b5c tasks/website: Code generate the linter rules (Boshen) - 57d2bca tasks/website: Start generating linter config markdown from json schema (#3386) (Boshen) - ead637b website: Generate linter configuration page (Boshen) ### Bug Fixes - c664c6c linter: `no-new` false positive when return from arrow expression (#3393) (Boshen) - fbccd1f linter: Only report issues on top-level fragment (#3389) (Jovi De Croock) - a23bbf9 linter: Avoid infinite loop in `jest/expect-expect` (#3332) (mysteryven) - 385965f linter: Avoid infinite loop when traverse ancestors in `jest/no_conditional_expect` (#3330) (mysteryven) - 95e9b69 linter: Fix panic in jest/expect-expect (#3324) (Boshen) - 6c3d99a linter/jsx-no-undef: Check for globals when an identifier is undefined (#3331) (Boshen) - bb2221e linter/next: False positives for non-custom font link (#3383) (Dunqing) - 712ee0d linter/react: Fix false positives for async components in `rules_of_hooks` (#3307) (rzvxa) - 0864cd0 linter/react: Better detection for hooks in the `rules_of_hooks`. (#3306) (rzvxa) - 9594441 linter/react: `rules_of_hooks` add support for property hooks/components. (#3300) (rzvxa) - c8f1f79 linter/react: `rules_of_hooks` resolve false positives with conditional hooks. (#3299) (rzvxa) - d46538e linter/react: Fix loop hooks false positives. (#3297) (Ali Rezvani) ### Performance - 8388c7b linter: Use `usize` for `RuleEnum` hash (#3336) (Boshen) ### Refactor - c9d84af diagnostics: S/warning/warn (Boshen) - 5bf595d linter: Rename variable names prefix `ESLint` to `Oxlint` (Boshen) - d8c3187 linter: Remove unnecessary check in `eslint/no-global-assign` (#3391) (mysteryven) - d7849f8 linter: Find return statement by using CFG in `react/require-render-return` (#3353) (mysteryven) - 8383b6e linter: Remove `with_rule_name` from the tight loop (#3335) (Boshen) - 4f76cb6 linter: Merge deepscan rules into oxc rules (#3327) (Boshen) - 78e6326 semantic/cfg: Alias petgraph's `NodeIndex` as `BasicBlockId`. (#3380) (rzvxa) ## [0.3.5] - 2024-05-15 ### Features - 5b2fc39 linter: Add use-isnan fixer for (in)equality operations (#3284) (Don Isaac) - 3644400 linter/eslint: Implement fixer for unicode-bom rule (#3259) (Jelle van der Waa) ### Bug Fixes - e12323f linter/no-direct-mutation-state: False positive when class is declared inside a `CallExpression` (#3294) (Boshen) ### Refactor - 6128171 linter: Rewrite react/require-render-return (#3276) (Wang Wenzhe) ## [0.3.4] - 2024-05-13 ### Features - 6edcae8 linter: Move react/rules_of_hooks to nursery (Boshen) - 44b16ef linter/eslint: Implement max-classes-per-file (#3241) (Jelle van der Waa) ## [0.3.3] - 2024-05-13 ### Features - c6874ad linter: Demote `no-inner-declarations` from correctness to pedantic (eslint v9) (Boshen) - 4ccc3ee linter: Demote `react/jsx-no-useless-fragment` from correctness to pedantic (Boshen) - d45b28a linter: Unicorn/no-anonymous-default-export (#3220) (1zumii) - 7113e85 linter: Add `radix` rule (#3167) (Kuba Jastrzębski) - fa0093b linter: Eslint-plugin-next/no-page-custom-font (#3185) (Dunqing) - 4defe37 linter: Remove deprecated eslint v9 rules `no-return-await` and `no-mixed-operators` (#3188) (Boshen) - ca9f13f linter: Eslint/no-new-native-nonconstructor (#3187) (Boshen) - 5514936 linter: Eslint-plugin-next/no-styled-jsx-in-document (#3184) (Dunqing) - cb2e651 linter: Eslint-plugin-next/no-duplicate-head (#3174) (Boshen) - 8244d2b linter/eslint: Implement unicode-bom rule (#3239) (Jelle van der Waa) - 5081652 linter/eslint: Implement no-empty-function rule (#3181) (Jelle van der Waa) - f88f330 linter/import: Improve multiple exports error message (#3160) (Dunqing) - 1f135ce linter/react: Add the `rules_of_hooks` rule. (#3071) (rzvxa) - c0abbbd linter/tree-shaking: Add `isPureFunction` (#3175) (Wang Wenzhe) ### Bug Fixes - edb30e1 linter: Handle `import { default as foo }` in import/named (#3255) (Boshen) - 313fb83 linter/default: Ignore unsupported files (e.g. .vue) (Boshen) - 0ba7778 parser: Correctly parse cls.fn = x (#3208) (Dunqing) ### Refactor - dbde5b3 diagnostics: Remove export of `miette` (Boshen) - 551632a diagnostics: Remove thiserror (Boshen) - 312f74b diagnostics: S/OxcDiagnostic::new/OxcDiagnostic::error (Boshen) - f7a3773 linter: Clean up diagnostics (Boshen) - 5671714 linter: Clean up diagnostics in fixer (Boshen) - 6e90f67 linter: Remove unnecessary usages of `CompactStr` (Boshen) - 15f275f linter: Reduce llvm lines generated by `RuleEnum::read_json` (#3207) (Boshen) - a84454c linter: Clean up prefer_node_protocol and move to restriction (#3171) (Boshen) - f6f7adc linter,diagnostic: One diagnostic struct to eliminate monomorphization of generic types (#3235) (Boshen) - 2064ae9 parser,diagnostic: One diagnostic struct to eliminate monomorphization of generic types (#3214) (Boshen)- 893af23 Clean up more diagnostics usages (Boshen) ## [0.3.2] - 2024-05-04 ### Features - 80cf0b2 linter: @typescript-eslint/prefer-literal-enum-member (#3134) (kaykdm) - cd600fa linter: Add more "ban-ts-comment" test cases. (#3107) (谭光志) - bef8a71 linter: Eslint-plugin-jest/require-hook (#3110) (cinchen) - 388ee51 linter: Typescript-eslint/prefer-enum-initializers (#3097) (Todor Andonov) - be9cdfc linter: Eslint/no-await-in-loop (#3070) (谭光志) - 6f5df11 linter/import: Move some rules out of nursery (#2841) (Dunqing) - 5a1d63a linter/jsdoc: Implement require-yields rule (#3150) (Yuji Sugiura) - d7a8345 linter/jsdoc: Support settings.ignore(Private|Internal) (#3147) (Yuji Sugiura) - 5866086 linter/jsdoc: Implement no-defaults rule (#3098) (Yuji Sugiura) - fa3d9d2 linter/jsdoc: Implement `implements-on-classes` rule (#3081) (Yuji Sugiura) - d109767 linter/jsdoc: Implement check-tag-names rule (#3029) (Yuji Sugiura) - 32df6d7 linter/tree-shaking: Support While/Switch/Yield Statement (#3155) (Wang Wenzhe) - 8290421 linter/tree-shaking: Support SequenceExpression (#3154) (Wang Wenzhe) - 5c21b7f linter/tree-shaking: Support UnaryExpression (#3153) (Wang Wenzhe) - 7333618 linter/tree-shaking: Support JSX (#3139) (Wang Wenzhe) - 16a31e9 linter/tree-shaking: Support import statement (#3138) (Wang Wenzhe) - 88ded0c linter/tree-shaking: Support ForStatement (#3078) (Wang Wenzhe) - c3ec710 linter/tree-shaking: Support ExportNamedDeclaration (#3072) (Wang Wenzhe) - 8cdd5b0 linter/tree_shaking: Support LogicExpression and MemberExpression (#3148) (Wang Wenzhe) ### Bug Fixes - fde7d65 linter: Handle named export default in import-plugin/named (#3158) (Boshen) - b1bddac linter: Fix hang if a file fails to parse while using `--import-plugin` (Boshen) - dcb2528 semantic: Revert test code pushed to the main by accident. (#3085) (Ali Rezvani) - 8d17ab3 semantic: Allow `root_node` to be empty for empty trees. (#3084) (Ali Rezvani) ### Refactor - 7e1fe36 ast: Squash nested enums (#3115) (overlookmotel) - 942b2ba ast: Add array element `Elision` type (#3074) (overlookmotel) - 222030c linter: Render `--rules` in a table (Boshen) - 1f12aee linter/jsdoc: Misc improvements (#3109) (Yuji Sugiura) - a8af5de syntax: Move number related functions to number module (#3130) (Boshen) - ae65613 syntax: Use `FxHashMap` for `ModuleRecord::request_modules` (#3124) (Boshen) ## [0.3.1] - 2024-04-22 ### Bug Fixes - a5a7351 linter: Fix unwanted plugin rules being enabled (Boshen) ## [0.3.0] - 2024-04-22 ### Features - 92d709b ast: Add `CatchParameter` node (#3049) (Boshen) - 8d17bb4 linter: --deny all should not enable nursery rules (Boshen) - c2ad8f8 linter: Implement fixer for `typescript-eslint/consistent-type-definitions` (#3045) (Todor Andonov) - ae72be1 linter: Remove all ESLint Stylistic rules (Boshen) - 58d6438 linter: Change no-empty-static-block to `correctness` (Boshen) - 5cf55c2 linter: No barrel file. (#3030) (Ali Rezvani) - ae1f15a linter: Support eslint globals (#3038) (Boshen) - 1a1ba11 linter/tree-shaking: Support `ExportDefaultDeclaration` (#3052) (Wang Wenzhe) ### Bug Fixes - b88dfd7 linter: Support `-D all -D nursery` (Boshen) - 598bbba linter: Fix crashing with `unwrap` in import/no-cycle (#3035) (Boshen) ### Performance - 6c82961 ast: Box typescript enum variants. (#3065) (Ali Rezvani) - 48e2088 ast: Box enum variants (#3058) (overlookmotel) ### Refactor - 53c0ff5 linter: Improve the ergonomics around `ESlintConfig` (#3037) (Boshen) - 7e4beb0 linter/import/no_cycle: Use ModuleGraphVisitor. (#3064) (Ali Rezvani) ## [0.2.18] - 2024-04-19 ### Features - 2bac1d5 linter: Support `oxlint-disable` alongside `eslint-disable` (#3024) (Boshen) - fa08abe linter: Remove import/no-unresolved (#3023) (Boshen) - 9b4e87a linter: Eslint/max-len (#2874) (谭光志) - df2036e linter: Implement plugin-jsdoc/check-property-names (#2989) (Yuji Sugiura) - aa62dbb linter: Add missing test cases to no-empty-interface and add config (#2973) (Jose) - ba2121f linter: Add --jsdoc-plugin flag (#2935) (Yuji Sugiura) - 395ad76 linter/jsdoc: Update settings.jsdoc method (#3016) (Yuji Sugiura) - 5d89e75 linter/jsdoc: Implement require-property-(type|name|description) rules (#3013) (Yuji Sugiura) - 7de9c91 linter/jsdoc: Implement require-property rule (#3011) (Yuji Sugiura) - ac37d55 linter/tree-shaking: Support DoWhileStatement and IfStatement (#2994) (Wang Wenzhe) - 5b02ae1 linter/tree-shaking: Support ConditionalExpression (#2965) (Wang Wenzhe) - da5ea41 linter/tree-shaking: Support Class (#2964) (Wang Wenzhe) ### Bug Fixes - 627dd42 linter/no-empty-interface: Add missing test (#2979) (Jose) ## [0.2.17] - 2024-04-11 ### Features - 6757dba linter: Eslint-plugin-jest/prefer-lowercase-title (#2911) (cinchen) - b4b471f linter: Typescript-eslint/consistent-type-definitions (#2885) (Todor Andonov) - 990eda6 linter/tree-shaking: Support part BinaryExpression (#2922) (Wang Wenzhe) ### Bug Fixes - 5abbb0c linter: Import/no-cycle ignore type-only imports (#2924) (John Daly) ### Refactor - 0a77d62 semantic/jsdoc: Rework JSDoc struct for better Span handling (#2917) (Yuji Sugiura) ## [0.2.16] - 2024-04-08 ### Features - acb6eb2 linter: @typescript-eslint/prefer-for-of (#2789) (Denis Gonchar) - aa63b64 linter: Implement jsdoc/check-access (#2642) (Yuji Sugiura) - 6823482 linter: Implement jsdoc/empty-tags (#2893) (Yuji Sugiura) - 7bc638e linter: Eslint-plugin-jest/prefer-mock-promise-sorthand (#2864) (cinchen) - 6de1b77 linter/import: Add `ignoreTypes` option for the `import/no-cycle` rule (#2905) (John Daly) - b053d54 linter/tree-shaking: Support try-catch and AwaitExpression (#2902) (Wang Wenzhe) - 59869d0 linter/tree-shaking: Check `this` in different environment (#2901) (Wang Wenzhe) - ce34829 linter/tree-shaking: Support ThisExpression and NewExpression (#2890) (Wang Wenzhe) - 15d08f6 linter/tree-shaking: Support ArrowFunctionExpression (#2883) (Wang Wenzhe) - 4a86dcb linter/tree-shaking: Support `ArrayExpression` and `ArrayPattern` (#2882) (Wang Wenzhe) ### Bug Fixes - 5f8f7f8 ast: `FinallyClause` won't get visited as `BlockStatement` anymore. (#2881) (Ali Rezvani) - 79e2c95 linter: Handle self closing script tags in astro partial loader (#2017) (#2907) (Kalven Schraut) - 1cd5e75 linter: Svelte partial loader handle generics (#2875) (#2906) (Kalven Schraut) ## [0.2.15] - 2024-03-30 ### Features - 2365198 cli: Add tsconfig file validation in LintRunner (#2850) (Dunqing) - d63807e linter: Fallback to the default tsconfig path (#2842) (Dunqing) - f6391f9 linter: Eslint-plugin-jest/prefer-comparison-matcher (#2806) (cinchen) - f131442 linter: Eslint-plugin-jest/no-untyped-mock-factory (#2807) (cinchen) - 451162e linter: Eslint/no-iterator (#2758) (Jose) - 53ffbc6 linter: Eslint-plugin-react checked-requires-onchange-or-readonly (#2754) (keita hino) - 1c07a99 linter: Default_param_last (#2756) (Jose) - 291dc05 linter: No_script_url (#2761) (Jose) - 76cc906 linter/import: Ignore type-only imports and exports in no_unresolved (#2849) (Dunqing) - 0cae373 linter/tree-shaking: Pass CallExpression cases (#2839) (Wang Wenzhe) - fa39fa8 linter/tree-shaking: Check CallExpression when called (#2809) (Wang Wenzhe) - 3c9e77d linter/tree-shaking: Detect CallExpression in MemberExpression (#2772) (Wang Wenzhe) ### Bug Fixes - df62828 linter/import: Ignore export declaration in no-duplicates (#2863) (Dunqing) - c452897 linter/import: False positive for indirect export in namespace (#2862) (Dunqing) - 64e4de7 linter/max-lines: Only report codes that exceed the line limit (#2778) (Wang Wenzhe) ### Refactor - 1b5e544 semantic: Distinguish whether requested_modules is type imports/exports (#2848) (Dunqing) - d9b77d8 sourcemap: Change sourcemap name to take a reference (#2779) (underfin) ## [0.2.14] - 2024-03-19 - c3477de ast: [**BREAKING**] Rename BigintLiteral to BigIntLiteral (#2659) (Arnaud Barré) ### Features - ac813a6 linter: No_template_curly_in_string (#2763) (Jose) - 134e15e linter: Eslint/no-proto (#2760) (Jose) - 39b98ba linter: No_eq_null (#2757) (Jose) - 86d006e linter: Eslint/max-params (#2749) (Jose) - 22c84c5 linter: Eslint/guard-for-in (#2746) (Jose) - f5b4599 linter: Eslint/no-ternary (#2744) (Jose) - 6189985 linter: Eslint/no-continue (#2742) (Jose) - 91e8a71 linter: Eslint/no-with (#2741) (Andi Pabst) - 81752b2 linter: Eslint/max-lines (#2739) (Andi Pabst) - 0623a53 linter: Eslint-plugin-jest: `prefer-to-contain` (#2735) (cinchen) - 9edda49 linter: Eslint-plugin-jest: `prefer-expect-resolves` (#2703) (cinchen) - 53a8e7f linter: Add settings.jsdoc (#2706) (Yuji Sugiura) - f8fe3af linter: Eslint-plugin-jest: prefer-to-be (#2702) (cinchen) - 265030d linter: Eslint-plugin-jest: prefer-spy-on (#2666) (cinchen) - 3ae9479 linter: Report side effect for array element in node_side_effects rule (#2683) (Wang Wenzhe) - 366a879 linter: Resolve ESM star exports (#2682) (Boshen) - 9b56134 linter: Support check ImportNamespaceSpecifier in no_import_assign (#2617) (Dunqing) - 7605cd3 linter: Change ban-ts-comment to pedantic (Boshen) - 95ac265 linter/import: Check ObjectPattern syntax in namespace (#2691) (Dunqing) - e86cd62 linter/import: Support check reexport binding in namespace (#2678) (Dunqing) - 4947809 linter/jest: Add new property for `parse_jest_fn` (#2715) (cinchen) - 2ef4762 linter/tree-shaking: Add cache for checking mutating identifiers (#2743) (Wang Wenzhe) - 11219d4 linter/tree_shaking: Check assignment of identifier (#2697) (Wang Wenzhe) - 57ce737 semantic: Move redeclare varaibles to symbol table (#2614) (Dunqing) - 8b3de77 span: `impl<'a> PartialEq for Atom<'a>` (#2649) (Boshen) - 4f9dd98 span: Remove `From` and `From` API because they create memory leak (#2628) (Boshen) - f8e8af2 task: Init eslint-plugin-tree-shaking rule (#2662) (Wang Wenzhe)- 265b2fb Miette v7 (#2465) (Boshen) ### Bug Fixes - a671d75 linter: Fix guard_for_in span error (#2755) (Jose) - 09d4c7d linter: Correct example for no-obj-calls rule (#2618) (overlookmotel) - b453a07 parser: Parse named rest element in type tuple (#2655) (Arnaud Barré) ### Refactor - 0f86333 ast: Refactor `Trivias` API - have less noise around it (#2692) (Boshen) - 220eba1 lint: Split files for no_side_effects rule (#2684) (Wang Wenzhe) - 47e735a linter: Improve the implementation of no_shadow_restricted_names based on symbols (#2615) (Dunqing) - 240ff19 parser: Improve parsing of `BindingPattern` in TypeScript (#2624) (Boshen) - 798a6df span: Disallow struct expression constructor for `Span` (#2625) (Boshen)- 8001b2f Make `CompactStr` immutable (#2620) (overlookmotel)- 0646bf3 Rename `CompactString` to `CompactStr` (#2619) (overlookmotel) ## [0.2.13] - 2024-03-05 ### Features - 35ce3cc linter: Eslint-plugin-jest: prefer-to-have-length (#2580) (cinchen) - 212f128 linter: Eslint-plugin-jest: prefer-strict-equal (#2581) (cinchen) - fe777f3 linter/import: Partial support namespace check (#2538) (Dunqing) ### Bug Fixes - 951297e linter: Avoid crash if no members in TSTypeLiteral in typescript/prefer-function-type (#2604) (Wenzhe Wang) - c09c602 linter: Exclude typescript syntax function in only_used_in_recursion (#2595) (Dunqing) - f00834d linter: Fix getter return rule false positives in TypeScript (#2543) (BlackSoulHub) - 24d46bc parser: Fix span start for TSModuleDeclaration (#2593) (Arnaud Barré) - 37de80d semantic: Jsx reference with an incorrect node id (#2546) (Dunqing)- 7cc9013 Broken build from codegen API change (Boshen) ### Refactor - ef932a3 codegen: Clean up API around building sourcemaps (#2602) (Boshen) - 1391e4a semantic/jsdoc: Misc fixes for JSDoc related things (#2531) (Yuji Sugiura) ## [0.2.12] - 2024-02-28 ### Features - 3efbbb2 ast: Add "abstract" type to `MethodDefinition` and `PropertyDefinition` (#2536) (Boshen) - 02c82c3 cli,linter: Provide tsconfig path from the cli (#2526) (Boshen) - d41dcc3 linter: Remove all commonjs logic for import plugin (#2537) (Boshen) ## [0.2.11] - 2024-02-26 ### Features - f5aadc7 linter: Handle cjs `module.exports = {} as default export (#2493) (Boshen) - f64c7e0 linter: Handle cjs `module.exports.foo = bar` and `exports.foo = bar` (#2492) (Boshen) - d0a9c46 linter: Handle top-level `require` for import plugin (#2491) (Boshen) - 696818a linter: Implement @typescript-eslint/prefer-ts-expect-error (#2435) (Alex Yip) - 6aa8c2d linter: Initialize resolver lazily and automatically read tsconfig.json for now (#2482) (Boshen) - 135e56a linter: Ignore unsupported extensions in import/no_unresolved (#2481) (Boshen) - 7f86722 linter: Handle built-in modules in import/no_unresolved (#2479) (Boshen) - 015b2ee linter: Eslint-plugin-react void-dom-elements-no-children (#2477) (keita hino) - c5f67fe linter: Add boilerplate for eslint-plugin-import/no_duplicates (#2476) (Boshen) - f1e364f linter: Eslint-plugin-import/no_unresolved (#2475) (Boshen) - 2714a32 linter: Continue working on no_cycle (#2471) (Boshen) - 6527bfd linter: Add boilerplace code for import/namespace,no_deprecated,no_unused_modules (#2470) (Boshen) - ff6a337 linter: Typescript-eslint: prefer-function-type (#2337) (zhangrunzhao) ### Bug Fixes - 93742f8 linter: Correct configuration file parsing for jsx-no-useless-fragment (#2512) (keita hino) - fba66dc linter: Improve import/no-named-as-default (#2494) (Boshen) - d741d72 linter: Fix import plugin hanging when ignored modules are imported (#2478) (Boshen) - 35a0f89 linter: Handle cases where createElement is an Identifier in is_create_element_call (#2474) (keita hino) - bc22ae5 semantic: Refactor jsdoc finding (#2437) (Yuji Sugiura) ### Refactor - 540f917 ast: Remove `TSEnumBody` (#2509) (Boshen) - 9087f71 ast: S/TSThisKeyword/TSThisType to align with estree (Boshen) - d08abc6 ast: S/NumberLiteral/NumericLiteral to align with estree (Boshen) - e6b391a ast: S/ArrowExpression/ArrowFunctionExpression to align estree (Boshen) ## [0.2.10] - 2024-02-21 ### Features - e6d536c codegen: Configurable typescript codegen (#2443) (Andrew McClenaghan) - f7e1576 linter: Eslint no-nonoctal-decimal-escape (#2428) (tudorbarbu) ### Bug Fixes - 5bd2ce6 semantic: Incorrect reference flag for MemberExpression assign (#2433) (Dunqing) ### Refactor - cd48e1e linter: Simplify getting ImportDefaultSpecifier (#2453) (Dunqing) - 2a2bb2b linter: Improve implementation of no_dupe_class_members based on ClassTable (#2446) (Dunqing)- a2c173d Remove `panic!` from examples (#2454) (Boshen) ## [0.2.9] - 2024-02-18 ### Features - 0b9e122 linter: Implement `unicorn/no-process-exit` rule (#2410) (Yuji Sugiura) - d9f073e linter: Detect jest file by default glob pattern (#2408) (Wenzhe Wang) - 8d6202f linter: Eslint-plugin-jest require-to-throw-message (#2384) (keita hino) - 92afbb1 linter: Eslint-plugin-jest: prefer-equality-matcher (#2358) (cinchen) - 40e9541 semantic: Add export binding for ExportDefaultDeclarations in module record (#2329) (Dunqing)- 8e0277e Add Typescript ban-tslint-comment (#2371) (tudorbarbu) ### Bug Fixes - f49ffb2 linter: `getter-return` false positive with TypeScript syntax (#2363) (Boshen) - ebc08d4 linter: Add missing typescript-eslint(_) prefix for some errors (#2342) (Maurice Nicholson) - 6a25864 linter/jsx_a11y: Refactor jsx-a11y related utils and its usage (#2389) (Yuji Sugiura) - 2521b52 linter/jsx_a11y: Ensure plugin settings are used (#2359) (Yuji Sugiura) ### Performance - 7d7a3fc lint/no_var_requires: Quicker way to check if the `IdentifierReference` point to a global variable (#2376) (Yunfei He) ### Refactor - 67d7a46 linter: Get arrow expression by scope_id in no_render_return_value (#2424) (Dunqing) - 63b4741 linter/config: Use serde::Deserialize for config parsing (#2325) (Yuji Sugiura) ## [0.2.8] - 2024-02-06 ### Features - d571839 ast: Enter AstKind::ExportDefaultDeclaration, AstKind::ExportNamedDeclaration and AstKind::ExportAllDeclaration (#2317) (Dunqing) - a762d17 linter: Promote `no-this-before-super` to correctness (#2313) (Boshen) - 0060d6a linter: Implement no_this_before_super with cfg (#2254) (Tzvi Melamed) - f3035f1 semantic: Apply ImportSpecifier's binder and remove ModuleDeclaration's binder (#2307) (Dunqing)- 8771c64 Add typescript-eslint rule array-type (#2292) (luhc228) ### Bug Fixes - b5e43fb linter: Fix no_dupe_keys false postive on similar key names (#2291) (Boshen) ### Refactor - 1822cfe ast: Fix BigInt memory leak by removing it (#2293) (Boshen) ## [0.2.7] - 2024-02-03 ### Features - 2578bb3 ast: Remove generator property from ArrowFunction (#2260) (Dunqing) - a95a16c linter: Complete custom components setting (#2234) (hjio) - da3b305 linter: Implement @next/next/no-before-interactive-script-outsi… (#2203) (kaykdm) - b694a6a linter: Implement @next/next/no-unwanted-polyfillio (#2197) (kaykdm) - e561457 semantic: Track cfg index per ast node (#2210) (Tzvi Melamed) ### Bug Fixes - 2beacd3 lexer: Correct the span for irregular whitespaces (#2245) (Boshen) - 37a2676 linter: AllowFunction doesn't support generator (#2277) (Dunqing) - f039ad6 linter: Ban `--fix` for variety files(vue, astro, svelte) (#2189) (Wenzhe Wang) - f32228e linter: Jsx no undef match scope should check with ancestors (#2027) (西了意) - 73ccf8a oxc_semantic: Proper traversal of try statements (#2250) (Tzvi Melamed) ### Refactor - 1de3518 linter: Remove Regex and change error position (#2188) (Wenzhe Wang)- 650f6c9 Use our forked version of miette::Reporter for tests (#2266) (Boshen)- 87b9978 Move all miette usages to `oxc_diagnostics` (Boshen) ## [0.2.6] - 2024-01-26 ### Features - ee5b968 linter: Support read env from eslintrc (#2130) (fi3ework) - 8898377 semantic: Cfg prototype (#2019) (Boshen) - 2794064 transfrom: Transform-json-strings (#2168) (underfin) ### Bug Fixes - 2e3153e linter: Rename react_perf/jsx_no_new_function_as_props to jsx_no_new_function_as_prop (#2175) (Yuji Sugiura) ### Refactor - a17e43e linter: Move settings and env to the config module (#2181) (Boshen) ## [0.2.5] - 2024-01-25 ### Features - ac1d318 linter: Eslint-plugin-jest: prefer-called-with (#2163) (cin) - 3891430 linter: Eslint: no-void (#2162) (cin) ### Bug Fixes - 989ab88 codegen: Print `Directive` original string (#2157) (underfin) - c18619e linter: Use correct rule name (#2169) (Yuji Sugiura) - 2602232 linter: Explicit-length-check inside ternary (#2165) (Maurice Nicholson) ## [0.2.3] - 2024-01-23 ### Features - 6d808a6 linter: Linter-eslint-plugin-import/no-named-as-default (#2109) (Valerii Smirnov) - d90db3a linter: Promote no-new-array to correctness with better help message (#2123) (Boshen) - 69fecac linter: Eslint config jsonc support (#2121) (Boshen) - 5ca07bc linter: Eslint-plugin-react-perf (#2086) (Hulk) - b160842 linter: Support eslint config in nextjs eslint (#2107) (kaykdm) - 16b3261 linter: Eslint-plugin-jest: no-restricted-jest-methods (#2091) (cin)- 20a34b5 Introduce --react-perf-plugin CLI flag, update rules to correctness (#2119) (Hulk)- 4adce6f (eslint-plugin-jest): no-restricted-matchers (#2090) (cin) ### Bug Fixes - d00c44c linter: Allow `[...new Array(n)]` in no-useless-spread (#2124) (Boshen) - 2228aa8 linter: Jsx_a11y/img-redundant linter enable test case(#2112) (msdlisper) - 142f84f linter: Not use `new_inline` with flexible str (#2106) (Wenzhe Wang) ### Refactor - 766ca63 ast: Rename RestElement to BindingRestElement (#2116) (Dunqing) - 8bccdab semantic: Add binder for FormalParameters and RestElement, replacing the binder for FormalParameters (#2114) (Dunqing) ## [0.2.2] - 2024-01-20 ### Features - 721a869 linter: Improve no_redeclare rule implementation (#2084) (Dunqing)- 2f1e1e2 Expose linter RULES and use it for listing (#2083) (Yuji Sugiura) ### Bug Fixes - d7ecd21 linter: Eslint-plugin-import no-named-as-default-member rule (#2071) (Valerii Smirnov) - 3faa2aa linter: S/consistent-type-export/consistent-type-exports (#2065) (Boshen) ### Refactor - a368134 linter: Perfect the scope linter (#2092) (msdlisper) ## [0.2.1] - 2024-01-16 ### Features - 9e06bd7 linter: Remove the `--timings` feature (#2049) (Boshen) - c60c315 linter: Eslint-plugin-import no-named-as-default-member rule (#1988) (Valerii Smirnov) - 530d1be linter: Eslint-plugin-jsx-a11y no-redundant-roles rule (#1981) (Yuto Yoshino) - 198f0e5 linter: Eslint-plugin-jsx-a11y aria-activedescendant-has-tabindex (#2012) (keita hino) - a356918 linter: Eslint-plugin-next: no-document-import-in-page (#1997) (kaykdm) - c70a065 linter: Eslint-plugin-next: no-head-element (#2006) (kaykdm) - 8f0f824 linter: Eslint-plugin-next: no-typos (#1978) (kaykdm) - 04540f7 linter: Eslint-plugin-jsx-a11y click-events-have-key-events (#1976) (Yuji Sugiura) ### Bug Fixes - 3b40fbd linter: False positive for filename_case where filename doesn't have a proper casing (#2032) (Boshen) - 68606c4 linter: Keep rules disabled if the rule is not enabled in the config (#2031) (Boshen) - 107a32e linter: Fix false positive for `erasing-op` in `0/0` case (#2009) (Cameron) ### Refactor - f514410 linter: Move `LintSettings` to its own file (#2052) (Boshen) - ae4e714 linter: Remove the `LintSettings` parameter from `LintContext::new`. (#2051) (Boshen) - b386177 linter: Move away from tuples for test cases (#2011) (Boshen) ## [0.2.0] - 2024-01-12 ### Features - d51c9f1 linter: Eslint-plugin-jest: no-test-return-statement (#1979) (cin) - fb5d0a7 linter: Add support for same rule name but different plugin names (#1992) (Boshen) - b7ea4e5 linter: Support vue generic component (#1989) (Boshen) - c5887bc linter: Implement @typescript-eslint/triple-slash-reference (#1903) (kaykdm) - ac704cc linter: Eslint-plugin-jsx-a11y autocomplete-valid (#1901) (Yuto Yoshino) - 40dbfae linter: Eslint-plugin-react: no-direct-mutation-state (#1892) (zhangrunzhao) - 856b9a5 linter: Support overriding oxlint rules by eslint config (#1966) (Boshen) - 7891670 linter: Eslint-plugin-react: require-render-return (#1946) (kaykdm) - 2b7ca59 linter: Eslint-plugin-jsx-a11y role-has-required-aria-props (#1881) (Yuto Yoshino) - f6047b6 linter: Eslint-plugin-jsx-a11y role-support-aria-props (#1961) (Rintaro Itokawa) - fd5856e linter: Eslint-plugin-jsx-a11y role-support-aria-props (#1949) (Rintaro Itokawa) - c6eb519 linter: Eslint-plugin-react: no-unknown-property (#1875) (Valerii Smirnov) - fe48bfa lsp: Support vue, astro and svelte (#1923) (IWANABETHATGUY)- ac3b44b Nextjs plugin (#1948) (Cameron) ### Bug Fixes - e0da12a linter: Allow eslintrc to add rule when overriding (#1984) (fi3ework) - d4acd14 linter: Jsx-key: handle anonymous functional components in arrays that have a function body (#1983) (Maurice Nicholson) - b5f4f1e linter: Fix plugin name parsing when reading config file (#1972) (Hao Cheng) - 8d9894a linter: Support cases where aria-hidden includes expressions (#1964) (keita hino) - 66e95a5 linter: Change severity of no-sparse-arrays to warnings (Boshen) ### Refactor - a6717db formatter,linter,codegen: Remove oxc_formatter (#1968) (Boshen) - 64310fa linter: Remove duplicate `get_jsx_attribute_name` (#1971) (Cameron) ## [0.1.2] - 2024-01-06 ### Features - c2e8ef5 linter: Disable no-unused-labels for svelte (#1919) (Boshen) - f2ed83c linter: