Skip to content

Releases: oxc-project/oxc

oxlint v1.89.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 17:24
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • e3c1b11 ast: [BREAKING] Preserve lone surrogates in static property names (#27095) (Dunqing)
  • a0a987c ast: [BREAKING] Preserve lone surrogates in static member names (#26677) (Dunqing)

🚀 Features

  • 770ada4 linter: Mark vue 3 rules as recommended (#27717) (Cam McHenry)
  • ba38c1d linter: Mark react/react-hooks rules as recommended (#27701) (Cam McHenry)
  • d85a3ba linter: Mark promise rules as recommended (#27693) (Cam McHenry)
  • e71c88a linter: Mark node rule as recommended (#27692) (Cam McHenry)
  • 7213f61 linter: Mark nextjs rules as recommended (#27691) (Cam McHenry)
  • d7c6b26 linter: Mark jsx-a11y rules as recommended (#27690) (Cam McHenry)
  • 199dfdc linter: Mark jsdoc rules as recommended (#27689) (Cam McHenry)
  • 780bff3 linter: Mark jest/vitest rules as recommended (#27672) (Cam McHenry)
  • 6ae6859 linter: Mark import rules as recommended (#27671) (Cam McHenry)
  • b7a1df3 linter: Mark unicorn rules as recommended (#27670) (Cam McHenry)
  • c44a355 linter: Mark typescript rules as recommended from upstream (#27634) (Cam McHenry)
  • 6b49dba linter: Mark eslint rules as recommended from upstream (#27632) (Cam McHenry)

🐛 Bug Fixes

  • 7c47246 linter: Check module specifiers and string values that contain lone surrogates (#26717) (Dunqing)
  • 782ab6e linter: Search string values without UTF-8 conversion (#26716) (Dunqing)
  • 326904f linter/unicorn/no-useless-undefined: Allow undefined in React.useRef (#25027) (Chris Dokurno)
  • f9cf165 linter/unicorn/prefer-spread: Ignore super method calls (#27868) (camc314)
  • 00484e1 linter/eslint/prefer-const: Report destructuring assignments inside blocks (#27856) (camc314)
  • 9c35461 linter/eslint/sort-vars: Report every out-of-order declaration (#27767) (camc314)
  • 01e1c5e linter/unicorn/prefer-string-replace-all: Resolve regex variables (#27769) (camc314)
  • 7f474d5 linter/eslint/no-loop-func: Detect writes after the loop (#27754) (camc314)
  • 4b7fea6 linter/eslint/block-scoped-var: Ignore declarations without writes (#27760) (camc314)
  • 2947917 linter/eslint/no-lonely-if: Check final else blocks in else-if chains (#27759) (camc314)
  • fc039b5 linter/eslint/sort-imports: Check imports after other statements (#27749) (camc314)
  • 1acba97 linter/unicorn/prefer-at: Report slice index reads once (#27762) (camc314)
  • 6190e26 linter/eslint/prefer-arrow-callback: Ignore functions used as conditional tests (#27533) (Anzal Husain Abidi)
  • b3cdaaf linter/eslint/sort-keys: Check computed identifier names (#27748) (camc314)
  • 170e608 linter/unicorn/prefer-native-coercion-functions: Check object methods and function properties (#27750) (camc314)
  • 9261df7 linter/unicorn/prefer-string-raw: Check object property values (#27758) (camc314)
  • ddea86b linter/eslint/prefer-template: Report separate nested concatenations (#27764) (camc314)
  • 2c67197 linter/eslint/no-unused-vars: Count conditional calls in sequences as uses (#27755) (camc314)
  • 7f22fa0 linter/unicorn/prefer-regexp-test: Check logical operands in boolean contexts (#27761) (camc314)
  • 3c44398 linter/eslint/class-methods-use-this: Count this in parameter defaults (#27756) (camc314)
  • d85923f linter/eslint/no-param-reassign: Report rest parameter writes (#27765) (camc314)
  • 8ea47bb linter/unicorn/prefer-type-error: Handle parenthesized type checks (#27766) (camc314)
  • e96856c linter/unicorn/catch-error-name: Check unused underscore-prefixed names (#27751) (camc314)
  • d8ca399 linter/unicorn/no-array-callback-reference: Ignore callback factory calls (#27763) (camc314)
  • 1267ab8 linter/eslint/max-params: Count rest parameters (#27757) (camc314)
  • 9ff25c3 linter/eslint/no-useless-assignment: Report dead stores to function parameters (#27735) (camc314)
  • ee5e730 linter/eslint/no-setter-return: Check setters in property descriptors (#27731) (camc314)
  • edbb5ed linter/eslint/id-length: Check destructuring assignment targets (#27724) (Yunus Ozen)
  • 0e40acb linter/eslint/no-magic-numbers: Restrict unary exemptions to numeric signs (#27723) (Yunus Ozen)
  • ae7e44b linter/eslint/no-div-regex: Report quantified leading equals (#27722) (Yunus Ozen)
  • eb461f8 linter/unicorn/consistent-function-scoping: Count self-referencing variables as captures (#27726) (camc314)
  • 5c8e731 linter/unicorn/catch-error-name: Avoid fix symbol name collisions (#27702) (camc314)
  • 9a424c2 oxlint,oxfmt: Correct Node.js TypeScript support range (#27699) (camc314)
  • 5dc0152 linter/eslint/no-var: Avoid fixes for redeclared bindings (#27697) (camc314)

⚡ Performance

  • 4944cba linter/react/jsx-key: Avoid redundant key clones (#27915) (camc314)

📚 Documentation

  • 0aa41ac linter: Fix invalid code example in rule docs (#27645) (leaysgur)

oxfmt v0.74.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 17:24
Immutable release. Only release title and notes can be modified.

🐛 Bug Fixes

  • e236de0 formatter_tests: Skip conformance spec calls with non-literal options (#27957) (leaysgur)
  • 782ab6e linter: Search string values without UTF-8 conversion (#26716) (Dunqing)
  • a5d8184 jsdoc: Parse code spans after quotes in descriptions (#27955) (leaysgur)
  • 2645d2c formatter_markdown: Treat link destinations and footnote references as opaque to code span fences (#27948) (leaysgur)
  • 4d8195c formatter_yaml: Keep a root plain scalar starting with a document marker verbatim (#27947) (leaysgur)
  • 529b057 formatter_core: Keep front matter verbatim when body starts with indented delimiter (#27946) (leaysgur)
  • c22a9b2 formatter: Treat static block with only empty statements as empty (#27945) (leaysgur)
  • d3ff3f6 formatter/jsdoc: Write descriptions as written to not close the comment (#27823) (leaysgur)
  • c4c1727 formatter/sort_imports: Keep comments after the last import (#27822) (leaysgur)
  • a64677e formatter: Print JSDoc embedded snippets with LF (#27821) (leaysgur)
  • 2c1cc20 formatter: Keep comment only Vue bindings as-is (#27820) (leaysgur)
  • 1bf236d formatter/sort_imports: Do not use comments as import source (#27819) (leaysgur)
  • 52ee29d formatter_yaml: Never start col-0 line with document marker or BOM (#27818) (leaysgur)
  • 81c75e7 formatter/css: Keep glued css-in-js statement placeholders glued (#27814) (leaysgur)
  • a1ef7f4 formatter: Keep typecast parens in same-operator binary and arrow chain (#27812) (leaysgur)
  • de110ce formatter: Keep more parens around TSInstantiationExpression (#27811) (leaysgur)
  • 8b02e90 formatter_json: Reject invalid JSON instead of dropping them (#27785) (leaysgur)
  • 6fe4c1b formatter: Treat lone CR in JSX text and argument blank lines (#27780) (leaysgur)
  • 5605362 oxfmt: Validate editorconfig as like oxfmtrc (#27778) (leaysgur)
  • 5b2acb0 formatter_core: Report error position releative to CRLF source (#27777) (leaysgur)
  • c78e80e formatter_core: Report parse error positions relative to the BOM-headed source (#27776) (leaysgur)
  • 3a980c9 formatter_toml: Handle BOM like other languages (#27775) (leaysgur)
  • 97c9fc4 oxfmt: Handle BOM in config JSON (#27774) (leaysgur)
  • 28eb4a7 oxfmt: Print trailing newline for --list-different (#27773) (leaysgur)
  • d2bea21 formatter: Glue comments to an opener in empty for-head slots and array holes (#27737) (leaysgur)
  • 6a95ec1 formatter: Keep comment position on holey array (#27730) (leaysgur)
  • 54769da formatter: Break after dangling line comment in holey array (#27729) (leaysgur)
  • 99077ef formatter_json: Reject unary expressions other than signed numbers (#27728) (leaysgur)
  • 22cd4cd formatter_json: Handle holey array and comments (#27727) (leaysgur)
  • 644ca1c formatter: Do not indent logical chains whose right sides all inline (#27667) (leaysgur)
  • a07a0fb formatter: Wrap comment-only JSX expression container in a group (#27666) (leaysgur)

⚡ Performance

  • e220293 formatter: Check only the operator suppression mark in is_quiet (#27952) (leaysgur)
  • e5fdc9c formatter_core: Write into one element stack through a concrete Formatter (#27559) (leaysgur)
  • a342f7e formatter: Skip comment handling for nodes with no comment near them (#27557) (leaysgur)
  • d8ce750 formatter: Write string literals with swapped quotes into the arena (#27558) (Yuji Sugiura)
  • 1c393c0 formatter_core: Skip scanning texts with nothing to rewrite (#27561) (leaysgur)
  • 1d3ef10 formatter_core: Keep the embedded IR when nothing in it is rewritten (#27673) (leaysgur)

📚 Documentation

  • 1325225 oxfmt: Update useless comment prefix (#27956) (leaysgur)
  • d0dd140 formatter: Note lossy cooked round-trip in template embeds (#27944) (leaysgur)
  • 8a3a6c8 oxfmt: Update stale notes on the JSDoc string-out channel and fixture origins (#27824) (leaysgur)

oxc crates_v0.155.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 14:31
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • c7d229b transformer: [BREAKING] Decode JSX entities to lone surrogates (#26712) (Dunqing)
  • e3c1b11 ast: [BREAKING] Preserve lone surrogates in static property names (#27095) (Dunqing)
  • a0a987c ast: [BREAKING] Preserve lone surrogates in static member names (#26677) (Dunqing)

🚀 Features

  • 7bb2697 minifier: Minimize array join expression (#27905) (Armano)
  • 5d91db8 ast: Generate node ID setters for enums (#27500) (camc314)
  • 6b5057b minifier: Add de morgan optimization for void expressions (#27375) (Armano)

🐛 Bug Fixes

  • ce6a088 minifier: Fold string indices by UTF-16 code unit (#27096) (Dunqing)
  • 7c47246 linter: Check module specifiers and string values that contain lone surrogates (#26717) (Dunqing)
  • 782ab6e linter: Search string values without UTF-8 conversion (#26716) (Dunqing)
  • a5d8184 jsdoc: Parse code spans after quotes in descriptions (#27955) (leaysgur)
  • bd37e78 ecmascript: Look through sequence expressions in to_primitive (#27837) (baltasarblanco)
  • d92789d minifier: Drop debugger statements in unbraced bodies (#27867) (camc314)
  • 863b359 ecmascript: Correct parseFloat decimal prefix scanning (#27695) (camc314)
  • a2534c6 minifier: Preserve lexical initializers in dead for loops (#27676) (camc314)
  • 3543672 ecmascript: Do not fold Number.isInteger / isSafeInteger of tiny non-integers to true (#27622) (Baltasar Blanco)
  • 6987a61 ecmascript: BigInt loose equality folding (unknown operands and StringToBigInt) (#27656) (Baltasar Blanco)
  • 40e5644 minifier: Preserve indirect access when folding into call targets (#27082) (waltu)
  • 022306f ecmascript: Do not fold Math.cbrt of a negative number to NaN (#27621) (Baltasar Blanco)

⚡ Performance

  • faa75d8 transformer: Remove redundant scratch vectors (#27922) (camc314)
  • 88b5c35 minifier: Reduce code branches when evaluating roots (#27906) (Armano)
  • fe1d367 codegen: Remove branches from loops printing arrays (#27840) (overlookmotel)
  • 7bb6b62 codegen: Reduce hashmap lookups in print_annotation_comment (#27845) (overlookmotel)
  • 31ffd08 codegen: Avoid unnecessary comment clone (#27843) (overlookmotel)
  • a6456b7 codegen: Remove branch from print_space_before_identifier (#27842) (overlookmotel)
  • eeff416 codegen: Simplify print_space_before_identifier (#27841) (overlookmotel)
  • 5d877b8 diagnostics: Speed up zero-context span lookups (#27770) (camc314)
  • 2ab6b63 packages/codegen: Remove redundant printSpaceBeforeIdentifier and last updates in printParams (#27652) (overlookmotel)
  • e533278 codegen: Reduce writes in printDecorators (#27651) (overlookmotel)

📚 Documentation

  • 29caafd codegen: Format table in doc comment (#27839) (overlookmotel)
  • 3de03c1 packages/codegen: Correct outdated comments (#27838) (overlookmotel)

oxlint v1.88.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:47
Immutable release. Only release title and notes can be modified.
6941b4e

💥 BREAKING CHANGES

  • 7730e14 ast: [BREAKING] Refactor comment attachment storage (#27512) (camc314)
  • c904b61 ast: [BREAKING] Add comment attachment storage (#27393) (camc314)

🚀 Features

  • bde9f69 oxlint/lsp: Show config errors to LSP client (#25486) (Sysix)
  • 3c361a7 linter/unicorn/prefer-query-selector: Add allowWithVariables option (#27346) (Mikhail Baev)

🐛 Bug Fixes

  • 82ecc43 linter/sort-keys: Compare natural order like ESLint (#27579) (Dunqing)
  • 598ac03 linter/unicorn/prefer-bigint-literals: Unwrap redundant constructor call; don't auto-fix for lost precision (#25690) (Jacob Bandes-Storch)
  • 2512213 linter: Prevent conflicting type import fixes (#27409) (camc314)
  • 2349a31 oxfmt: Follow symlinked configs in discovery (#27389) (leaysgur)
  • 6e573f9 oxlint,oxfmt: Set stderr blocking (#27363) (leaysgur)

⚡ Performance

  • 91b588c linter/oxc/bad-array-method-on-arguments: Check arguments references once (#26930) (camc314)
  • c5f47ed linter/plugins: Inline firstCommentAtOrAfter into call sites (#27539) (overlookmotel)
  • c5f9235 linter/plugins: Use shift over multiply for powers of 2 (#27536) (overlookmotel)
  • 8c57c5e linter: Share one source per file across type-aware diagnostics (#27462) (Max Schwenk)
  • 19c227d minifier: Use ident when checking specific id names (#27208) (Armano)

📚 Documentation

  • 98cc2b4 linter/plugins: Improve documentation for firstCommentAtOrAfter (#27538) (overlookmotel)
  • 3bb54f6 linter: Update stale comment (#27519) (overlookmotel)
  • 848a4e7 linter: Update fix metadata for tsgolint rules that already provide fixes (#27408) (Mikhail Baev)

oxfmt v0.73.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:47
Immutable release. Only release title and notes can be modified.
6941b4e

💥 BREAKING CHANGES

  • 1ef2888 oxfmt: [BREAKING] Improve --migrate prettier (#27444) (leaysgur)
  • c2e6d5f formatter_toml: [BREAKING] Add oxc_formatter_toml crate wrapping oxc-toml (#27365) (leaysgur)

🚀 Features

  • ce4e8dc oxfmt: Support overrides[].parser -> associations[].language migration (#27475) (leaysgur)
  • a495e82 oxfmt: Support associations config to specify language over filepath (#27437) (leaysgur)
  • 77f8156 oxfmt/lsp: Show root config errors to LSP client (#26014) (Sysix)
  • c1adce3 oxfmt/lsp: Support astro language (#27388) (leaysgur)
  • 4f024a1 oxfmt: Support astro plugin in --migrate prettier (#27387) (leaysgur)
  • 5db28fa oxfmt: Support Astro via prettier-plugin-astro@1.x (#27386) (leaysgur)

🐛 Bug Fixes

  • 76ec31b formatter_css: Support css-in-js placeholders in property names and conditions (#27640) (leaysgur)
  • 99bb268 formatter_css: Keep css-in-js placeholder as media type (#27639) (leaysgur)
  • 372849e formatter: Fix crash on css-in-js comment containing interpolation (#27638) (leaysgur)
  • da692b8 formatter: Wrap export default class|function consistently (#27628) (leaysgur)
  • 21dee96 formatter: Keep parens around TSInstantiationExpression before ! and export (#27626) (leaysgur)
  • b6eb914 oxfmt: Normalize symlink targets in CLI snapshots (#27498) (camc314)
  • 5dae56f oxfmt/lsp: Return error on config resolving error (#26003) (Sysix)
  • 676cc60 formatter/jsdoc: Preserve paragraphs by checking @description tag width (#27439) (leaysgur)
  • 2349a31 oxfmt: Follow symlinked configs in discovery (#27389) (leaysgur)
  • db360de oxfmt: Load svelte plugin for svelte-in-mdx-in-md (#27369) (leaysgur)
  • 6e573f9 oxlint,oxfmt: Set stderr blocking (#27363) (leaysgur)
  • d730fdd formatter_core: Leave blank frontmatter without dispatcher (#27359) (leaysgur)

📚 Documentation

  • 4a28c91 formatter_css: Clarify missed-semicolon-accepted divergence (#27433) (leaysgur)
  • 408d87f oxfmt: Simplify oxfmtrc docs (#27432) (leaysgur)
  • 902e188 oxfmt: Update how embeddedLanguageFormatting option works (#27362) (leaysgur)
  • 37b3c48 formatter_markdown: Fix DIVERGENCES.md examples and slug to match behavior (#27358) (leaysgur)

oxc crates_v0.154.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:16
Immutable release. Only release title and notes can be modified.
d47efe5

💥 BREAKING CHANGES

  • 7730e14 ast: [BREAKING] Refactor comment attachment storage (#27512) (camc314)
  • c904b61 ast: [BREAKING] Add comment attachment storage (#27393) (camc314)
  • b5e8eff parser: [BREAKING] Assign node IDs during parsing (#27411) (camc314)

🚀 Features

  • 3d00bbd minifier: Add folding of delete expression (#27522) (Armano)

🐛 Bug Fixes

  • 760b60b codegen, packages/codegen: Remove extraneous space before RestElement in ArrayPattern (#27613) (overlookmotel)
  • 0353d37 packages/codegen: Support printing V8IntrinsicExpressions (#27597) (overlookmotel)
  • 1e4c6ee minifier: Preserve parameter writes through mapped arguments (#27494) (Dunqing)
  • f8e9a50 semantic: Stop arguments resolution at ordinary functions (#26929) (camc314)
  • 4b75662 transformer_plugins: Preserve optional chains through non-null assertions (#27526) (Dunqing)
  • 72bf06f crates/oxc_semantic: Decline to evaluate unary ops on strings in enum initializers (#27447) (Brooooooklyn)
  • c57d9c7 parser: Apply no-side-effects annotations after export (#27504) (camc314)
  • 02577b1 minifier: Preserve delete semantic when folding non-finite numbers (#27466) (Armano)
  • f14ead5 minifier: Eliminate unused IIFE calls with constant arguments (#27434) (Dunqing)
  • aec14bc transformer: Avoid synthetic private fields for static blocks (#27300) (Kuroda Kayn)
  • 558a890 semantic: Mark delete of optional members as MemberWriteTarget (#27430) (Bartok)
  • f50257e codegen: Avoid extra indent before empty do-while bodies (#27407) (camc314)
  • 82bfc5f codegen: Fix printing negative BigIntLiteral after - (#27378) (overlookmotel)
  • 5461c1a packages/codegen: Fix printing negative BigIntLiteral after - (#27377) (overlookmotel)
  • bebef88 packages/codegen: Fix debug assert fail printing TSJSDocNonNullableType (#27373) (overlookmotel)
  • 7e6a050 semantic: Visit TSMethodSignature computed method keys in enclosing scope (#27357) (camc314)

⚡ Performance

  • e1c97f8 packages/codegen: Remove all printSpaceBeforeIdentifier calls (#27620) (overlookmotel)
  • 70ecfdd packages/codegen: Skip redundant printSpaceBeforeIdentifier call (#27619) (overlookmotel)
  • 3c289f3 packages/codegen: Remove branches from loops printing arrays (#27614) (overlookmotel)
  • 27f5b45 packages/codegen: Remove branch printing RestElement in ArrayPattern (#27608) (overlookmotel)
  • adc90ed packages/codegen: Reduce branches in printArguments (#27607) (overlookmotel)
  • 262dd21 packages/codegen: Remove unnecessary printSpaceBeforeIdentifier calls (#27606) (overlookmotel)
  • 4bb9722 packages/codegen: Print SpreadElement arguments via printExpression (#27599) (overlookmotel)
  • 0c98dc5 packages/codegen: Reduce megamorphic type reads in printParams (#27595) (overlookmotel)
  • e3780b5 packages/codegen: Reduce writes in printForOfStatement (#27594) (overlookmotel)
  • 8d0ba20 packages/codegen: Reduce megamorphic type reads in printForOfStatement (#27593) (overlookmotel)
  • b29f35e packages/codegen: Reduce megamorphic type reads in printDirectivesAndStatements (#27592) (overlookmotel)
  • 256259d packages/codegen: Reduce megamorphic type reads in printConditionalExpression (#27591) (overlookmotel)
  • a9bd942 packages/codegen: Reduce megamorphic type reads in printObjectProperty (#27590) (overlookmotel)
  • 0a386ff packages/codegen: Ensure shorthand var is always a boolean (#27589) (overlookmotel)
  • 8d4c633 packages/codegen: Reduce branches in printObjectProperty (#27588) (overlookmotel)
  • b4c8c04 packages/codegen: Reduce megamorphic type reads in printMemberExpression (#27587) (overlookmotel)
  • ff5eae8 packages/codegen: Reduce megamorphic type reads (#27586) (overlookmotel)
  • 5487247 ast: Generate derive for CloneIn on Comment (#27542) (overlookmotel)
  • cd1c192 minifier: Optimize unused expression removal in minimize_if (#27545) (Armano)
  • 14a92ba transformer: Skip expression exit pipeline for unaffected nodes (#27492) (camc314)
  • cd9a62f transformer: Skip static block dispatch for ordinary statements (#27491) (camc314)
  • 135dd04 transformer: Skip ES2022 exits for non-class expressions (#27489) (camc314)
  • 961f318 packages/codegen: Reduce megamorphic type reads in binCheckAndPrepare (#27460) (overlookmotel)
  • 3d2f93f packages/codegen: Reduce megamorphic property accesses for BinaryExpressions (#27459) (overlookmotel)
  • 675ec5e packages/codegen: Reduce megamorphic property accesses in printBinaryish (#27458) (overlookmotel)
  • b0dbfff packages/codegen: Reduce writes and branches printing functions (#27455) (overlookmotel)
  • 5f3865c packages/codegen: Reduce writes for optional MemberExpressions (#27454) (overlookmotel)
  • 8c57c5e linter: Share one source per file across type-aware diagnostics (#27462) (Max Schwenk)
  • 19c227d minifier: Use ident when checking specific id names (#27208) (Armano)
  • 180d4e7 minifier: Avoid unecessary import/export merging for cjs/scripts (#27291) (Armano)

📚 Documentation

  • c993555 minifier: Align guides with current implementation (#27584) (Cameron)
  • 59472c5 packages/codegen: Add @params to JSDoc comments which had none (#27601) (overlookmotel)
  • 5ee0fc9 packages/codegen: Complete @param lists in partly documented JSDoc comments (#27600) (overlookmotel)
  • 12dfa25 packages/codegen: Correct doc comment for printBinaryish (#27456) (overlookmotel)
  • add0443 mangler: Clarify node ID renumbering in build (#27448) (camc314)

oxlint v1.87.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 11:04
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 42dcfd2 linter/react/no-unescaped-entities: Implement suggestion (#27292) (Mikhail Baev)
  • cd4510d linter/unicorn/no-useless-switch-case: Implement suggestion (#27245) (Mikhail Baev)
  • 1a7c902 linter/react/jsx-no-target-blank: Implement suggestion (#27181) (Mikhail Baev)

🐛 Bug Fixes

  • 176b4b9 linter/jsx-a11y/label-has-associated-control: Validate label attribute values (#27302) (sama Pyb)
  • 7d381c3 linter/jsx-a11y/mouse-events-have-key-events: Handle nullish event handlers (#27306) (sama Pyb)
  • 4e09837 linter/jsx-a11y/lang: Validate lang expression strings (#27304) (sama Pyb)
  • 7d28a66 linter/unicorn/numeric-separators-style: Report misgrouped BigInt literals (#27207) (breken)
  • e928322 linter/unicorn/no-zero-fractions: Parenthesize separator and large integers in fixer (#27206) (breken)
  • 3d61a59 parser: Validate TypeScript type member separators (#27222) (camc314)
  • f08236b linter/eslint/prefer-exponentiation-operator: Preserve autofix precedence (#27150) (camc314)
  • 7d60ae3 linter/valid-title: Continue checks after allowed words (#27146) (Cameron)
  • ad5dd5d linter/eslint/no-unused-vars: Respect disabled argument checks for used ignore patterns (#26925) (camc314)

oxfmt v0.72.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 11:04
Immutable release. Only release title and notes can be modified.

💥 BREAKING CHANGES

  • e2c68b1 oxfmt: [BREAKING] Format parser:markdown files by oxc_formatter_markdown (#27256) (leaysgur)

🚀 Features

  • b538e3c formatter_css: Parse embedded CSS as a block's contents (#27284) (leaysgur)

🐛 Bug Fixes

  • 71e400b formatter_markdown: Fixed remaining issues found by fuzz (#27334) (leaysgur)
  • 7d0e54d formatter_markdown: Preserve line breaks around Chinese/Japanese characters in all proseWrap (#27331) (leaysgur)
  • e9ae2d8 formatter_css: Fix layouts found in mdn-content repo (css-in-md) (#27326) (leaysgur)
  • df85b4c oxfmt: Keep blank lines after a line break in Prettier Doc to IR (#27325) (leaysgur)
  • 7f65b75 formatter: Format assignment target property as assignment-like (#27289) (leaysgur)
  • 6c08f2a formatter_css: Apply the url() import exception to a lone comma group (#27288) (leaysgur)
  • 1967302 formatter_css: Hug a spaced ident ( only at the at-rule prelude head (#27283) (leaysgur)
  • 2445064 formatter_markdown: Keep a preserved line break before a delimiter row that opens no table (#27278) (leaysgur)
  • dd72fbf formatter_markdown: Keep container columns as spaces under useTabs (#27277) (leaysgur)
  • 1686018 oxfmt: Make one state conditionalGroup fit up to first hardline (#27275) (leaysgur)
  • fd4ddce formatter_json: Flatten block comment only array|object (#27274) (leaysgur)
  • 267557c formatter,oxfmt: Embed only original JSDoc plugin supported languages (#27241) (leaysgur)
  • 2606c60 oxfmt: Do not re-include a file below an excluded directory with a negated pattern (#27237) (Nicolas Le Cam)
  • c2de02b formatter: Decide embedded template layout from AST, not source shape (#27218) (leaysgur)
  • c9e1224 formatter: Handle quoteProps: consistent for patterns and computed keys (#27216) (leaysgur)
  • 36e14df formatter: Keep comments between callee and its opener on the callee side (#27172) (leaysgur)
  • 6da7657 oxfmt: Render diagnostics with source in Stdin mode (#27130) (leaysgur)
  • e9b2ec5 oxfmt/lsp: Reload .prettierignore on watched file change (#27129) (leaysgur)
  • 30eb463 oxfmt: Check global ignores before resolving nested config in Stdin mode (#27128) (leaysgur)

⚡ Performance

  • 72f42a3 formatter_markdown: Pre-allocate the IR buffer (#27333) (leaysgur)
  • cea47e3 formatter_core: Avoid exponential will_break check on nested interned (#27211) (leaysgur)
  • 0aba566 oxfmt: Do not resolve root js config from nested context (#27147) (leaysgur)

📚 Documentation

  • 51506c6 formatter_css: Record divergences found in mdn-content (css-in-md) (#27327) (leaysgur)
  • 656b81c formatter_markdown: Record unclosed fences closing at a directive's closer (#27279) (leaysgur)
  • 66545bf formatter_markdown: Record setext heading wrap divergence (#27221) (leaysgur)
  • af4b269 oxfmt: Document why format() API does not take cwd (#27131) (leaysgur)

oxc crates_v0.153.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 10:18
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 61003c7 minifier: Fold undefined argument in non delegating yield (#27324) (Armano)
  • 07833c0 ast: Tie debug_name return lifetime to the underlying AST node (#27295) (sadan)
  • adb1139 minifier: Merge import statements against the same module (#25534) (翠)
  • cc82598 minifier: Merge import and export statements against the same module (#25533) (翠)
  • 1c352ce minifier: Minimize bitwise binary expressions (#27107) (Armano)
  • d1a0bcc minifier: Merge statements after terminating if block branches (#26667) (Armano)
  • 7a95376 minifier: Merge adjucent if stmt with the same content (#26445) (Armano)

🐛 Bug Fixes

  • 6a7d48b parser: Report abstract private field error on modifier (#27314) (camc314)
  • 2ff6fb5 parser: Include generator marker in overload diagnostic span (#27313) (camc314)
  • 4359a66 parser: Reject TypeScript class modifiers in JavaScript (#27312) (camc314)
  • 565d75d minifier: Correct indopedency when processing nested sequences (#27273) (Armano)
  • d0b9372 parser: Remove type-dependent tuple rest diagnostics (#27234) (camc314)
  • 3d61a59 parser: Validate TypeScript type member separators (#27222) (camc314)
  • b2793fa parser: Reject module syntax in script (#27220) (leaysgur)
  • 5914a24 parser: Report TS1243 for abstract async methods (#27192) (camc314)
  • c6c6e5e parser: Report TS1242 for interfaces with abstract modifier (#27191) (camc314)
  • dd0bbb9 parser: Avoid duplicate index signature modifier diagnostic (#27190) (camc314)
  • 8f61129 regex: Decode escaped capturing group names (#27156) (camc314)
  • da1fed2 minifier: Fold conditional expressions with long sequences (#27083) (Armano)
  • 0c601f4 isolated-declarations: Allow adding undefined to keyof parameter types (#27173) (Dunqing)
  • 4896287 isolated-declarations: Support readonly parameter types (#27009) (sama Pyb)
  • 72d62a1 transformer/explicit-resource-management: Transform classic for loop using declarations (#27148) (camc314)
  • 4cf9ae2 minifier: Preserve sibling declarations in arguments copy rewrite (#27140) (camc314)
  • 24b7015 transformer/explicit-resource-management: Lower using in catch and finally (#27142) (camc314)

⚡ Performance

  • 99e3c15 minifier: Small performance improvement when merging imports (#27238) (Armano)
  • d37d1db codegen: Pre-allocate sourcemap builder vectors (#27230) (codspeed)
  • 466ef10 minifier: Update expressions in place in merge_import_export (#27226) (Armano)
  • 028ffb8 minifier: Update nodes in place in wrap_to_avoid_ambiguous_else (#27194) (Armano)
  • 6fcd135 minifier: Avoid conversion from ident to str when for substitute symbols (#27209) (Armano)
  • 0b9799d minifier: Reduce usage of minimize_conditional (#26028) (Armano)
  • 3ca3ded minifier: Short-circuit IfStatement termination on alternate (#25198) (Armano)

📚 Documentation

  • 335ce79 agents: Scope verification for local and stacked work (#27299) (Dunqing)

oxlint v1.86.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 10:29
Immutable release. Only release title and notes can be modified.

🚀 Features

  • 9d80eed linter/react/only-export-components: Support allowCompoundComponents (#27117) (Kuroda Kayn)
  • e05b155 linter: Add typescript/no-generated-empty-object-type (#26958) (camc314)

🐛 Bug Fixes

  • 8306aa4 linter/typescript/no-unnecessary-parameter-property-assignment: Account for parameter property reassignment (#26955) (camc314)
  • 42dfbb5 linter/eslint/one-var: Keep declare when splitting declarations (#27081) (Cheolhee Lee)
  • 2ba7e33 linter/eslint/require-await: Count await using as an await (#27080) (Cheolhee Lee)
  • 611e4ed linter/plugins: Include executing selectors in JS plugin rule timings (#27111) (overlookmotel)
  • 2cac66f react-compiler: Handle recursive function expressions (#26796) (Brennan Butler)
  • e996e6c react-compiler: Treat zero-argument new Date as impure (#26894) (Boshen)
  • 571cfa3 oxlint: Skip type-aware lint rules in type-check-only mode (#27076) (camc314)
  • d0b2462 oxlint: Skip undefined children in CFG walker (#27075) (camc314)
  • 5186328 parser: Handle HTML comment values (#22933) (Boshen)
  • 0b630e8 linter/typescript/unified-signatures: Align rule with upstream (#26956) (camc314)
  • ebb22f1 linter/node/no-exports-assign: Change category from style to suspicious (#26555) (Bartok)
  • cce28a0 linter/import/no-duplicates: Distinguish import attributes (#26936) (camc314)
  • feb733b linter/unicorn/prefer-spread: Stop checking string split calls (#26935) (camc314)
  • 929e154 linter/eslint/no-unused-vars: Honor ignore patterns inside array rest bindings (#26923) (camc314)
  • 5bdb9b8 linter/eslint/no-unused-vars: Recognize consumed update expressions (#26782) (camc314)
  • 5c05bef linter/eslint/prefer-const: Ignore embedded assignments (#26920) (camc314)

⚡ Performance

  • ded4c29 linter/eslint/no-unused-vars: Skip sequence checks when absent (#26921) (camc314)