Skip to content

Releases: oxc-project/oxc

oxlint v1.71.0 & oxfmt v0.56.0

22 Jun 12:31
Immutable release. Only release title and notes can be modified.
c4be770

Choose a tag to compare

Table of Contents

Oxlint v1.71.0

🚀 Features

  • ff65285 linter: no-restricted-globals add missing upstream options (#23663) (Sysix)
  • 7b8bd89 linter/typescript: Implement suggestion for no-unnecessary-type-constraint rule (#23646) (Mikhail Baev)
  • 0dc2405 linter: Add schema for eslint/no-restricted-properties (#23619) (Sysix)
  • b638d0e linter: Add schema for node/callback-return (#23615) (Sysix)
  • eb8bedc linter: Add schema for import/extensions (#23557) (WaterWhisperer)
  • 46f3625 linter: Implement node/no-sync rule (#23589) (fujitani sora)
  • b01739a linter: Add schema for unicorn/numeric-separators-style (#23554) (Mikhail Baev)
  • 68afd2a linter/node: Implement no-mixed-requires rule (#23539) (fujitani sora)
  • 59d8893 linter: unicorn/numeric-separators-style support missing options (#23524) (Sysix)
  • a421215 linter: Add schema for eslint/prefer-destructuring (#23410) (WaterWhisperer)
  • 84438be linter/jsdoc: Added missing options to require-param-description (#23416) (kapobajza)
  • c145b72 linter/jsdoc/require-param-type: Implement fixer (#23513) (camc314)
  • 51910df linter/jsdoc: Add missing options to require-param-type rule (#23418) (kapobajza)
  • e90925f linter/unicorn: Implement prefer-number-coercion rule (#23497) (Shekhu☺️)
  • dd1c866 linter/vue: Implement no-async-in-computed-properties rule (#23493) (bab)
  • b02444e linter: Add schema for react/jsx-no-script-url (#23475) (WaterWhisperer)
  • 53509a8 minifier: Treeshake pure typed arrays and Set/Map array literals (#23469) (Dunqing)
  • a8dce46 linter/unicorn: Implement max-nested-calls rule (#23461) (arieleli01212)

🐛 Bug Fixes

  • b1948a1 linter/radix: Avoid panic on parseInt with a spread radix argument (#23623) (Jerry Zhao)
  • f28ccfd linter/prefer-query-selector: Use a compound selector for multiple classes (#23628) (Jerry Zhao)
  • 13f2970 linter/prefer-numeric-literals: Avoid panic on parseInt with a spread radix argument (#23624) (Jerry Zhao)
  • 57612b3 linter: Report invalid capitalized-comments ignore patterns (#23608) (camc314)
  • 800ee2a linter/consistent-vitest-vi: Preserve import aliases when rewriting the import (#23568) (Yunfei He)
  • f78b5e1 linter/consistent-indexed-object-style: Don't leak a stray comma into the value type (#23566) (Yunfei He)
  • 6b104e8 linter/radix: Detect a trailing comma only after the argument (#23569) (Yunfei He)
  • 2de20cb linter/unicorn/prefer-at: Correct two-argument slice().pop() index (#23565) (Yunfei He)
  • de778ec linter: unicorn/numeric-separators-style preserve dot for floats without decial part (#23553) (Sysix)
  • 651027c linter/curly: Remove only the block's own braces (#23580) (Yunfei He)
  • 687e835 linter/array-type: Parenthesize a conditional-type element (#23579) (Yunfei He)
  • 9c80dff linter/unicorn/no-unnecessary-await: Don't paste operators into invalid syntax (#23556) (Yunfei He)
  • 46e1463 linter/no-compare-neg-zero: Delete the - of a parenthesized -0 (#23578) (Yunfei He)
  • d172a97 linter/unicorn/prefer-math-trunk: Skip fixer for LHS with side effects (#23548) (camc314)
  • 1c3a9bd linter/unicorn/prefer-negative-index: Don't report Array#with (#23518) (Yunfei He)
  • c17db5d linter/unicorn/prefer-spread: Don't report .slice() on non-array receivers (#23520) (Yunfei He)
  • 9cd0c2f linter/unicorn/prefer-date-now: Keep BigInt wrapper when fixing BigInt(new Date()) (#23523) (Yunfei He)
  • 16bb890 linter/unicorn/prefer-array-flat: Skip non-array flatMap receivers (#23527) (Yunfei He)
  • 3e6f90f linter/unicorn/no-zero-fractions: Insert a space after any preceding keyword (#23529) (Yunfei He)
  • 79a7d69 linter/eslint/no-useless-assignment: Handle exceptional control-flow paths (#23544) (camc314)
  • e8e2741 linter/unicorn/prefer-math-min-max: Preserve operand source text in the fix (#23533) (Yunfei He)
  • f592154 linter/react/display-name: Ignore lowercase jsx helpers (#23510) (camc314)
  • df7612f linter/jsx-a11y/no-noninteractive-element-to-interactive-role: Allow custom roles config (#23507) (camc314)
  • 924b931 linter/unicorn/prefer-at: Handle checking all indexes correctly (#23504) (camc314)
  • ca9686b linter/unicorn/prefer-at: Report zero indexes (#23503) (camc314)
  • e96a4e3 linter/unicorn/explicit-length-check: Ignore optional chains (#23487) (camc314)
  • a303c23 linter/jsx-a11y: Align anchor-is-valid config with upstream (#23446) (camc314)
  • f27a6d1 linter: False positives with non *.setTimeout call in no-confusing-set-timeout (#23444) (camc314)

⚡ Performance

  • 8e0dd65 linter: Emit RuleEnum dispatch match once instead of per timing branch (#23499) (Boshen)
  • d5c7d99 linter/expect-expect: Avoid recompiling matches on every traversal (#23593) (camc314)
  • f191520 linter/no-useless-spread: Avoid collecting Vec before iterating (#23546) (camc314)
  • 79340d1 linter: Stream React lifecycle ancestors (#23545) (camc314)
  • 1923169 linter/eslint/max-classes: Gate rule by rule config threshold (#23509) (camc314)
  • 3f60de3 linter: Use bucketed dispatch for all files (#23452) (camc314)
  • 3699971 linter/typescript/no-unnecessary-parameter-property-assignment: Avoid temporary vec allocations (#23492) (camc314)
  • 4ef0ceb linter/eslint/no-useless-switch-case: Avoid temporary vec allocations (#23489) (camc314)
  • 2e09dd3 linter: Avoid JSX fragment child collections (#23486) (camc314)
  • f30a64c linter/oxc/branches-sharing-code: Borrow shared branch suggestion text (#23484) (camc314)
  • 097a317 linter/eslint/no-control-regex: Retain control regex candidates in place (#23482) (camc314)
  • b3a093d linter: Reuse rule dispatch buckets (#23450) (camc314)
  • 9f1a985 oxlint: Start Tokio only for LSP (#23447) (camc314)

📚 Documentation

  • 9e219de linter/plugins: Update usage instruction (#23495) (Tony)
  • b50bf4d linter: Remove manually written options doc for eslint/arrow-body-style (#23490) (Mikhail Baev)

Oxfmt v0.56.0

🐛 Bug Fixes

  • f21ed2c formatter_json: Normalize CRLF for suppressed text (#23702) (leaysgur)
  • 7cd1737 formatter: Normalize CRLF for suppressed text (#23701) (leaysgur)
  • a36e444 formatter: Member chain panic when tail is merged with comment in dev build (#23698) (leaysgur)
  • 600d306 formatter: Preserve parens with default export and type cast (#23697) (leaysgur)
  • 61290f2 formatter: Single-member intersection/union type with comment formatting (#21915) (Leonabcd123)
  • 5a1b0b4 formatter: Parenthesize a type assertion used as the base of ** (#23633) (Jerry Zhao)
  • 91827e2 formatter: Use Ordering::reverse() with order: desc for idempotency (#23543) (leaysgur)
  • 8fa7394 formatter_json: Handle wrapped error span (#23472) (leaysgur)
  • 37a34a1 oxfmt/lsp: Avoid newlines line ending changes (#23463) (Sysix)

⚡ Performance

  • 80f1697 formatter: Avoid arena copy for already-lowercase bigint literals (#23534) (Yunfei He)
  • 1a40b71 formatter: Avoid arena copy for borrowed numeric-literal text (#23512) (Yunfei He)
  • 12e4451 formatter: Avoid arena copy for borrowed string-literal text (#23465) (Yunfei He)

oxc crates_v0.137.0

18 Jun 09:38
Immutable release. Only release title and notes can be modified.
6d56d57

Choose a tag to compare

💥 BREAKING CHANGES

  • 7a76cd3 estree: [BREAKING] Make whether to include TS fields a runtime option (#23574) (overlookmotel)
  • e7b6b68 estree: [BREAKING] ESTree config use methods not consts (#23573) (overlookmotel)

🚀 Features

  • 556cc6d data_structures: Add CodeBuffer::as_str method (#23571) (overlookmotel)
  • 38c4b06 parser: Add friendly error for adjacent JSX elements (#23378) (sapphi-red)
  • 53509a8 minifier: Treeshake pure typed arrays and Set/Map array literals (#23469) (Dunqing)
  • 09762d9 minifier: Inline const value for read-only vars (#22593) (Dunqing)

🐛 Bug Fixes

  • 20375f9 react_compiler: Keep imports referenced only by a computed key (#23586) (Boshen)
  • 31bfd9b minifier: Keep Object introspection calls on a possible Proxy (#23483) (Dunqing)
  • 837a395 parser: Treat a line comment after ':' as leading, not trailing (#23515) (Dunqing)
  • e409fe0 minifier: Keep new Map/WeakSet/WeakMap with a string argument (#23470) (Dunqing)
  • ae02b4e ci/parser: Use minimal for vitest reporter (#23457) (camc314)

⚡ Performance

  • cf24329 mangler: Compile slot sort once instead of per CAPACITY (#23577) (Boshen)
  • 4058a6a parser: Reduce code bloat from verify_modifiers monomorphization (#23576) (Boshen)
  • 053b0c1 estree: Remove pointless mem::take (#23572) (overlookmotel)
  • dfb52b6 transformer: Pre-size statement vecs in TS enum & namespace lowering (#23516) (Yunfei He)
  • 970e09a minifier: Compute template-literal inline checks in a single pass (#23467) (Yunfei He)
  • 3170c0e semantic,mangler,minifier: Fix Semantic::stats node count and reuse stats in mangler builds (#23352) (Boshen)
  • d1fa6e0 minifier: Evaluate ternary branches once in minimize_conditional_expression (#23479) (Yunfei He)
  • 3fa8051 transformer: Pre-size JSX props vec to attribute count (#23466) (Yunfei He)
  • 488b382 react_compiler: Borrow binding names in prefilter instead of allocating (#23471) (Yunfei He)
  • bcb3894 minifier: Incremental scoping refresh, delete LiveUsageCollector (#23197) (Dunqing)

📚 Documentation

  • f68641e data_structures: Improve docs on safety contract (#23575) (overlookmotel)

oxc crates_v0.136.0

15 Jun 12:13
Immutable release. Only release title and notes can be modified.
827248a

Choose a tag to compare

💥 BREAKING CHANGES

  • 7a24911 codegen: [BREAKING] Borrow sourcemaps from codegen (#23422) (Boshen)
  • bb0ed44 transformer: [BREAKING] Disable styled-components transpileTemplateLiterals by default (#23171) (Boshen)

🚀 Features

  • 1490a0a linter/react: Implement react-compiler rule (#23202) (Boshen)
  • 6c0bdf0 transformer/react-refresh: Support module.property.useHook() (#23190) (Dunqing)
  • 47991bd semantic: Report TS1228 for invalid type predicates (#23174) (camc314)
  • 1d3af58 parser: Add TS2398 parameter property diagnostic (#23216) (camc314)
  • 44313da semantic: Add scope_is_descendant_of api (#22313) (camc314)
  • e5050c0 parser: Improve diagnostic for rest initializer (#23205) (camc314)
  • ec266bb transformer: Run React Compiler as a feature-gated transform pass (#23201) (Boshen)
  • e7374fe parser: Report error for const modifier on interface type parameter (#23173) (camc314)
  • a7c1c9b parser: Report ambient definite variable assertions (#23165) (camc314)
  • d169fcd parser: Report invalid class definite assertions (#23164) (camc314)
  • 00244d8 parser: Report definite property initializer errors (#23160) (camc314)

🐛 Bug Fixes

  • 52d0c31 transformer: Replace ambient dot defines (#23231) (camc314)
  • 2c28748 transformer/class: Parent generated constructors to class scope (#23222) (camc314)
  • 8edd234 parser: Report accessor definite assertion on token (#23203) (camc314)
  • de38a3f react_compiler: Keep imports referenced only by a local re-export (#23176) (Boshen)
  • f5721c2 codegen: Preserve parentheses around intrinsic type reference (#23156) (Boshen)
  • e89f81d parser: Don't emit TS1477 for parenthesized instantiation expression (#23147) (Boshen)
  • 8a04149 parser: Reject module-referencing imports/exports in a namespace body (#22829) (Boshen)

⚡ Performance

  • 2783295 parser: Table-driven operator precedence lookup (#23346) (Boshen)
  • 231d5de parser: Single-match member expression dispatch (#23347) (Boshen)
  • e89729b codegen: Accept one-shot wrap closures (#23265) (camc314)
  • a6c11fa parser: Force-inline read_non_decimal to fold per-digit number dispatch (#23157) (Boshen)
  • d74964c parser: Store class definite assertion offset (#23170) (camc314)
  • f0fda4d parser: Shrink-wrap cold diagnostic tails out of hot frames (#23159) (Boshen)
  • a082180 parser: Store definite assertion offset (#23167) (camc314)
  • 534f9c6 oxc: Conditionally rebuild semantic in compiler pipeline (#23153) (Boshen)
  • b435c6a parser: Skip checkpoint for infer T extends U constraint in disallow context (#23128) (Boshen)
  • 7464dce parser: Peek instead of checkpoint/rewind for export default modifier (#23124) (Boshen)
  • 80a9a32 parser: Fast-path single-keyword TS declarations (#23083) (Boshen)
  • da1a6c6 diagnostics: Migrate to allocation-optimized oxc-miette (#23094) (Boshen)
  • b7b08ce parser: Peek once for the static modifier disambiguation (#23079) (Boshen)
  • e7e07a3 parser: Fold unary dispatch into a single match (#23076) (Boshen)

📚 Documentation

  • d241add semantic: Add AGENTS.md test guidance for agents (#23441) (camc314)
  • 026f1ae parser: Add AGENTS.md test guidance for agents (#23440) (camc314)
  • 09755ac transformer: Add AGENTS.md test guidance for agents (#23439) (camc314)
  • e6bdfd4 lexer: Correct reference link for byte_handlers! (#23313) (Dunqing)
  • 65b6d7a allocator: Fix memory leaks in Arena examples (#23257) (overlookmotel)

oxlint v1.70.0 & oxfmt v0.55.0

15 Jun 13:37
Immutable release. Only release title and notes can be modified.
aa79b5b

Choose a tag to compare

Table of Contents

Oxlint v1.70.0

Highlights

  • 1490a0a linter/react: Implement react-compiler rule (#23202) (Boshen)

🚀 Features

  • 5e1627d linter/unicorn: Flag all Error() calls without new in throw-new-error (#23363) (Cason Kervis)
  • 2e8bda4 linter/vue: Implement no-dupe-keys rule (#23350) (bab)
  • dd560ae linter/unicorn: Implement no-array-fill-with-reference-type rule (#23397) (Mikhail Baev)
  • af36c2f linter: Add schema for react/jsx-curly-brace-presence (#23400) (WaterWhisperer)
  • 47d34a3 linter: Add schema for react/jsx-handler-names (#23393) (WaterWhisperer)
  • f4250d0 linter: Add schema for unicorn/import-style (#23386) (WaterWhisperer)
  • 30c74ce linter: Add schema for jsx_a11y/no-noninteractive-element-to-interactive-role (#23384) (Sysix)
  • cfbe8dc linter: Add schema for jsx_a11y/no-interactive-element-to-noninteractive-role (#23382) (WaterWhisperer)
  • d15b7ff linter: Add schema for typescript/no-restricted-types (#23381) (WaterWhisperer)
  • 028a811 linter: Add schema for jsx-a11y/media-has-caption (#23377) (Sysix)
  • b3b1038 linter: Add schema for jsx-a11y/label-has-associated-control (#23376) (Sysix)
  • 7ada6b2 linter: Add schema for jsx_a11y/no-distracting-elements (#23379) (WaterWhisperer)
  • ee3dd49 linter: Add schema for jsx-a11y/img-redundant-alt (#23374) (Sysix)
  • df5f8dd linter: Add short descriptions to most lint rules. (#23365) (Connor Shea)
  • e3fd735 linter: Add schema for jsx_a11y/alt-text (#23369) (Sysix)
  • 0f2fff4 linter: Add schema for react/exhaustive-deps (#23372) (Mikhail Baev)
  • e3e4e10 linter: Add schema for react_perf/jsx-no-new-object-as-prop (#23368) (Mikhail Baev)
  • 9366d44 linter: Add schema for unicorn/prefer-at (#23366) (WaterWhisperer)
  • f57b55d linter: Add schema for typescript/array-type (#23355) (Sysix)
  • 0dcf912 linter: Add schema for typescript/ban-ts-comment (#23354) (Sysix)
  • 51fa83e linter: Add schema for react/no-did-update-set-state (#23357) (Mikhail Baev)
  • 59db0bd linter: Add schema for consistent-generic-constructors (#23353) (Sysix)
  • c4775c0 linter: Add schema for typescript/consistent-type-assertions (#23349) (Sysix)
  • 6e516f7 linter: Add schema for typescript/consistent-type-imports (#23348) (Sysix)
  • 012134d linter: Add schema for react/jsx-no-target-blank (#23345) (WaterWhisperer)
  • 0806aae linter: Add schema for jsx_a11y/no-noninteractive-tabindex (#23337) (Mikhail Baev)
  • 0708b5a linter: Add schema for react/jsx-filename-extension (#23315) (Mikhail Baev)
  • 150bce1 linter: Add schema for typescript/no-empty-object-type (#23309) (Sysix)
  • f9e36f1 linter: Add schema for typescript/no-duplicate-type-constituents (#23308) (Sysix)
  • 937accf linter: Add schema for typescript/no-invalid-void-type (#23307) (Sysix)
  • 3e042b9 linter: Add schema for typescript/no-misused-promises (#23306) (Sysix)
  • da212d1 linter: Add schema for typescript/no-unnecessary-condition (#23305) (Sysix)
  • f8f0d38 linter: Add schema for typescript/parameter-properties (#23304) (Sysix)
  • 2275fc7 linter: Add schema for typescript/prefer-nullish-coalescing (#23302) (Sysix)
  • d353858 linter: Add schema for typescript/prefer-string-starts-ends-with (#23301) (Sysix)
  • 03060f5 linter: Add schema for typescript/triple-slash-reference (#23300) (Sysix)
  • 6619cee linter: Add schema for promise/param-names (#23298) (Sysix)
  • 8bf108e linter: Add schema for promise/catch-or-return (#23297) (Sysix)
  • 48158d0 linter: Add schema for vitest/consistent-each-for (#23294) (Sysix)
  • 7e74c98 linter: Add schema for vitest/consistent-test-filename (#23293) (Sysix)
  • ff94d4a linter: Add schema for vitest/consistent-vitest-vi (#23292) (Sysix)
  • 2409a10 linter: Add schema for vitest/prefer-import-in-mock (#23291) (Sysix)
  • 3d782b7 linter: Add schema for react/no-unstable-nested-components (#23287) (Mikhail Baev)
  • 0a0bc2f linter/jsx-a11y: Add allowedRedundantRoles option to no-redundant-roles (#22820) (bab)
  • 80758a5 linter/vue: Implement no-side-effects-in-computed-properties rule (#23282) (bab)
  • e3869ac linter: Add schema for react/no-object-type-as-default-prop (#23279) (Mikhail Baev)
  • 4480609 linter: Add schema for react/jsx-props-no-spreading (#23276) (Mikhail Baev)
  • 08d68a5 linter/react: Implement jsx-no-literals rule (#23145) (kapobajza)
  • 9a2788b linter/unicorn: Implement prefer-export-from rule (#22935) (AliceLanniste)
  • bdb723c linter/unicorn: Implement prefer-single-call rule (#23235) (Yuzhe Shi)
  • 31543ed linter: Add schema for vue/define-props-destructuring (#23252) (Sysix)
  • 21b6c3d linter: Add schema for oxc/no-async-endpoint-handlers (#23251) (Sysix)
  • e77ff81 linter: Add schema for unicorn/prefer-object-from-entries (#23249) (Mikhail Baev)
  • bcac2d6 linter: Add schema for jest/vitest/no-restricted-matchers (#23247) (Sysix)
  • 539f036 linter: Add schema for jest/vitest/no-restricted-*-methods (#23246) (Sysix)
  • dd1b927 linter/vue: Implement require-default-prop rule (#22951) (bab)
  • 3f018e7 linter: Add schema for unicorn/no-instanceof-builtins (#23225) (Mikhail Baev)
  • 5b9a793 linter/react-perf: Support nativeAllowList config (#22996) (Cole Ellison)
  • b4e19d4 linter: Improve promise/catch-or-return termination diagnostics (#23218) (camc314)
  • 9b72a41 linter/promise/catch-or-return: Add support for allowThenStrict option (#23206) (camc314)
  • e0d0f78 linter: Verify promise/no-callback-in-promise schema (#23141) (beanscg)
  • 123d4f4 linter: Add schema for jest/vitest/valid-expect (#23185) (Sysix)
  • 46c8a21 linter: Add schema for jest/vitest/require-top-level-describe (#23184) (Sysix)
  • 41465cf linter: Add schema for jest/vitest/prefer-snapshot-hint (#23183) (Sysix)
  • d068b9b linter: Add schema for jest/vitest/prefer-expect-assertions (#23181) (Sysix)
  • 064a1ee linter: Add schema for jest/prefer-ending-with-an-expect (#23180) (Sysix)
  • d046797 linter: Add schema for jest/vitest/no-standalone-expect (#23179) (Sysix)
  • 137b9a6 linter: Add schema for jest/vitest/no-large-snapshots (#23178) (Sysix)
  • 0f3e4a5 linter: Add schema for jest/vitest/no-hooks (#23177) (Sysix)
  • 00244d8 parser: Report definite property initializer errors (#23160) (camc314)
  • cd0b384 linter: Add schema for unicorn/explicit-length-check (#23155) (Mikhail Baev)
  • 01b74c4 linter: Add schema for jest/no-deprecated-functions (#23136) (Sysix)
  • 9d6a387 linter: Add schema for unicorn/catch-error-name (#23137) (Mikhail Baev)
  • 0da8efa linter: Add schema for jest/vitest/max-nested-describe (#23131) (Sysix)
  • d71c9fd linter: Add schema for eslint/no-use-before-define (#23129) (Sysix)

🐛 Bug Fixes

  • 5cb8d1b linter/jsx-a11y/control-has-associated-label: Reject excessive label depth (#23445) (camc314)
  • 019be2e linter/unicorn: Align throw-new-error parity (#23437) (camc314)
  • b9e5e51 linter/jest: Validate no-restricted-jest-methods config (#23436) (camc314)
  • f302f41 linter: Normalize oxlint jsPlugin prefixes (#23335) (konh)
  • 2bdf8ce linter/jest: Validate no-restricted-matchers config (#23434) (camc314)
  • 5c2fb45 linter/eslint: Validate max-depth config (#23430) (camc314)
  • eafc280 linter/eslint: Validate no-unused-vars config (#23433) (camc314)
  • 25aebb0 linter/typescript: Validate no-empty-object-type config (#23432) (camc314)
  • 7cafe3b linter/unicorn: Validate catch-error-name config (#23431) (camc314)
  • af1b897 linter/unicorn: Validate prefer-object-from-entries config (#23429) (camc314)
  • 68d48fe linter/eslint: Validate max-classes-per-file config (#23428) (camc314)
  • 02932b6 linter/eslint: Validate complexity config (#23427) (camc314)
  • 375e574 linter/eslint: Use shared id-length regex config (#23426) (camc314)
  • ba3e2e0 linter/eslint: Preserve used imports in no-unused-vars fixer (#23425) (camc314)
  • 26ddac6 linter: Avoid config schema generation for jsx_a11y/no-noninteractive-element-interactions (#23385) (Sysix)
  • 40556ad linter: Parse jsx-a11y/control-has-associated-label config with DefaultRuleConfig (#23373) (Sysix)
  • dacbda8 linter/unicorn/prefer-string-starts-ends-with: Mark rule as deprecated (#23342) (camc314)
  • 956309a lsp: Use protocol line breaks for positions (#23329) (konh)
  • 71e9648 linter: Expose no-noninteractive-element-interactions schema (#23283) (camc314)
  • 4c4c19c linter: no-noninteractive-element-interactions fix default values (#23288) (Sysix)
  • e63a139 linter/jsx-a11y: Restore control label defaults (#22737) (konh)
  • 0e4e59f linter/jsx-a11y: No-redundant-roles attribute-aware implicit roles for <input>, skip ancestor-conditional elements (#23015) (Gaurav Dubey)
  • 06e215e linter/vitest: Validate consistent-each-for config (#23278) (camc314)
  • cd278e1 linter/promise: Validate param-names config (#23277) (camc314)
  • 7f46013 linter/react/display-name: Handle default export function correctly (#23271) (camc314)
  • 22ff6a6 linter/unicorn: Deserialize filename-case config with serde (#23266) (camc314)
  • b644da0 linter/eslint: Add fixer for sort_vars (#23262) (Cason Kervis)
  • 778af4d linter/unicorn: Support array of patterns for unicorn/filename-case ignore option (#23260) (kapobajza)
  • 127fb2c linter: Deserialize rule config with serde for unicorn/prefer-object-from-entries (#23253) (Sysix)
  • f89b909 linter/react/jsx-no-target-blank: Handle compound conditions (#23245) (camc314)
  • c30419a linter/typescript: Deserialize rule config with serde for consistent-generic-constructors (#23238) (camc314)
  • 7d17d37 linter/react: Report invalid exhaustive-deps config (#23239) (camc314)
  • 1060186 linter/eslint: Add deny_unknown_fields to prefer-destructuring (#23237) (camc314)
  • fd2e4eb linter/react: Add deny_unknown_fields to exhaustive-deps (#23236) (camc314)
  • 6c3c904 linter/react/jsx-curly-brace-presence: Avoid false positive with comment within braces ...
Read more

oxc crates_v0.135.0

08 Jun 14:44
Immutable release. Only release title and notes can be modified.
e9b8fd5

Choose a tag to compare

💥 BREAKING CHANGES

  • ee4dc73 ast: [BREAKING] Add #[non_exhaustive] to AST nodes (#23046) (overlookmotel)
  • 4c35362 ast: [BREAKING] Add AstBuilder::template_element_escape_raw and template_element_escape_raw_with_lone_surrogates methods (#23047) (overlookmotel)

🚀 Features

  • b846ab2 react_compiler: Integrate the Rust port of the React Compiler (#22942) (Boshen)
  • 5b8dd68 parser: Report TS1255 for invalid class definite assertions (#22917) (camc314)
  • 85efabf semantic: Make building the class table optional, off by default (#22862) (Boshen)

🐛 Bug Fixes

  • 556acdc codegen: Parenthesize TS-cast assignment targets (#23112) (Boshen)
  • 37169ff codegen: Don't emit space between postfix -- and > when minifying (#23036) (Boshen)
  • a4b1bf7 codegen: Drop redundant whitespace in minified TypeScript output (#23038) (Boshen)
  • cf53285 parser: Report reserved type-declaration names in the parser (#23035) (Boshen)
  • 4e44969 ast: Fix UB in escape_template_element_raw (#23052) (overlookmotel)
  • c543154 parser: Report comma operator in JSX expression in the parser (#23030) (Boshen)
  • 325c94f codegen: Tighten conditional-type and constructor-type whitespace when minifying (#23033) (Boshen)
  • 95dd3a2 parser: Report import type alias to a non-external reference in the parser (#23032) (Boshen)
  • 90180b8 codegen: Drop space after : in function return type when minifying (#23028) (Boshen)
  • 6da876e parser: Report abstract private class field in the parser (#23029) (Boshen)
  • 28467ce codegen: Don't emit space before a postfix update operand when minifying (#23027) (Boshen)
  • cb29926 codegen: Drop redundant space after export default when minifying (#23024) (Boshen)
  • 62965ae codegen: Drop redundant space after else when minifying (#23025) (Boshen)
  • 989230a parser: Report compound assignment to non-simple target in the parser (#23022) (Boshen)
  • 06f367c parser: Report super.#field private access in the parser (#23014) (Boshen)
  • 184edef codegen: Print space before const/declare enum modifier (#23013) (Boshen)
  • 4d722e0 parser: Report duplicate switch default clause in the parser (#23012) (Boshen)
  • 597ed85 codegen: Parenthesize let/async for-of head target (#23008) (Boshen)
  • 8b631bf codegen: Remove stray space before mapped type value colon (#23010) (Boshen)
  • c08407e codegen: Don't over-parenthesize in inside an arrow in a for-init (#23009) (Boshen)
  • 600cd6f codegen: Parenthesize lower-precedence TSInstantiationExpression operand (#23007) (Boshen)
  • 187e1a5 codegen: Don't leak space after comment-only JSX expression container (#23006) (Boshen)
  • 294c473 codegen: Don't over-parenthesize TSTypeAssertion operand (#23004) (Boshen)
  • 786d96f codegen: Give TSTypeAssertion unary precedence (#23002) (Boshen)
  • 1295882 parser: Report new.target and import.meta syntax errors in the parser (#23003) (Boshen)
  • d727b6b codegen: Parenthesize await expression as base of ** (#23001) (Boshen)
  • 67dfa08 codegen: Keep parentheses around new callees containing a call (#22997) (Boshen)
  • 17e7cf3 parser: Disallow unerasable as/satisfies assertions (#22986) (Boshen)
  • beb46d3 parser: Commit to module goal on decorated exports (#22941) (Boshen)
  • 49e63f7 isolated-declarations: Require annotations for satisfies initializers (#22898) (camc314)
  • 8c93601 isolated-declarations: Allow unknown enum initializer in non-const enum (#22900) (camc314)

⚡ Performance

  • 7d89909 parser: Peek instead of lookahead for yield disambiguation (#23071) (Boshen)
  • bf872f0 parser: Skip arrow lookahead for a parenthesized literal (#23070) (Boshen)
  • d19fc54 parser: Guard type-argument speculation behind an angle-token check (#23069) (Boshen)
  • 8eb5507 parser: Skip redundant member-rest re-scan on call entry (#23068) (Boshen)
  • 883dfc1 parser: Skip parse_call_expression_rest when no call follows (#23063) (Boshen)
  • b171153 parser: Peek before the await-using lookahead (#23059) (Boshen)
  • 56f21bd parser: Use peek_token for the TS asserts type predicate (#23058) (Boshen)
  • 68805ac parser: Use peek_token instead of checkpoint/rewind for single-token decisions (#23056) (Boshen)
  • 1f9d8eb ast: AstBuilder::template_element_escape_raw avoid allocation if no escape required (#23053) (overlookmotel)
  • 502b04d semantic: Move cold function redeclaration handling into #[cold] function (#22973) (overlookmotel)

📚 Documentation

  • 275d318 napi/minifier: Point target to oxc docs (#23102) (camc314)

oxlint v1.69.0 & oxfmt v0.54.0

08 Jun 14:41
Immutable release. Only release title and notes can be modified.
44ae845

Choose a tag to compare

Table of Contents

Oxlint v1.69.0

🚀 Features

  • e805174 linter: Add schema for jest/vitest/max-expects (#23105) (Sysix)
  • 7850577 linter: Add schema for jest/vitest/expect-expect (#23104) (Sysix)
  • 75f641a linter: Add schema for jest/vitest/consistent-test-it (#23103) (Sysix)
  • 5125f89 linter/unicorn: Support no-null checkArguments option (#23098) (camc314)
  • b8b9797 linter: Add schema for import-max-dependencies (#23096) (Sysix)
  • 65cb47a linter/eslint: Support no-unused-expressions ignoreDirectives option (#23097) (camc314)
  • f6c36d5 linter: Add schema for import/prefer-default-export (#23091) (Sysix)
  • 0d4a5d1 linter: Add schema for eslint/sort-vars (#23090) (Sysix)
  • fdb5bf5 linter: Add schema for eslint/radix (#23082) (Sysix)
  • 05b4dcf linter: Add schema for eslint/prefer-const (#23081) (Sysix)
  • 5a06c4d linter/vue: Implement next-tick-style rule (#23041) (Alex Peshkov)
  • e38a36a linter: Add schema for eslint/operator-assignment (#23080) (Sysix)
  • 907cee7 linter: Add schema for eslint/no-warning-comments (#23075) (Sysix)
  • 9470bb2 linter: Add schema for eslint/no-unused-vars (#23073) (Sysix)
  • 234b5cf linter: Add schema for eslint/no-shadow (#23072) (Sysix)
  • de0dd8b linter: Add schema for eslint/no-restricted-exports (#23020) (Sysix)
  • faa3e0d linter: Add schema for eslint/no-param-reassign (#23018) (Sysix)
  • dbc9c27 linter: Add schema for eslint/no-magic-numbers (#23017) (Sysix)
  • 38d3569 linter: Add schema for eslint/no-inner-declarations (#23016) (Sysix)
  • 008fa41 linter: Add schema for eslint/no-constant-condition (#22991) (Sysix)
  • ca44623 linter: Add schema for eslint/no-empty-function (#22988) (Sysix)
  • 43eb04d linter: Add schema for eslint/id-match (#22987) (Sysix)
  • a800f27 linter: Add schema for eslint/capitalized-comments (#22984) (Sysix)
  • 96e2d32 linter: Add schema for eslint/id-length (#22963) (Sysix)
  • 545493f linter: Add schema for eslint/complexity (#22960) (Sysix)
  • 5f0b558 linter: Add schema for eslint/class-methods-use-this (#22959) (Sysix)
  • 719b720 linter: Add schema for simple rule configurations (#22948) (Sysix)
  • fd00966 linter: Add right schema for eslint/max-* rules (#22923) (Sysix)
  • 1226d78 linter: Fill schema with rule configurations (#22907) (Sysix)
  • 8f423c1 linter/vue: Implement require-direct-export rule (#17623) (yefan)
  • 78e915b linter/vue: Implement no-reserved-props rule (#22914) (bab)
  • 0f200a9 linter/vue: Implement require-prop-types rule (#22083) (Alex Peshkov)
  • 5da9da9 linter/vue: Implement no-reserved-keys rule (#21780) (bab)
  • 75e14a8 linter/vue: Implement prop-name-casing rule (#22892) (bab)
  • 85efabf semantic: Make building the class table optional, off by default (#22862) (Boshen)

🐛 Bug Fixes

  • a49b0cf linter/no-map-spread: Remove ineffective autofix (#22956) (camc314)
  • cf53285 parser: Report reserved type-declaration names in the parser (#23035) (Boshen)
  • 0383e61 linter: Fix schema for rules without a config (#22946) (Sysix)
  • 4d722e0 parser: Report duplicate switch default clause in the parser (#23012) (Boshen)
  • 6cb34b8 linter/plugins: Make spreading Token instances keep loc property (#22947) (Nicolas Le Cam)
  • 27de044 linter/plugins: Make spreading Comment instances keep loc property (#22238) (Nicolas Le Cam)
  • 742fd0b linter/double-comparisons: Make fixer a suggestion (#22968) (camc314)
  • 93f4494 linter: Respect default child config plugin when extending parent config (#22903) (Sysix)
  • 594ed86 linter: Deny unknown options for some rules (#22924) (Sysix)
  • 3253038 linter/expect-expect: Align default rule options (#22890) (camc314)
  • bbe44ea linter: Respect default plugins from extended config (#22896) (Sysix)

⚡ Performance

  • 0b7ce7e linter/plugins: Create global prop vars at top level of modules (#22928) (overlookmotel)
  • 0f7c319 linter/plugins: Define class #loc setter functions as consts (#22919) (overlookmotel)

📚 Documentation

  • 7b0380d linter: Remove preserve-caught-error note (#22994) (camc314)
  • dadafe3 oxlint, oxfmt: Mention migrate skills in npm READMEs (#22965) (Boshen)

Oxfmt v0.54.0

🚀 Features

  • 3da77e0 oxfmt: Format parser:json5 files by oxc_formatter_json (#22990) (leaysgur)
  • c786f0d oxfmt: Format parser:jsonc files by oxc_formatter_json (#22913) (leaysgur)
  • 27a6db8 formatter_json: Implement jsonc variant (#22912) (leaysgur)

🐛 Bug Fixes

  • 2aedd52 oxfmt: Avoid JS promise rejects for all TSFN call sites (#23107) (leaysgur)
  • 01e0871 formatter,formatter_json: Handle PS/LS as line terminator (#22978) (leaysgur)
  • 23902d9 formatter_json: Handle CR only line breaks (#22977) (leaysgur)
  • 136b72b formatter_json: Use line_suffix for line comment outside array (#22931) (leaysgur)
  • 44e40fa formatter_json: Expand line comment inside array (#22911) (leaysgur)
  • 2c86896 formatter_json: Avoid example binary name collision (#22904) (camc314)

📚 Documentation

  • cc69d8d formatter_json: Update AGENTS.md (#22981) (leaysgur)
  • 0490721 formatter_json: Update AGENTS.md (#22976) (leaysgur)
  • dadafe3 oxlint, oxfmt: Mention migrate skills in npm READMEs (#22965) (Boshen)
  • f88961a oxfmt: Annotate each config option with supported languages (#22953) (leaysgur)
  • 7e514bf formatter_json: Update AGENTS.md (#22930) (leaysgur)

oxc crates_v0.134.0

01 Jun 16:34
Immutable release. Only release title and notes can be modified.
6c30f81

Choose a tag to compare

🚀 Features

  • 81b86eb parser: Report TS1095 for setter with return type (#22889) (camc314)
  • 0899485 parser: Report TS1051 for optional setter parameter (#22887) (camc314)
  • 139b531 parser: Emit TS1094 for accessor type parameters (#22885) (camc314)
  • 9c71f2e ast, codegen, formatter: Add WithClauseKeyword::as_str helper and use it (#22791) (camc314)

🐛 Bug Fixes

  • 070eb9e isolated-declarations: Omit public accessor modifier (#22880) (camc314)
  • a3ae099 isolated-declarations: Omit definite assertion from private declarations (#22878) (camc314)
  • 7914807 codegen: Map call-chain punctuation for correct V8 stack columns (#22789) (Dunqing)
  • cf5769c parser: Reject TypeScript declarations in single-statement context (#22827) (Boshen)
  • c360fb6 parser: Reject generators in ambient contexts and overload signatures (TS1221/TS1222) (#22848) (Boshen)
  • cc60d8d parser: Reject invalid index signature parameter types (TS1268/TS1337) (#22852) (Boshen)
  • 3d13e29 parser: Reject declare in an already-ambient context (TS1038) (#22850) (Boshen)
  • 5152854 parser: Reject statements in ambient contexts (TS1036) (#22849) (Boshen)
  • 4f9afc5 parser: Reject export as namespace inside a namespace body (TS1316) (#22846) (Boshen)
  • 2eafea6 parser: Reject function implementations in ambient contexts (TS1183) (#22845) (Boshen)
  • c645615 parser: Reject incompatible class member modifiers (#22843) (Boshen)
  • 276b78b parser: Reject module-referencing imports/exports in a namespace body (#22836) (Boshen)
  • 842ed1c parser: Parse class implements with implements as the class name (#22801) (Boshen)

⚡ Performance

  • 7e3a567 parser: Reuse cached token kind in delimited-list loops (#22841) (Boshen)
  • 9e741c2 parser: Use peek_token instead of lookahead on the modifier path (#22842) (Boshen)
  • 9e496a7 semantic: Defer declare lookup for empty accessors (#22810) (camc314)

oxlint v1.68.0 & oxfmt v0.53.0

01 Jun 17:08
Immutable release. Only release title and notes can be modified.
964a758

Choose a tag to compare

Table of Contents

Oxlint v1.68.0

🚀 Features

  • 81b86eb parser: Report TS1095 for setter with return type (#22889) (camc314)
  • 3f05c5e linter: Expose override::exclude_files option (#22884) (camc314)
  • e4b1f46 linter/typescript: Implement method-signature-style rule (#22679) (Mikhail Baev)
  • bc462ca linter/vue: Implement no-reserved-component-names rule (#22741) (bab)
  • ef9e751 linter/vue: Implement component-definition-name-casing rule (#22818) (bab)
  • d67f51a linter/vue: Implement require-prop-type-constructor rule (#22708) (bab)
  • 1444f82 linter/promise/spec-only: Add Promise.try to Promise static methods (#22812) (Ben Saufley)
  • 8422e8b linter/jsdoc: Implement require-yields-description rule (#22805) (Mikhail Baev)
  • fe93f97 linter/eslint: Implement prefer-named-capture-group rule (#22759) (Sebastian Poxhofer)
  • 1a7798b linter: Add suggestion for unicorn/no-new-array (#22682) (Sysix)

🐛 Bug Fixes

  • 4957c71 linter/arrow-body-style: False positive with non-zero directive count (#22888) (camc314)
  • 760a9f9 linter: Report errors when writing to the filesystem (#22881) (camc314)
  • e5a2748 linter: Avoid no-unreachable false positive after conditional loop (#22869) (camc314)
  • 39d92d6 linter/arrow-body-style: Preserve comments within function (#22854) (Sysix)
  • 3d13e29 parser: Reject declare in an already-ambient context (TS1038) (#22850) (Boshen)
  • 5152854 parser: Reject statements in ambient contexts (TS1036) (#22849) (Boshen)
  • 2eafea6 parser: Reject function implementations in ambient contexts (TS1183) (#22845) (Boshen)
  • c645615 parser: Reject incompatible class member modifiers (#22843) (Boshen)
  • 4a1ca4a linter/export: Detect duplicate explicit exports (#22798) (camc314)
  • 0a9a735 linter/no-loop-func: Allow safe let closures (#22811) (camc314)
  • 1599f11 linter: Align lsp extends default plugins (#22788) (camc314)
  • db32ec9 linter/no-accumulating-spread: Use loop as primary span (#22800) (camc314)
  • 33ec6b4 linter/consistent-test-it: Avoid adjacent describe leakage (#22796) (camc314)
  • 2606069 linter/no-array-sort: Unwrap parenthesized sort args (#22794) (camc314)
  • 9f2f709 linter/no-array-sort: Skip non compare fn sort arguments (#22752) (Gaurav Dubey)
  • 27268a0 linter/no-else-return: Preserve statement boundary in fixer (#22687) (camc314)
  • d9cb6d8 linter/no-empty-function: Allow functions callbacks with allow: functions (#22764) (camc314)
  • a40a314 linter/no-shadow-restricted-names: Ignore enum members (#22762) (camc314)
  • 82366d9 linter/no-cond-assign: Align ternary handling (#22761) (camc314)

📚 Documentation

  • 5e113ba linter: Add license notices for ported ESLint plugins (#22768) (Boshen)

Oxfmt v0.53.0

🚀 Features

  • d75cbbf oxfmt: Format parser:json files by oxc_formatter_json (#22709) (leaysgur)
  • 49db054 formatter_json: Implement oxc_formatter_json (json variant only) (#22641) (leaysgur)
  • 9c71f2e ast, codegen, formatter: Add WithClauseKeyword::as_str helper and use it (#22791) (camc314)

🐛 Bug Fixes

  • d3cdd62 oxfmt: Skip formatting for whitespace-only file (#22780) (leaysgur)
  • 23f0cc8 formatter: Don't move comments inside variable declaration in for in loop (#22776) (leaysgur)
  • f200c40 formatter: Don't move comments inside variable declaration in for of loop (#22773) (Leonabcd123)

📚 Documentation

  • 845f393 oxfmt,formatter,formatter_json,formatter_core: Add/update AGENTS.md (#22873) (leaysgur)

oxc crates_v0.133.0

26 May 06:36
Immutable release. Only release title and notes can be modified.
83328b6

Choose a tag to compare

🚀 Features

  • e857b0c napi/minify: Expose legalComments option and result (#20370) (Boshen)
  • 661132d parser: More friendly error messages for rest assignment target and rest binding element (#22719) (sapphi-red)
  • ee659b6 transformer/legacy-decorator: Add strictNullChecks option for nullable-union design:type (#22266) (Kyle Cannon)

🐛 Bug Fixes

  • e1d064e transformer/class-properties: Reparent lifted private method helpers (#22716) (Cameron)
  • 4ac0fca minifier: Preserve 0 && (module.exports = { ... }) cjs-module-lexer hint (#22729) (Dunqing)
  • 40ff611 minifier: Mark peephole loop changed when dropping dead-after-throw statement (#22722) (Dunqing)
  • 2f7b210 codegen: Emit pife-arrow/function leading comments inside the wrap (#22720) (Dunqing)
  • e184f74 parser: Improve invalid import property access diagnostic (#22693) (camc314)
  • 7baed9c transformer/private-method: Clear inherited strict flags (#22508) (camc314)
  • a9ad27e parser: Keep annotation comments leading without preceding newline (#22711) (Dunqing)
  • 9ea4d64 minifier: Re-evaluate pure/no-side-effects flags after peephole inlining (#22595) (Dunqing)
  • 07afbb6 minifier: Drop empty-body IIFE wrapper when called with arguments (#22589) (Dunqing)
  • fa7c463 semantic: Correct TS enum member symbol spans (#22689) (camc314)
  • 26b9396 semantic: Resolve parameter decorators outside parameter scope (#22623) (camc314)
  • b284045 parser: Switch to module goal eagerly on export (#22684) (Boshen)
  • dfa931d semantic: Propagate unresolved auto-increment enum value instead of defaulting to 0 (#22646) (Dunqing)
  • 69a6ba6 transformer/legacy-decorator: Emit Array for ReadonlyArray in decorator metadata (#22265) (Kyle Cannon)
  • e421ef0 transformer/legacy-decorator: Return runtime binding for design:type (#22640) (Dunqing)
  • d61e1d7 codegen: Preserve verbatim text of pure/no-side-effects comments (#22525) (Dunqing)
  • 702b14e minifier: Preserve IIFE structure in DCE-only mode (#22547) (Dunqing)
  • 917da24 parser: Apply PURE comment through member-access chains (#22566) (Dunqing)
  • a069b1c codegen: Preserve quotes for cjs-module-lexer equality strings (#22551) (Dunqing)

⚡ Performance

  • 2f623b0 semantic: Skip unresolved checks for re-exports (#22660) (camc314)
  • 0d9553d semantic: Early-exit check_object_expression for objects with <2 properties (#22668) (Dunqing)
  • d721ad9 semantic: Use direct grandparent lookup for TS type parameters (#22658) (camc314)
  • 0aff288 semantic: Reorder numeric literal strict mode checks (#22657) (camc314)
  • 4d5ddb1 semantic: Reorder binding identifier checks (#22656) (camc314)
  • e32acd8 semantic: Reorder identifier ambient binding check (#22653) (camc314)
  • 09fe178 semantic: Reorder ident reference strict mode check (#22652) (camc314)
  • 4b6add2 semantic: Avoid duplicate ident clone for bindings (#22663) (camc314)
  • 82f9662 parser: Check identifier kind before context flag (#22662) (camc314)
  • d7cd951 parser: Fast path identifier parsing and inline operator helpers (#22650) (Boshen)
  • 7b84314 semantic: Use direct byte access for numeric leading-zero check (#22642) (camc314)
  • 0345a31 semantic: Pre-size class elements hash map (#22618) (camc314)
  • 04d3065 minifier: Drop per-call buffers in try_fold_concat (#22596) (Dunqing)
  • 4f289f1 semantic: Resolve_references_for_current_scope without a temp Vec (#22599) (Dunqing)
  • e862c15 semantic: Avoid heap alloc for var hoist scope ids (#22603) (Dunqing)
  • 8ff8674 semantic: Early return if excess is 0 in Stats::increase_by (#22616) (camc314)
  • 7a4120e semantic: Pre-reserve unresolved_references using Stats::references (#22580) (Dunqing)

oxlint v1.67.0 & oxfmt v0.52.0

26 May 07:12
Immutable release. Only release title and notes can be modified.
68b455d

Choose a tag to compare

Table of Contents

Oxlint v1.67.0

🚀 Features

  • 10da26b linter: no-misleading-character-class add suggestions for regex literal (#22681) (Sysix)
  • b84941e linter/vue: Implement no-expose-after-await rule (#22675) (bab)
  • 98b98c1 linter/vue: Implement no-computed-properties-in-data rule (#22674) (bab)
  • 868e2e8 linter: Add suggestion for no-misleading-character-class (#22631) (Sysix)
  • 2d4c919 oxlint: Support vite-plus/resolveConfig for vite.config.ts (#22456) (leaysgur)
  • 2a60012 linter/vue: Implement require-render-return rule (#22613) (bab)
  • 9f227fd linter/vue: Implement no-deprecated-props-default-this rule (#21892) (bab)
  • 9cd28b3 linter: Add debug option to print files to be linted (#22546) (camchenry)
  • 87f065e linter/vue: Implement return-in-emits-validator rule (#21935) (bab)
  • ea0380c linter/unicorn: Implement import-style rule (#22173) (Hao Chen)
  • dde40fe linter/vue: Implement no-watch-after-await rule (#22006) (bab)
  • a735eb0 linter/vue: Implement valid-next-tick rule (#22531) (bab)
  • 6dc615d linter/vue: Implement no-shared-component-data rule (#21842) (bab)
  • a656418 linter/vue: Implement valid-define-options rule (#22107) (bab)
  • bb6f1b2 linter/vue: Implement require-slots-as-functions rule (#22244) (bab)
  • 5fa4774 linter/n: Implement callback-return rule (#22470) (Mikhail Baev)

🐛 Bug Fixes

  • 52bd016 linter: Respect allow unused disable directives in LSP (#22715) (camc314)
  • fa7c463 semantic: Correct TS enum member symbol spans (#22689) (camc314)
  • ed445ba linter: Respect flags overrides for RegExp(/regex/i, "u") (#22678) (Sysix)
  • 26b9396 semantic: Resolve parameter decorators outside parameter scope (#22623) (camc314)
  • 203952d linter: no-misleading-character-class fix is_unicode_code_point_escape check (#22655) (Sysix)
  • 2f64d3d linter: no-misleading-character-class own diagnostic for surrogate pairs without u flag (#22654) (Sysix)
  • 0c6ebc2 linter/eslint/no-lone-blocks: Do not flag empty loops (#22649) (Mikhail Baev)
  • 2a7562e linter/no-focused-tests: Mark fixer as a suggestion (#22645) (camc314)
  • dbe644f linter: Respect args none for unused rest parameters (#22627) (camc314)
  • d0211b0 linter: Allow undefined in DummyRuleMap index (#22626) (camc314)
  • 36fc0ec oxlint/lsp: "ignore this" actions merge with existing directive (#22604) (Sysix)
  • f7f370e linter/vitest/prefer-expect-type-of: Recommend toBeTypeOf instead of expectTypeOf (#22612) (Mikhail Baev)
  • 77063e5 linter/consistent-indexed-object-style: Preserve interface modifiers in fixes (#22579) (camc314)
  • 4f33aa7 linter: Treat TSGlobalDeclaration as ambient in has_ambient_typescript_ancestor (#22577) (camc314)

⚡ Performance

  • c22938d linter/no-async-endpoint-handlers: Populate node types (#22601) (camc314)
  • 607486e linter/no-negated-condition: Populate node types (#22602) (camc314)
  • 4dcaa59 linter/consistent-type-imports: Populate node types (#22600) (camc314)
  • 5bd3b25 linter/no-unused-vars: Avoid cloned ancestor iterator (#22598) (camc314)
  • 97fe9ba linter/no-extra-non-null-assertion: Reduce node matches (#22588) (camc314)
  • ae98296 linter/consistent-indexed-object-style: Populate node types (#22578) (camc314)

Oxfmt v0.52.0

🚀 Features

  • 16b8058 oxfmt: Support vite-plus/resolveConfig for vite.config.ts (#22454) (leaysgur)

🐛 Bug Fixes

⚡ Performance

  • 78cf83f formatter: Pre-size output buffer using source text length (#22594) (Dunqing)