ultracite@8.1.1
Patch Changes
-
79d73d9: Update Biome to 2.6.4. The release adds 30 nursery rules, which the Biome presets leave off, and promotes or removes none, so the presets are unchanged and the
@biomejs/biomepeer range stays at^2.6.2. TheuseSortedPropertiesassist that core turns on now followsstylelint-config-recess-order7.9.0, soultracite fixcan reorder CSS properties it used to leave alone, such asscroll-behavior, anchor positioning and multi-column layout. It also no longer offers a sort that would change which of two overlapping declarations wins.noShorthandPropertyOverridesalso recognises overrides of logical border, corner shape,position-try,text-boxandtransition-behaviorproperties. The Markdown formatter stays off in core: 2.6.4 fixes the dropped space before inline code, but it still rewrites a literal[ ]in prose to[]. See the 2.6.4 release notes. -
3572b86: Update the ESLint packages
initinstalls: typescript-eslint 8.72.1,eslint-plugin-vue10.12,eslint-plugin-storybook10.6.5,@tanstack/eslint-plugin-query5.105.1,@react-native/eslint-plugin0.88.1,globals17.14 andeslint-plugin-react-doctor0.9.21, plus the Oxlint JS pluginoxlint-plugin-react-doctor0.9.21. The presets were checked against ESLint 10.14.The Vue preset turns on
eslint-plugin-vue’s three new rules automatically:vue/no-content-outside-blockreports content outside the top-level blocks of a.vuefile, which the compiler drops;vue/no-define-model-defaultreports adefaultindefineModel(); andvue/no-props-shadowreports<script setup>declarations that shadow a prop. The newblock-langrequiredandrequire-explicit-emitsignoreMixinsoptions stay at their defaults: the first would reject components without a given block, and the second skips components that use mixins.react-doctor 0.9.21 adds
react-doctor/forwarded-set-state-in-effect, which reports a state setter passed from an effect to a helper that calls it synchronously, such asuseEffect(() => syncFrom(id, setValue), [id]). It is on in the ESLint React preset and inultracite/oxlint/js-plugins. Setters handed to subscriptions, timers and listeners aren’t reported. -
6675a90: Update oxfmt to 0.75.0. The release changes no options. It fixes a run of formatting bugs, among them parentheses dropped around private
inchecks and instantiation expressions, a;dropped before class members namedinorinstanceof, and its width heuristics now measure display width, so lines with wide characters (such as CJK text) can wrap differently after upgrading. Itsprettier-plugin-astrointegration now needs@astrojs/compiler-rs0.5, which is the versionultracite initinstalls. See the 0.75.0 release notes for the full list. -
3e83844: Update oxlint to 1.90.0 and enable its new type-aware rule,
typescript/no-unsafe-enum-assignment, in the core Oxlint preset. It reports a value assigned, returned or passed where an enum is expected when it doesn’t share that enum’s type, such asconst fruit: Fruit = 1, matching the@typescript-eslintrule of the same name that the ESLint type-aware preset already enables. Like the other type-aware rules, it only runs withoxlint --type-awareandoxlint-tsgolintinstalled, and oxlint 1.90 needsoxlint-tsgolint7.0.2005 or later. Older oxlint releases fail to parse a config that names the rule, so theoxlintpeer range moves to^1.90.0.The release also makes a few rules report cases they used to miss:
array-callback-returnchecks callbacks passed with extra arguments,no-useless-concatsees through parentheses, andjest/no-conditional-expectchecks function expression callbacks. See the 1.90.0 release notes.Requires oxlint >= 1.90.0