Skip to content

Releases

oxlint v1.92.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 12:28
Immutable release. Only release title and notes can be modified.

πŸš€ Features

  • 4a52ba2 oxlint: Discover tsrs for type-aware linting (#28751) (camc314)
  • b7d2c75 linter/eslint/no-redeclare: Add ignoreDeclarationMerge option (#28816) (Cam McHenry)

πŸ› Bug Fixes

  • fa66fde oxlint,oxfmt: Resolve Vite+ config root from the config file directory (#28801) (MK (fengmk2))
  • 2091564 linter/jsdoc/require-param: Ignore enclosing function JSDoc (#28866) (camc314)
  • c6ec50b linter/react/only-export-components: Classify JSX values as non-components (#28761) (camc314)
  • 3c051ab linter/vitest/prefer-called-exactly-once-with: Preserve neighboring code in autofix (#28864) (camc314)
  • 674b962 linter/eslint/no-misleading-character-class: Use lazy regex for combining marks (#28822) (Sysix)
  • 838d339 linter/vitest/prefer-called-exactly-once-with: Avoid panic on non-ASCII text (#28850) (YT)
  • 8d24c26 linter/jsx-a11y/aria-role: Allow role={undefined} (#28804) (Abhay Godavarthy)
  • a7143bf linter/eslint/no-restricted-imports: Respect allowTypeImports correctly for empty patterns (#28842) (Cam McHenry)
  • 3d3a6f4 react-compiler: Ignore callback-local reassignments (#28820) (camc314)
  • 0cc6515 linter/unicorn/prefer-type-error: Report throws in unbraced if branches (#28819) (camc314)
  • ae43c80 linter/unicorn/prefer-single-call: Remove duplicate fix status (#28763) (Mikhail Baev)
  • a8a621a linter/eslint/no-fallthrough: Ignore unreachable exits from infinite loops (#28755) (camc314)
  • 7a17a80 linter/eslint/prefer-spread: Report calls on non-member expressions (#28753) (camc314)
  • 28442f7 oxlint: Prevent --init from overwriting existing configs (#28754) (camc314)
  • 0ae350d linter/unicorn/no-zero-fractions: Preserve exponent case (#28752) (camc314)
  • b5b3f3f linter/eslint/no-misleading-character-class: Detect more combining characters (#28733) (Sysix)

⚑ Performance

  • 74d50c1 linter: Overlap import graph batches instead of polling on a pool worker (#28323) (Dunqing)

oxfmt v0.77.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 12:28
Immutable release. Only release title and notes can be modified.

πŸ’₯ BREAKING CHANGES

  • 00d1a67 oxfmt: [BREAKING] Format parser:vue files by oxc_formatter_htmlish (#28848) (leaysgur)

πŸš€ Features

  • 9a81e58 formatter_htmlish: Format Vue templates (#28847) (leaysgur)
  • 119d82f formatter: Format a template's expressions and handlers as JsRoot (#28846) (leaysgur)

πŸ› Bug Fixes

  • fa66fde oxlint,oxfmt: Resolve Vite+ config root from the config file directory (#28801) (MK (fengmk2))
  • 4d4104d formatter_htmlish: Preserve doctype case in embedded (#28797) (leaysgur)
  • ebfd40a formatter: Sort Tailwind calls printed as member chains (#28800) (Yuji Sugiura)
  • e62e5cb formatter: Decide quotes of a Tailwind key printed as one class (#28798) (Yuji Sugiura)
  • 959edc1 formatter: Don't sort templates in nested non-Tailwind calls (#28794) (Yuji Sugiura)
  • 6ffbe32 formatter/jsdoc: Prevent @tag from being moved to the line start (#28835) (leaysgur)
  • 94fbef5 formatter_css: Treat comments in style attr as fill items (#28832) (leaysgur)
  • e4a80f7 formatter_css: Normalize selectors inside :deep, :slotted and :local (#28805) (leaysgur)
  • 255c5cc formatter: Measure Tailwind class argument after collapsing whitespace (#28745) (Lee Jaeha / Adam)
  • e6c4fef formatter: Decide template and object key layouts from collapsed Tailwind classes (#28791) (Yuji Sugiura)
  • 0b44164 formatter: Decide JSX opening element layout from collapsed Tailwind class string (#28744) (Lee Jaeha / Adam)
  • b8ba9ae formatter: Print decorators on rest parameters (#28731) (YT)

⚑ Performance

  • 2766d07 oxfmt: Spawn Prettier workers on demand (#28789) (YT)
  • 07627f7 oxfmt: Use worker_threads for tinypool again (#28787) (Yuji Sugiura)

oxlint v1.91.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:02
Immutable release. Only release title and notes can be modified.

πŸš€ Features

  • 004647a track_memory_allocs: Add allocation tracking for linter rules (#28470) (Cam McHenry)
  • 419c1b0 linter: Add allow and allowPattern options to react/capitalized-calls (Christian Vuerings)

πŸ› Bug Fixes

  • a205cd3 linter/eslint/no-control-regex: Detect raw control characters (#28548) (camc314)
  • 7c65777 linter/unicorn/prefer-global-this: Align typeof and worker API handling (#28549) (camc314)
  • 987d5f1 linter/unicorn/no-invalid-fetch-options: Avoid treating unknown methods as GET (#28547) (camc314)
  • e234dc8 linter/unicorn/no-useless-error-capture-stack-trace: Move to suspicious category (#28545) (camc314)
  • b3dc411 linter/typescript/no-non-null-asserted-nullish-coalescing: Move to suspicious category (#28546) (camc314)
  • cb64638 regular_expression: Reject incomplete Unicode atom escapes (#28448) (Boshen)
  • c67167e linter: Only run React Compiler rules on files with top-level components or hooks (Boshen)
  • 4c9d5aa linter: Treat Reanimated shared values as ref-like in React Compiler rules (Boshen)
  • 61fe2af linter/react: Ignore impure calls in async components in react/purity (Rahul Kashyap)
  • ed7df7d ast/estree: Include comments in TS Program span (#28326) (camc314)
  • 31cbe37 linter: Make gitlab fingerprints unique per diagnostic (#28307) (camc314)

⚑ Performance

  • 564559d linter/prefer-const: Avoid collecting resolved references (#28732) (Dunqing)
  • bb947dc linter: Skip numeric separator formatting for short integers (#28485) (Cam McHenry)
  • 1043dfa linter: Avoid collecting prefer-const binding identifiers (#28484) (Cam McHenry)
  • 7c93eef linter: Reduce branches-sharing-code scratch allocations (#28483) (Cam McHenry)
  • c0065fd linter: Allocate escape-case replacements only when needed (#28482) (Cam McHenry)
  • d837414 linter: Lazily normalize capitalized-comments text (#28481) (Cam McHenry)
  • 6baaad6 linter: Avoid no-var binding identifier allocations (#28480) (Cam McHenry)
  • 882053b linter: Skip read-only parameters in no-param-reassign (#28479) (Cam McHenry)
  • 92deebf linter: Reduce no-unmodified-loop-condition allocations (#28478) (Cam McHenry)
  • f01d52d linter: Reduce no-duplicate-case allocations (#28477) (Cam McHenry)
  • 6a72d84 linter: Reduce no-dupe-class-members allocations (#28476) (Cam McHenry)
  • 77599ef linter: Reduce no-this-before-super allocations (#28475) (Cam McHenry)
  • 2ea9f58 linter/no-dupe-else-if: Use smallvec to reduce allocs (#28474) (Cam McHenry)
  • 69f0204 linter/react/rules-of-hooks: Reduce allocs (#28473) (Cam McHenry)
  • b138c20 linter: Reduce allocs in no-dupe-keys (#28472) (Cam McHenry)
  • 6f3e982 linter: Avoid operator allocations in no-useless-length-check (#28471) (Cam McHenry)
  • fd68928 react-compiler: Skip passes lint does not need (Yagiz Nizipli)
  • 224f4dd linter/eslint/sort-keys: Reserve initial capacity for string (#27624) (Cam McHenry)
  • e4e01a3 linter/import/no-cycle: Compare visited modules by absolute resolved path (#27517) (Cam McHenry)
  • 741b29b linter/import/no-cycle: Cache sorted module record snapshots (#27516) (Cam McHenry)
  • 20022bb linter/import/no-cycle: Reuse traversal buffers between imports (#27481) (Cam McHenry)
  • fd5edb7 linter/import/no-cycle: Reuse module records in diagnostic stack (#27480) (Cam McHenry)
  • 73e877c linter/import/no-cycle: Don't allocate paths already seen (#27478) (Cam McHenry)
  • 1515d53 linter/react/forward-ref-uses-ref: Narrow forward-ref-uses-ref dispatch (#28367) (Cam McHenry)
  • ee51c01 linter/react/no-string-refs: Narrow AST dispatch (#28366) (Cam McHenry)
  • bbfd692 linter/react/no-children-pop: Narrow AST dispatch (#28365) (Cam McHenry)
  • a86158b linter/unicorn/prefer-set-size: Narrow AST dispatch (#28364) (Cam McHenry)
  • a777fa6 linter/eslint/no-iterator: Narrow member dispatch (#28363) (Cam McHenry)
  • bc5e94d linter/eslint/no-extra-boolean-cast: Narrow AST dispatch (#28362) (Cam McHenry)
  • 93c6e6d linter/unicorn/no-useless-fallback-in-spread: Narrow AST dispatch (#28361) (Cam McHenry)
  • 1a1f66e linter/typescript/no-this-alias: Narrow AST dispatch (#28360) (Cam McHenry)
  • b102a91 linter/typescript/no-wrapper-object-types: Index references (#28359) (Cam McHenry)
  • dbd8a0b linter/eslint/no-unassigned-vars: Batch by declaration (#28358) (Cam McHenry)
  • 1108352 linter/typescript/prefer-as-const: Narrow AST dispatch (#28357) (Cam McHenry)
  • d65531f linter/eslint/no-const-assign: Batch by declaration (#28356) (Cam McHenry)
  • 1ec9991 linter/oxc/number-arg-out-of-range: Narrow AST dispatch (#28355) (Cam McHenry)
  • 7a1243e linter/unicorn/no-invalid-fetch-options: Narrow AST dispatch (#28354) (Cam McHenry)
  • 2ab73cc linter/unicorn/no-single-promise-in-promise-methods: Narrow AST dispatch (#28353) (Cam McHenry)
  • 483c4c9 linter/eslint/no-compare-neg-zero: Narrow no-compare-neg-zero dispatch (#28352) (Cam McHenry)
  • 56c99c6 linter/eslint/no-unsafe-negation: Narrow AST dispatch (#28351) (Cam McHenry)
  • 84d974b linter/unicorn/prefer-string-starts-ends-with: Narrow AST dispatch (#28350) (Cam McHenry)
  • 142ef4f unicorn: Narrow no-await-in-promise-methods dispatch (#28349) (Cam McHenry)
  • a3dc7a2 linter/unicorn/no-await-expression-member: Optimize AST dispatch (#28348) (Cam McHenry)
  • 481b638 linter/plugins: Create AST nodes with Object.create instead of __proto__ literals (#27816) (Charles Wang)

oxfmt v0.76.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 14:01
Immutable release. Only release title and notes can be modified.

πŸ’₯ BREAKING CHANGES

  • 296623d oxfmt: [BREAKING] Format parser:html files by oxc_formatter_htmlish (#28273) (Yuji Sugiura)

πŸš€ Features

  • 336b2c1 oxfmt: Support html-in-js templates closing a dynamic tag name (#28389) (Yuji Sugiura)
  • 0a42af6 formatter_htmlish: Format end tags of omitted html, head and body (#28388) (Yuji Sugiura)
  • 44d8c2b formatter_htmlish: Implement HTML-ish formatter Html variant (#28272) (Yuji Sugiura)
  • 36e5ddb oxfmt: Add debug span for reading files (#28204) (leaysgur)

πŸ› Bug Fixes

  • dbcc358 formatter: Keep arrow conditional body parens before a leading function/class (#28710) (Yuji Sugiura)
  • fef809a formatter_htmlish: Handle XHTML (#28703) (leaysgur)
  • f3dd201 formatter_htmlish: Keep SVG text under xml:space="preserve" as written (#28382) (Yuji Sugiura)
  • fb3aefa formatter: Keep source parens around html-in-js placeholders past comments (#28381) (Yuji Sugiura)
  • e738dae formatter: Quote keys added in an HTML event handler with single quotes (#28380) (Yuji Sugiura)
  • 2e7a629 oxfmt: Format HTML in a <script> body as an embedded part (#28379) (Yuji Sugiura)
  • f00862b formatter: Keep parens around a generic function type in a type assertion (#28173) (vidigoat)
  • 9ead5c4 formatter: Handle this.b and super.b like foo.b (#28200) (leaysgur)
  • 72a54cf formatter: Break parens of (a + b)[c] like (a + b).c (#28199) (leaysgur)
  • b8f4f34 formatter: Print x.b and x.#b samely (#28193) (leaysgur)
  • 9ddccb7 formatter: Keep parens for private field (#28188) (leaysgur)

⚑ Performance

  • b6f1ac9 formatter_markdown: Bump parser to 0.0.4 and skip unread work (#28713) (leaysgur)
  • 633ee96 formatter_css: Use u32 spans (#28708) (leaysgur)
  • f680ee1 formatter_yaml: Use multiline flag for flow scalars (#28707) (leaysgur)
  • ff7c203 formatter_css: Avoid repeated scans and allocations in values (#28706) (leaysgur)
  • 7cd46cb formatter_htmlish: Search script end tags by < in embedded (#28704) (leaysgur)
  • 46f8efd formatter_graphql: Print block string lines borrowed from the source (#28701) (leaysgur)
  • dce1485 formatter_htmlish: Skip escaping attr values without the chosen quote (#28700) (leaysgur)
  • e9392c8 formatter_core: Search line terminators with memchr (#28699) (leaysgur)
  • ceb26be formatter_htmlish: Use char to escape attr quotes (#28697) (leaysgur)
  • 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)

πŸ“š Documentation

  • 303d9e8 formatter: Strengthen start-token-no-double-parens rationale (#28711) (Yuji Sugiura)
  • a82ce83 oxfmt: Update unclassified divergence (#28685) (Yuji Sugiura)
  • 7f18c20 formatter_htmlish: Note class and srcset are formatted with embeddedLanguageFormatting: off (#28465) (Yuji Sugiura)
  • 01ed68a oxfmt,formatter_htmlish,formatter: Clean up behavior comments (#28384) (Yuji Sugiura)
  • a363c27 formatter_css,formatter_yaml: Point parser citations at AGENTS.md (#28466) (Yuji Sugiura)
  • 6586050 formatter_core: Document tab width in text width policy (#28393) (leaysgur)
  • 49fbffb formatter_core: Tighten FORMATTER_POLICY (#28206) (leaysgur)

oxc crates_v0.157.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 19:53
Immutable release. Only release title and notes can be modified.

πŸš€ Features

  • 8dd67a6 transform-react: Expose TypeScript transform options (Tomas SΓ€rnhammar)
  • deed7dc parser: More friendly error for duplicate import attribute key (#28262) (sapphi-red)

πŸ› Bug Fixes

  • eaa8e90 ecmascript: Avoid numeric + folding when an operand may be a string (#28544) (camc314)
  • b03c7b8 regular_expression: Allow incomplete oversized legacy quantifiers (#28449) (Boshen)
  • 128c67d semantic: Check strict eval and arguments writes by reference flags (#28445) (Boshen)
  • c97c43c parser: Reject TypeScript default exports in JavaScript (#28440) (Boshen)
  • fdd119f span: Count Unicode characters when filtering typo suggestions (#28452) (Boshen)
  • cb64638 regular_expression: Reject incomplete Unicode atom escapes (#28448) (Boshen)
  • fc0eed3 semantic: Stop let-binding scans at arrow functions (#28444) (Boshen)
  • 3421516 parser: Preserve default import names in reexports (#28442) (Boshen)
  • a1e7e5f parser: Reject optional class members in JavaScript (#28439) (Boshen)
  • 5b9a7bc parser: Parse sloppy let expressions and labels (#28438) (Boshen)
  • 8e61652 regex: Reject templates without cooked values (#28345) (Boshen)
  • 3b36543 parser: Preserve in-context after TypeScript type arguments (#28300) (Boshen)
  • 2e3126c regex: Decode constructor patterns and flags consistently (#28298) (Boshen)
  • 8a90be2 regex: Track capture groups and disjunction identity (#28297) (Boshen)
  • 3dc2cb0 regex: Preserve escape values and boundaries (#28296) (Boshen)
  • fc8acbc parser: Handle leading-zero numeric exponents (#28295) (Boshen)
  • 91a638d parser: Normalize raw template line endings with invalid escapes (#28285) (Boshen)
  • 2ac9a42 parser: Allow parenthesized private-in expressions (#28284) (Boshen)
  • 052bca9 ast: Prevent greyed out fields in AST types in IDEs (#28335) (overlookmotel)
  • ed7df7d ast/estree: Include comments in TS Program span (#28326) (camc314)

⚑ Performance

  • 9b6b7bf regular_expression: Advance validated Unicode escapes directly (#28514) (Boshen)
  • 82e1982 regular_expression: Share Unicode property name prefixes (#28513) (Boshen)
  • 5395a40 regular_expression: Parse class set character prefixes once (#28512) (Boshen)
  • 3708934 regular_expression: Defer literal range dash allocation (#28511) (Boshen)
  • d85ee3d semantic: Skip arguments ancestry checks outside classes (#28510) (Boshen)
  • cf81d07 semantic: Reuse private reference resolution (#28509) (Boshen)
  • a79eebc semantic: Avoid duplicate maps for public JavaScript members (#28508) (Boshen)
  • 235ca3b semantic: Skip escape checks for unescaped strings (#28507) (Boshen)
  • babf44c parser: Reuse shorthand assignment target identifiers (#28504) (Boshen)
  • 444f24a ecmascript: Short-circuit simple parameter checks for rest (#28503) (Boshen)
  • 04b20c0 semantic: Compute duplicate parameter policy once per list (#28446) (Boshen)
  • dbf8482 parser: Use token lookahead for simple function types (#28489) (Boshen)
  • bca1275 parser: Avoid unused destructuring rest capacity (#28499) (Boshen)
  • 691be5c parser: Compact cover initialized name storage (#28495) (Boshen)
  • b3b5444 parser: Build simple arrow bindings directly (#28493) (Boshen)
  • e1c9baf parser: Disambiguate single-identifier arrow heads (#28491) (Boshen)
  • 550e98a regular_expression: Avoid rescanning unique capture names (#28450) (Boshen)
  • 10e9fc7 parser: Skip duplicate lookup for singleton import attributes (#28441) (Boshen)
  • 5238839 parser: Use a stack buffer for float separators (#28435) (Boshen)
  • 6e35e3c parser: Fast-path leaf expressions before delimiters (#28432) (Boshen)
  • 3d7512c parser: Decode Unicode identifiers once (#28414) (Boshen)
  • 30f59f4 parser: Factor object type opening brace (#28430) (Boshen)
  • 028a267 parser: Always inline postfix update parsing (#28429) (Boshen)
  • 1b5a171 parser: Reuse export kind classification (#28424) (Boshen)
  • 179a432 parser: Factor return type identifier parsing (#28416) (Boshen)
  • 553dd1d parser: Inline hot paths and fold function dispatch (#28404) (Boshen)
  • de75d56 parser: Combine parenthesized arrow lookahead (#28412) (Boshen)
  • a768a0c parser: Reuse comment annotations after rewind (#28408) (Boshen)
  • 563d92a parser: Skip redundant source cursor updates (#28409) (Boshen)
  • 7941ca9 parser: Factor tuple identifier parsing (#28398) (Boshen)
  • 426c151 parser: Construct completed tokens without intermediate writes (#28291) (Boshen)
  • df42953 minifier: Don't request another pass for block unwrapping (#28315) (Dunqing)
  • c2d663d parser: Avoid vectors for single parenthesized expressions (#28374) (Boshen)
  • 50bd0a9 parser: Size delimited lists after the first element (#28373) (Boshen)
  • bd869b5 parser: Bypass redundant operand parsing (#28372) (Boshen)
  • 455fc09 parser: Skip keyword checks for plain identifier expressions (#28371) (Boshen)
  • 61303fb parser: Fast-path identifier operands (#28306) (Boshen)
  • 6cf5b1a parser: Guard arrow and conditional parsing (#28305) (Boshen)
  • 3666939 parser: Specialize identifier reference parsing (#28303) (Boshen)
  • 0d6641a parser: Skip inapplicable expression parsing paths (#28294) (Boshen)
  • 3be7997 parser: Reduce lexer search batch size (#28292) (Boshen)
  • ab5655a regex: Remove redundant character-class and quantifier checks (#28288) (Boshen)
  • ec8e8d4 parser: Remove redundant grammar and lexer checks (#28287) (Boshen)
  • c903f5c parser: Specialize known-token parsing (#28286) (Boshen)
  • 2683225 str: static_ident! and static_str! macros guarantee const evaluation (#28340) (overlookmotel)
  • df90836 ast: Reduce compile time of #[ast] macro (#28336) (overlookmotel)
  • 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)

oxlint v1.90.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 05:51
Immutable release. Only release title and notes can be modified.
9b6fff4

πŸš€ Features

  • cf34678 oxlint: Export Oxlintrc type (#28132) (Sysix)
  • 831cdf1 oxlint: Require mininum oxlint-tsgolint version v7.0.2005 (#28118) (camc314)
  • d1b00f4 linter/typescript: Implement no-unsafe-enum-assignment rule (#28117) (camc314)
  • 165c91f linter/typescript/await-thenable: Support allowMixedPromiseArrays option (#28116) (camc314)

πŸ› Bug Fixes

  • 7f3c908 linter/eslint/array-callback-return: Check callbacks passed with extra arguments (#28133) (sarankumar)
  • 53be530 linter: Filter by type aware rules when looking up tsgolint rule severity (#28138) (NavpreetSSidhu)
  • e0f8937 react-compiler: Compile a try whose catch is unreachable instead of panicking (#28066) (Dunqing)
  • f5b625f linter/eslint/no-useless-concat: See through parenthesized expressions (#27984) (Rahul Kashyap)
  • 4629bb2 linter/jest/no-conditional-expect: Check function expression callbacks (#28055) (camc314)
  • 5c84098 semantic,linter: Report names with lone surrogates in enum and lint checks (#27991) (Dunqing)
  • f3705a9 linter/eslint/prefer-const: Skip fixers if any declarator is reassigned (#28008) (Prince Jain)
  • 4c0fa90 minifier,linter: Keep delete of constant members and later JSX keys (#27990) (Dunqing)
  • 0298062 linter/arrow-body-style: Keep type assertions when adding a block body (#27978) (Yan Almeida)

oxfmt v0.75.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 05:51
Immutable release. Only release title and notes can be modified.
9b6fff4

πŸ› Bug Fixes

  • 5042019 formatter: Keep fill layout for array with comment after [ (#28170) (leaysgur)
  • 9d37ff6 formatter: Use position-based comment checks for concise arrays (#28169) (leaysgur)
  • 016c4a2 formatter: Keep a comment before } inside a JSX spread child (#28103) (vidigoat)
  • 190bb1e formatter: Keep parens around an instantiation expression ending an operand through any tight parent (#28168) (leaysgur)
  • a5314a1 formatter: Keep ; before in and instanceof class members (#28166) (leaysgur)
  • 3a56e7c formatter: Keep closing HTML comments at the start of a line (#28064) (Cameron)
  • 23d23d6 formatter_markdown: Honor range ignore inside directives (#28164) (leaysgur)
  • 5f1fd3d formatter: Measure width heuristics by display width (#28098) (leaysgur)
  • a5a52cf formatter: Keep parens around private in expressions (#28096) (leaysgur)
  • 999496e formatter: Measure a short key by its display width (#28026) (vidigoat)
  • 7e9aa44 formatter: Keep parens around a looser operand of an instantiation expression (#28025) (vidigoat)
  • 6912d1f formatter: Keep an arrow signature that exactly fills the line for any body (#27989) (leaysgur)
  • eb1d9f9 formatter_core: Count a flat line space in fits only when text follows (#27987) (leaysgur)

⚑ Performance

  • 1ed93af data_structures: Copy short strings without a memcpy call (#27953) (leaysgur)
  • 7948f0b formatter_core: Shrink FormatElement to 16B (#28012) (leaysgur)
  • 788af22 formatter: Keep AstNodes on the stack, and only chain links in the arena (#27963) (leaysgur)

πŸ“š Documentation

  • 068a8ea formatter: Fix up wording (#28167) (leaysgur)
  • db55461 formatter_core: Document text width divergence (#28095) (leaysgur)
  • 880d229 formatter: Add vitest-test-call to known divergences (#28006) (leaysgur)

oxc crates_v0.156.0

Choose a tag to compare

@github-actions github-actions released this 27 Oct 03:26
Immutable release. Only release title and notes can be modified.
75efdca

πŸ’₯ BREAKING CHANGES

  • cf8296f ecmascript: [BREAKING] Fold surrogate strings with JSStr constants (#27098) (Dunqing)

πŸš€ Features

  • dd6cb2b minifier: Fold out-of-bounds string indices to void 0 (#28004) (Dunqing)

πŸ› Bug Fixes

  • f4dac9e semantic: Separate hoisted vars from block type bindings (#27936) (limadog9)
  • 9ec6617 minifier: Keep brackets on negative and non-finite numeric keys (#27855) (Yunus Ozen)
  • 520a26e minifier: Keep the default in shorthand assignment targets (#28183) (waltu)
  • def47b8 react-compiler: Keep manual memoization as written when its dependencies can't be honoured (#28101) (Dunqing)
  • 704d8cf transformer_plugins: Keep the bare inject when references to it remain (#26965) (Bharadwaj Pendyala)
  • 6d7b372 minifier: Handle sequence exprs when folding if to expr statement (#27939) (Armano)
  • e3eca41 runtime: Align async iterator throw with Babel (#28059) (camc314)
  • af0258d parser: Parse source imports named type (#28062) (camc314)
  • 83633a7 parser: Parse escaped class field names after initializers (#28061) (camc314)
  • 90c58ac parser: Parse postfix updates of sloppy let identifiers (#28060) (camc314)
  • 0e2934f codegen: Preserve default import names in source maps (#28058) (camc314)
  • 09bdb80 minifier: Allow argument rewrite with with leading var assignments (#28056) (Armano)
  • ebcdcd9 minifier: Preserve rest destructuring side effects (#27981) (camc314)
  • 5c84098 semantic,linter: Report names with lone surrogates in enum and lint checks (#27991) (Dunqing)
  • bd70a9b ecmascript: Use ECMAScript whitespace when folding parseFloat/parseInt/trim (#27719) (Dunqing)
  • 4c0fa90 minifier,linter: Keep delete of constant members and later JSX keys (#27990) (Dunqing)

⚑ Performance

  • 3493ce3 minifier: Reuse is_error_constructor and simplify substitute_global_new_expression (#28149) (Armano)
  • a22c9f2 parser: Move annotation comment handling out of hot paths (#28139) (camc314)
  • 1ed93af data_structures: Copy short strings without a memcpy call (#27953) (leaysgur)

πŸ›‘οΈ Security

  • b93e169 deps: Bump .node-version to 26.12.1 (#28090) (leaysgur)

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)