Skip to content
verdict:

Biome 2.3.9

digest

note: no summary for this digest release

Digest releases are listed without a summary. The original release notes for this version are below.

release-notesgithub.com/biomejs/biome · 406 lines
  1. ## 2.3.9
  2. ### Patch Changes
  3. - [#8232](https://github.com/biomejs/biome/pull/8232) [`84c9e08`](https://github.com/biomejs/biome/commit/84c9e08b1b736dcc6d163ab1fb48c581b2de458c) Thanks [@ruidosujeira](https://github.com/ruidosujeira)! - Added the nursery rule [`noScriptUrl`](https://biomejs.dev/linter/rules/no-script-url/).
  4. This rule disallows the use of `javascript:` URLs, which are considered a form of `eval` and can pose security risks such as XSS vulnerabilities.
  5. ```jsx
  6. <a href="javascript:alert('XSS')">Click me</a>
  7. ```
  8. - [#8341](https://github.com/biomejs/biome/pull/8341) [`343dc4d`](https://github.com/biomejs/biome/commit/343dc4dfd48a048f0c833af318b6a10dfc4dab6d) Thanks [@arendjr](https://github.com/arendjr)! - Added the nursery rule [`useAwaitThenable`](https://biomejs.dev/linter/rules/use-await-thenable/), which enforces that `await` is only used on Promise values.
  9. #### Invalid
  10. ```js
  11. await "value";
  12. const createValue = () => "value";
  13. await createValue();
  14. ```
  15. #### Caution
  16. This is a first iteration of the rule, and does not yet detect generic ["thenable"](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#thenables) values.
  17. - [#8034](https://github.com/biomejs/biome/pull/8034) [`e7e0f6c`](https://github.com/biomejs/biome/commit/e7e0f6c14df92d83d08f86b1e57fc82b4df775b7) Thanks [@Netail](https://github.com/Netail)! - Added the nursery rule [`useRegexpExec`](https://biomejs.dev/linter/rules/use-regexp-exec/). Enforce `RegExp#exec` over `String#match` if no global flag is provided.
  18. - [#8137](https://github.com/biomejs/biome/pull/8137) [`d407efb`](https://github.com/biomejs/biome/commit/d407efb8c650b9288f545efedd4b7d3f9783c8d1) Thanks [@denbezrukov](https://github.com/denbezrukov)! - Reduced the internal memory used by the Biome formatter.
  19. - [#8281](https://github.com/biomejs/biome/pull/8281) [`30b046f`](https://github.com/biomejs/biome/commit/30b046faca464404aaeecfe1ed0e8a94b0e25990) Thanks [@tylersayshi](https://github.com/tylersayshi)! - Added the rule [`useRequiredScripts`](https://biomejs.dev/linter/rules/use-required-scripts/), which enforces presence of configurable entries in the `scripts` section of `package.json` files.
  20. - [#8290](https://github.com/biomejs/biome/pull/8290) [`d74c8bd`](https://github.com/biomejs/biome/commit/d74c8bda655a17405809d24126ee09e9e200d51e) Thanks [@dyc3](https://github.com/dyc3)! - The HTML formatter has been updated to match Prettier 3.7's behavior for handling `<iframe>`'s `allow` attribute.
  21. ```diff
  22. - <iframe allow="layout-animations 'none'; unoptimized-images 'none'; oversized-images 'none'; sync-script 'none'; sync-xhr 'none'; unsized-media 'none';"></iframe>
  23. + <iframe
  24. + allow="
  25. + layout-animations 'none';
  26. + unoptimized-images 'none';
  27. + oversized-images 'none';
  28. + sync-script 'none';
  29. + sync-xhr 'none';
  30. + unsized-media 'none';
  31. + "
  32. + ></iframe>
  33. ```
  34. - [#8302](https://github.com/biomejs/biome/pull/8302) [`d1d5014`](https://github.com/biomejs/biome/commit/d1d50140f23c9c3ce4f48d9d2b97822234aad798) Thanks [@mlafeldt](https://github.com/mlafeldt)! - Fixed [#8109](https://github.com/biomejs/biome/issues/8109): return statements in Astro frontmatter no longer trigger "Illegal return statement" errors when using `experimentalFullSupportEnabled`.
  35. - [#8346](https://github.com/biomejs/biome/pull/8346) [`f3aee1a`](https://github.com/biomejs/biome/commit/f3aee1a92fba7c61de4b6f5ada3063fb126db885) Thanks [@arendjr](https://github.com/arendjr)! - Fixed [#8292](https://github.com/biomejs/biome/issues/8292): Implement tracking
  36. of types of TypeScript constructor parameter properties.
  37. This resolves certain false negatives in `noFloatingPromises` and other typed
  38. rules.
  39. #### Example
  40. ```ts
  41. class AsyncClass {
  42. async returnsPromise() {
  43. return "value";
  44. }
  45. }
  46. class ShouldBeReported {
  47. constructor(public field: AsyncClass) {}
  48. // ^^^^^^^^^^^^----------------- Parameter property declaration
  49. async shouldBeReported() {
  50. // `noFloatingPromises` will now report the following usage:
  51. this.field.returnsPromise();
  52. }
  53. }
  54. ```
  55. - [#8326](https://github.com/biomejs/biome/pull/8326) [`153e3c6`](https://github.com/biomejs/biome/commit/153e3c6ba999481c8dff2531bcbbd62f4977cd19) Thanks [@ematipico](https://github.com/ematipico)! - Improved the rule `noBiomeFirstException`. The rule can now inspect if extended configurations already contain the catch-all `**` inside `files.includes` and, if so, the rule suggests removing `**` from the user configuration.
  56. - [#8433](https://github.com/biomejs/biome/pull/8433) [`397547a`](https://github.com/biomejs/biome/commit/397547a85c46d87ccf6a8501c734b844b348865e) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#7920](https://github.com/biomejs/biome/issues/7920): The CSS parser, with Tailwind directives enabled, will no longer error when you use things like `prefix(tw)` in `@import` at rules.
  57. - [#8378](https://github.com/biomejs/biome/pull/8378) [`cc2a62e`](https://github.com/biomejs/biome/commit/cc2a62e61b3818e59a16e0add9293c6345441ad7) Thanks [@Bertie690](https://github.com/Bertie690)! - Clarify diagnostic message for `lint/style/useUnifiedTypeSignatures`
  58. The rule's diagnostic message now clearly states that multiple _similar_ overload signatures are hard to read & maintain, as opposed to overload signatures in general.
  59. - [#8296](https://github.com/biomejs/biome/pull/8296) [`9d3ef10`](https://github.com/biomejs/biome/commit/9d3ef10d007e637c43b2f5e97758767da5f03d32) Thanks [@dyc3](https://github.com/dyc3)! - `biome rage` now shows if you have experimental HTML full support enabled.
  60. - [#8414](https://github.com/biomejs/biome/pull/8414) [`09acf2a`](https://github.com/biomejs/biome/commit/09acf2a700f480ae6acbefaab770e8db33d5e596) Thanks [@Bertie690](https://github.com/Bertie690)! - Updated the documentation & diagnostic message for `lint/nursery/noProto`, mentioning the reasons for its longstanding deprecation and why more modern alternatives are preferred.
  61. Notably, the rule clearly states that using `__proto__` inside object literal definitions is still allowed, being a standard way to set the prototype of a newly created object.
  62. - [#8445](https://github.com/biomejs/biome/pull/8445) [`c3df0e0`](https://github.com/biomejs/biome/commit/c3df0e04fe6d23b41daa2cd832071d82fbc4224f) Thanks [@tt-a1i](https://github.com/tt-a1i)! - Fix `--changed` and `--staged` flags throwing "No such file or directory" error when a file has been deleted or renamed in the working directory. The CLI now filters out files that no longer exist before processing.
  63. - [#8459](https://github.com/biomejs/biome/pull/8459) [`b17d12b`](https://github.com/biomejs/biome/commit/b17d12b497ef3ec694d53f684295e0c6e49fdcad) Thanks [@ruidosujeira](https://github.com/ruidosujeira)! - Fix [#8435](https://github.com/biomejs/biome/issues/8435): resolved false positive in `noUnusedVariables` for generic type parameters in construct signature type members (`new <T>(): T`).
  64. - [#8439](https://github.com/biomejs/biome/pull/8439) [`a78774b`](https://github.com/biomejs/biome/commit/a78774bd8eabe159d5596bfed198d7216282e159) Thanks [@tt-a1i](https://github.com/tt-a1i)! - Fixed [#8011](https://github.com/biomejs/biome/issues/8011): [`useConsistentCurlyBraces`](https://biomejs.dev/linter/rules/use-consistent-curly-braces/) no longer suggests removing curly braces from JSX expression children containing characters that would cause parsing issues or semantic changes when converted to plain JSX text (`{`, `}`, `<`, `>`, `&`).
  65. - [#8436](https://github.com/biomejs/biome/pull/8436) [`a392c06`](https://github.com/biomejs/biome/commit/a392c0646e285086558b96e0af7a84174d8bb190) Thanks [@ruidosujeira](https://github.com/ruidosujeira)! - Fixed [#8429](https://github.com/biomejs/biome/issues/8429). Formatter, linter, and assist settings now correctly inherit from global configuration when not explicitly specified in overrides.
  66. Before this fix, when an override specified only one feature (e.g., only `linter`), other features would be incorrectly disabled instead of inheriting from global settings.
  67. Example configuration that now works correctly:
  68. ```json
  69. {
  70. "formatter": { "enabled": true },
  71. "overrides": [
  72. {
  73. "includes": ["*.vue"],
  74. "linter": { "enabled": false }
  75. }
  76. ]
  77. }
  78. ```
  79. After this fix, `.vue` files will have the linter disabled (as specified in the override) but the formatter enabled (inherited from global settings).
  80. - [#8411](https://github.com/biomejs/biome/pull/8411) [`9f1b3b0`](https://github.com/biomejs/biome/commit/9f1b3b06586401b39e0aa886bf7c8484fd2a6ded) Thanks [@rriski](https://github.com/rriski)! - Properly handle `name`, `type_arguments`, and `attributes` slots for `JsxOpeningElement` and `JsxSelfClosingElement` GritQL patterns.
  81. The following biome search commands no longer throw errors:
  82. ```shell
  83. biome search 'JsxOpeningElement(name = $elem_name) where { $elem_name <: "div" }'
  84. biome search 'JsxSelfClosingElement(name = $elem_name) where { $elem_name <: "div" }'
  85. ```
  86. - [#8441](https://github.com/biomejs/biome/pull/8441) [`cf37d0d`](https://github.com/biomejs/biome/commit/cf37d0dee56dba8c8b9e81c880f82f365f3102bf) Thanks [@tt-a1i](https://github.com/tt-a1i)! - Fixed [#6577](https://github.com/biomejs/biome/issues/6577): [`noUselessUndefined`](https://biomejs.dev/linter/rules/no-useless-undefined/) no longer reports `() => undefined` in arrow function expression bodies. Previously, the rule would flag this pattern and suggest replacing it with `() => {}`, which conflicts with the `noEmptyBlockStatements` rule.
  87. - [#8444](https://github.com/biomejs/biome/pull/8444) [`8caa7a0`](https://github.com/biomejs/biome/commit/8caa7a07547960d8e9101fe67e2c490ec52426e9) Thanks [@tt-a1i](https://github.com/tt-a1i)! - Fix [`noUnknownMediaFeatureName`](https://biomejs.dev/linter/rules/no-unknown-media-feature-name/) false positive for `prefers-reduced-transparency` media feature. The feature name was misspelled as `prefers-reduded-transparency` in the keywords list.
  88. - [#8443](https://github.com/biomejs/biome/pull/8443) [`c3fa5a1`](https://github.com/biomejs/biome/commit/c3fa5a1f26d8ea90006f9ded667136d6db347a8d) Thanks [@tt-a1i](https://github.com/tt-a1i)! - Fix [`useGenericFontNames`](https://biomejs.dev/linter/rules/use-generic-font-names/) false positive when a CSS variable is used as the last value in `font-family` or `font`. The rule now correctly ignores cases like `font-family: "Noto Serif", var(--serif)` and `font: 1em Arial, var(--fallback)`.
  89. - [#8281](https://github.com/biomejs/biome/pull/8281) [`30b046f`](https://github.com/biomejs/biome/commit/30b046faca464404aaeecfe1ed0e8a94b0e25990) Thanks [@tylersayshi](https://github.com/tylersayshi)! - Fixed [`noDuplicateDependencies`](https://biomejs.dev/linter/rules/no-duplicate-dependencies/) incorrectly triggering on files like `_package.json`.
  90. - [#8315](https://github.com/biomejs/biome/pull/8315) [`c7915c4`](https://github.com/biomejs/biome/commit/c7915c445fbe00d94713e4a285df3e0becde64a7) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Fixed [#5213](https://github.com/biomejs/biome/issues/5213): The [`noDoneCallback`](https://biomejs.dev/linter/rules/no-done-callback/) rule no longer flags false positives when a method is called on a regular variable bound to identifiers such as `before`, `after`, `beforeEach`, and `afterEach`.
  91. - [#8398](https://github.com/biomejs/biome/pull/8398) [`204844f`](https://github.com/biomejs/biome/commit/204844f98f50140c4072b3ee1843994dbe73d2f7) Thanks [@Bertie690](https://github.com/Bertie690)! - The default value of the `ignoreRestSiblings` option for [`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables)'
  92. has been reverted to its prior value of `true` after [an internal refactor](https://github.com/biomejs/biome/pull/7941) accidentally changed it.
  93. The diagnostic message has also been tweaked for readability.
  94. - [#8242](https://github.com/biomejs/biome/pull/8242) [`9694e37`](https://github.com/biomejs/biome/commit/9694e373a1d34b799fb24780ddfde8680758b8b8) Thanks [@dyc3](https://github.com/dyc3)! - Fixed bugs in the HTML parser so that it will flag invalid shorthand syntaxes instead of silently accepting them. For example, `<Foo : foo="5" />` is now invalid because there is a space after the `:`.
  95. - [#8297](https://github.com/biomejs/biome/pull/8297) [`efa694c`](https://github.com/biomejs/biome/commit/efa694c019cbdbac5328b76bb70c464ad9befbf8) Thanks [@Yonom](https://github.com/Yonom)! - Added support for negative value utilities in [`useSortedClasses`](https://biomejs.dev/linter/rules/use-sorted-classes/). Negative value utilities such as `-ml-2` or `-top-4` are now recognized and sorted correctly alongside their positive counterparts.
  96. ```jsx
  97. // Now detected as unsorted:
  98. <div class="-ml-2 p-4 -mt-1" />
  99. // Suggested fix:
  100. <div class="-mt-1 -ml-2 p-4" />
  101. ```
  102. - [#8335](https://github.com/biomejs/biome/pull/8335) [`3710702`](https://github.com/biomejs/biome/commit/3710702c3c489f57f82c24311023e1ffad53172a) Thanks [@dibashthapa](https://github.com/dibashthapa)! - Added the new nursery rule [`useDestructuring`](https://biomejs.dev/linter/rules/use-destructuring). This rule helps to encourage destructuring from arrays and objects.
  103. For example, the following code triggers because the variable name `x` matches the property `foo.x`, making it ideal for object destructuring syntax.
  104. ```js
  105. var x = foo.x;
  106. ```
  107. - [#8383](https://github.com/biomejs/biome/pull/8383) [`59b2f9a`](https://github.com/biomejs/biome/commit/59b2f9a780320b5eae8a4e66e2a5fe8256d52fe6) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7927](https://github.com/biomejs/biome/issues/7927): [`noExtraNonNullAssertion`](https://biomejs.dev/linter/rules/no-extra-non-null-assertion) incorrectly flagged separate non-null assertions on both sides of an assignment.
  108. The rule now correctly distinguishes between nested non-null assertions (still flagged) and separate non-null assertions on different sides of an assignment (allowed).
  109. #### Examples
  110. ##### Valid (now allowed)
  111. ```ts
  112. arr[0]! ^= arr[1]!;
  113. ```
  114. ##### Invalid (still flagged)
  115. ```ts
  116. arr[0]!! ^= arr[1];
  117. arr[0] ^= arr[1]!!;
  118. ```
  119. - [#8401](https://github.com/biomejs/biome/pull/8401) [`382786b`](https://github.com/biomejs/biome/commit/382786b29f0c1e9524fee370ef7067de82a25e91) Thanks [@Bertie690](https://github.com/Bertie690)! - [`useExhaustiveDependencies`](https://biomejs.dev/linter/rules/use-exhaustive-dependencies) now correctly validates custom hooks whose dependency arrays come before their callbacks.
  120. Previously, a logical error caused the rule to be unable to detect dependency arrays placed before hook callbacks, producing spurious errors and blocking further diagnostics.
  121. ```json
  122. {
  123. "linter": {
  124. "rules": {
  125. "correctness": {
  126. "useExhaustiveDependencies": {
  127. "level": "error",
  128. "options": {
  129. "hooks": [
  130. {
  131. "name": "doSomething",
  132. "closureIndex": 2,
  133. "dependenciesIndex": 0
  134. }
  135. ]
  136. }
  137. }
  138. }
  139. }
  140. }
  141. }
  142. ```
  143. ```js
  144. function component() {
  145. let thing = 5;
  146. // The rule will now correctly recognize `thing` as being specified
  147. // instead of erroring due to "missing" dependency arrays
  148. doSomething([thing], "blah", () => {
  149. console.log(thing);
  150. });
  151. }
  152. ```
  153. The rule documentation & diagnostic messages have also been reworked for improved clarity.
  154. - [#8365](https://github.com/biomejs/biome/pull/8365) [`8f36051`](https://github.com/biomejs/biome/commit/8f36051bc30978b2900329a18176de423db25cfe) Thanks [@JacquesLeupin](https://github.com/JacquesLeupin)! - Fixed [#8360](https://github.com/biomejs/biome/issues/8360): GritQL plugins defined in child configurations with `extends: "//"` now work correctly.
  155. - [#8306](https://github.com/biomejs/biome/pull/8306) [`8de2774`](https://github.com/biomejs/biome/commit/8de2774fb507a10e32ecf920bb5d0f801a9e869c) Thanks [@dibashthapa](https://github.com/dibashthapa)! - Fixed [#8288](https://github.com/biomejs/biome/issues/8288): Fixed the issue with false positive errors
  156. This new change will ignore attribute and only show diagnostics for JSX Expressions
  157. For example
  158. Valid:
  159. ```jsx
  160. <Something checked={isOpen && items.length} />
  161. ```
  162. Invalid:
  163. ```jsx
  164. const Component = () => {
  165. return isOpen && items.length;
  166. };
  167. ```
  168. - [#8356](https://github.com/biomejs/biome/pull/8356) [`f9673fc`](https://github.com/biomejs/biome/commit/f9673fc0816908cd686eab7a48d4e8be3f51c7c7) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7917](https://github.com/biomejs/biome/issues/7917), where Biome removed the styles contained in a `<style lang="scss">`, when `experimentalFullSupportEnabled` is enabled.
  169. - [#8371](https://github.com/biomejs/biome/pull/8371) [`d71924e`](https://github.com/biomejs/biome/commit/d71924e26d8c71b7216247d71547e45183d85054) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7343](https://github.com/biomejs/biome/issues/7343), where Biome failed to resolve extended configurations from parent directories using relative paths.
  170. - [#8404](https://github.com/biomejs/biome/pull/8404) [`6a221f9`](https://github.com/biomejs/biome/commit/6a221f98304133d80a8b328b74b203a03f68f571) Thanks [@fireairforce](https://github.com/fireairforce)! - Fixed [#7826](https://github.com/biomejs/biome/issues/7826), where a class member named `async` will not cause the parse error.
  171. - [#8249](https://github.com/biomejs/biome/pull/8249) [`893e36c`](https://github.com/biomejs/biome/commit/893e36c7c39d210ccedfe040bb414945262b5d92) Thanks [@cormacrelf](https://github.com/cormacrelf)! - Addressed [#7538](https://github.com/biomejs/biome/issues/7538). Reduced the
  172. volume of logging from the LSP server.
  173. Use `biome clean` to remove large logs.
  174. - [#8303](https://github.com/biomejs/biome/pull/8303) [`db2c65b`](https://github.com/biomejs/biome/commit/db2c65b7eaf057eda12434e98acf5430fe77b165) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Fixed [#8300](https://github.com/biomejs/biome/issues/8300): [`noUnusedImports`](https://biomejs.dev/linter/rules/no-unused-imports/) now detects JSDoc tags on object properties.
  175. ```js
  176. import type LinkOnObjectProperty from "mod";
  177. const testLinkOnObjectProperty = {
  178. /**
  179. * {@link LinkOnObjectProperty}
  180. */
  181. property: 0,
  182. };
  183. ```
  184. - [#8328](https://github.com/biomejs/biome/pull/8328) [`9cf2332`](https://github.com/biomejs/biome/commit/9cf233275d1369bcce191146660ea92b26d6f211) Thanks [@Netail](https://github.com/Netail)! - Corrected rule source reference. `biome migrate eslint` should do a bit better detecting rules in your eslint configurations.
  185. - [#8403](https://github.com/biomejs/biome/pull/8403) [`c96dcf2`](https://github.com/biomejs/biome/commit/c96dcf2f2824a83f8df8f86b684301184dd1344b) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#8340](https://github.com/biomejs/biome/issues/8340): `noUnknownProperty` will no longer flag anything in `@plugin` when the parser option `tailwindDirectives` is enabled
  186. - [#8284](https://github.com/biomejs/biome/pull/8284) [`4976d1b`](https://github.com/biomejs/biome/commit/4976d1bebf81f874a0378f904e03c38fdb397702) Thanks [@denbezrukov](https://github.com/denbezrukov)! - Improved the performance of the Biome Formatter by enabling the internal source maps only when needed.
  187. - [#8260](https://github.com/biomejs/biome/pull/8260) [`a226b28`](https://github.com/biomejs/biome/commit/a226b2862daa6e8d130bf3bfd88f6693412607e6) Thanks [@ho991217](https://github.com/ho991217)! - Fixed [biome-vscode#817](https://github.com/biomejs/biome-vscode/issues/817): Biome now updates documents when the `textDocument/didSave` notification is received.
  188. - [#8183](https://github.com/biomejs/biome/pull/8183) [`b064786`](https://github.com/biomejs/biome/commit/b064786002ec7bd80be3a4a4b94a8f61b0aa3a47) Thanks [@hornta](https://github.com/hornta)! - Fixed [#8179](https://github.com/biomejs/biome/issues/8179): The [`useConsistentArrowReturn`](https://biomejs.dev/linter/rules/use-consistent-arrow-return/) rule now correctly handles multiline expressions in its autofix when the `style` option is set to `"always"`.
  189. Previously, the autofix would incorrectly place a newline after the `return` keyword, causing unexpected behavior.
  190. Example:
  191. ```js
  192. const foo = (l) => l.split("\n");
  193. ```
  194. Now correctly autofixes to:
  195. ```diff
  196. const foo = (l) => {
  197. - return
  198. - l.split('\n');
  199. + return l.split('\n');
  200. }
  201. ```
  202. - [#8382](https://github.com/biomejs/biome/pull/8382) [`7409cba`](https://github.com/biomejs/biome/commit/7409cbaa9be1eed34c1279920bdd33674120f0b3) Thanks [@fireairforce](https://github.com/fireairforce)! - Fixed [#8338](https://github.com/biomejs/biome/issues/8338): Ignored the `noUnknownTypeSelector` check when the `root` selector is used under View Transition pseudo-elements.
  203. **Example**
  204. ```css
  205. ::view-transition-old(root),
  206. ::view-transition-new(root) {
  207. z-index: 1;
  208. }
  209. ```
  210. - [#7513](https://github.com/biomejs/biome/pull/7513) [`e039f3b`](https://github.com/biomejs/biome/commit/e039f3b17cdf4e4b7c2ae9b0b0c58a9800b5703c) Thanks [@AsherDe](https://github.com/AsherDe)! - Added the nursery rule [`noVueSetupPropsReactivityLoss`](https://biomejs.dev/linter/rules/no-vue-setup-props-reactivity-loss/).
  211. This new rule disallows usages that cause the reactivity of `props` passed to the `setup` function to be lost.
  212. Invalid code example:
  213. ```jsx
  214. export default {
  215. setup({ count }) {
  216. // `count` is no longer reactive here.
  217. return () => h("div", count);
  218. },
  219. };
  220. ```
  221. ## What's Changed
  222. * fix(lsp): do not log full file contents twice on every keystroke by @cormacrelf in https://github.com/biomejs/biome/pull/8249
  223. * docs: be more specific with changeset guidelines by @dyc3 in https://github.com/biomejs/biome/pull/8282
  224. * fix: reload file from disk on save to fix stale diagnostics by @ho991217 in https://github.com/biomejs/biome/pull/8260
  225. * feat(js_analyze): implement `useRegexpExec` by @Netail in https://github.com/biomejs/biome/pull/8034
  226. * feat(cli): show html full support configuration in `biome rage` output by @dyc3 in https://github.com/biomejs/biome/pull/8296
  227. * ci: bundle WASM manually by @ematipico in https://github.com/biomejs/biome/pull/8271
  228. * feat(analyse/json): add `useRequiredScripts` rule by @tylersayshi in https://github.com/biomejs/biome/pull/8281
  229. * fix(noUnusedImports): detect JSDoc tags on object properties by @hirokiokada77 in https://github.com/biomejs/biome/pull/8303
  230. * fix(js_parser): allow return statements in Astro frontmatter by @mlafeldt in https://github.com/biomejs/biome/pull/8302
  231. * feat(useSortedClasses): add support for negative value utilities by @Yonom in https://github.com/biomejs/biome/pull/8297
  232. * fix(lint): fixed the issue with false positive errors for `noLeakedRender` rule by @dibashthapa in https://github.com/biomejs/biome/pull/8306
  233. * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/8319
  234. * chore(deps): update dependency @changesets/changelog-github to v0.5.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/8320
  235. * chore(deps): update dependency @changesets/cli to v2.29.8 by @renovate[bot] in https://github.com/biomejs/biome/pull/8322
  236. * docs: node protocol rule reference by @Netail in https://github.com/biomejs/biome/pull/8328
  237. * feat(lint): implement vue/noSetupPropsReactivityLoss by @AsherDe in https://github.com/biomejs/biome/pull/7513
  238. * fix(lint): improve `noBiomeFirstException` by @ematipico in https://github.com/biomejs/biome/pull/8326
  239. * fix(noDoneCallback): avoid false positives on non-hook identifiers by @hirokiokada77 in https://github.com/biomejs/biome/pull/8315
  240. * feat(linter): implement `useAwaitThenable` by @arendjr in https://github.com/biomejs/biome/pull/8341
  241. * chore: move depot to platinum sponsor by @ematipico in https://github.com/biomejs/biome/pull/8337
  242. * fix(core): implement constructor parameter property tracking by @arendjr in https://github.com/biomejs/biome/pull/8346
  243. * refactor(core): document services by @ematipico in https://github.com/biomejs/biome/pull/8327
  244. * refactor(core): use boxcar by @ematipico in https://github.com/biomejs/biome/pull/8352
  245. * fix(html/formatter): style tag with lang by @ematipico in https://github.com/biomejs/biome/pull/8356
  246. * feat(format/html): handle iframe allow special formatting by @dyc3 in https://github.com/biomejs/biome/pull/8290
  247. * chore: sync html prettier tests by @dyc3 in https://github.com/biomejs/biome/pull/8291
  248. * feat(lint): implement `useDestructuring` by @dibashthapa in https://github.com/biomejs/biome/pull/8335
  249. * refactor(formatter): add printer option to disable source-map generation by @denbezrukov in https://github.com/biomejs/biome/pull/8284
  250. * refactor(formatter): reduce best fitting allocations by @denbezrukov in https://github.com/biomejs/biome/pull/8137
  251. * fix: resolve plugin paths relative to config file when using extends by @JacquesLeupin in https://github.com/biomejs/biome/pull/8365
  252. * fix(cli): resolve configs from parent paths by @ematipico in https://github.com/biomejs/biome/pull/8371
  253. * fix(lint): update rule diagnostic message for `useUnifiedTypeSignature` by @Bertie690 in https://github.com/biomejs/biome/pull/8378
  254. * feat: implement noScriptUrl rule by @ruidosujeira in https://github.com/biomejs/biome/pull/8232
  255. * fix(lint): don't flag separate non-null assertions on assignment sides by @ematipico in https://github.com/biomejs/biome/pull/8383
  256. * fix(parse/html/vue): emit diagnostics for invalid vue shorthand syntaxes by @dyc3 in https://github.com/biomejs/biome/pull/8242
  257. * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/8384
  258. * chore(deps): update rust crate libc to 0.2.178 by @renovate[bot] in https://github.com/biomejs/biome/pull/8385
  259. * fix(noUnknownTypeSelectors): allow root when under ViewTransitions pseudo elements by @fireairforce in https://github.com/biomejs/biome/pull/8382
  260. * fix(deps): update @biomejs packages by @renovate[bot] in https://github.com/biomejs/biome/pull/8386
  261. * fix(deps): update dependency prettier to v3.7.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/8387
  262. * fix(core): document services by @ematipico in https://github.com/biomejs/biome/pull/8394
  263. * ci: attest build provenance for CLI binaries by @siketyan in https://github.com/biomejs/biome/pull/8379
  264. * chore(deps): update rust crate tower-lsp-server to 0.23.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/8392
  265. * fix(parser): allow async as class member name by @fireairforce in https://github.com/biomejs/biome/pull/8404
  266. * fix(noUnknownProperty): don't flag anything in `@plugin` by @dyc3 in https://github.com/biomejs/biome/pull/8403
  267. * fix(grit): correct JSX element slot indices for GritQL patterns by @rriski in https://github.com/biomejs/biome/pull/8411
  268. * chore: speed up build of dev profile by @ematipico in https://github.com/biomejs/biome/pull/8432
  269. * feat(lint): update docs & diagnostic for `lint/nursery/noProto` by @Bertie690 in https://github.com/biomejs/biome/pull/8414
  270. * fix: improve rustdoc for IndentStyle by @GameRoMan in https://github.com/biomejs/biome/pull/8425
  271. * fix(lint): remove `useExhaustiveDependencies` spurious errors on dependency-first custom hooks; improve docs by @Bertie690 in https://github.com/biomejs/biome/pull/8401
  272. * fix: fix typo in changeset by @Bertie690 in https://github.com/biomejs/biome/pull/8438
  273. * fix(linter): prevent useConsistentCurlyBraces from suggesting invalid JSX text conversion by @tt-a1i in https://github.com/biomejs/biome/pull/8439
  274. * fix(config): inherit enabled state from global config in overrides by @ruidosujeira in https://github.com/biomejs/biome/pull/8436
  275. * fix(linter): allow `() => undefined` in noUselessUndefined by @tt-a1i in https://github.com/biomejs/biome/pull/8441
  276. * fix(noUnknownMediaFeatureName): fix typo in prefers-reduced-transparency by @tt-a1i in https://github.com/biomejs/biome/pull/8444
  277. * fix(useGenericFontNames): handle CSS variable as last font-family value by @tt-a1i in https://github.com/biomejs/biome/pull/8443
  278. * fix(cli): skip deleted files in --changed and --staged by @tt-a1i in https://github.com/biomejs/biome/pull/8445
  279. * fix(lint): update default value of `ignoreRestSiblings` for `noUnusedVariables` by @Bertie690 in https://github.com/biomejs/biome/pull/8398
  280. * fix(lint): correct multiline autofix in useConsistentArrowReturn by @hornta in https://github.com/biomejs/biome/pull/8183
  281. * chore: tweak changeset by @dyc3 in https://github.com/biomejs/biome/pull/8452
  282. * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/8455
  283. * chore(deps): update dependency @types/node to v24.10.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/8458
  284. * chore(deps): update rust:1.91.1-bookworm docker digest to c1e5f19 by @renovate[bot] in https://github.com/biomejs/biome/pull/8456
  285. * chore(deps): update rust:1.91.1-bullseye docker digest to f02c249 by @renovate[bot] in https://github.com/biomejs/biome/pull/8457
  286. * chore(deps): update rust crate camino to 1.2.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/8460
  287. * fix(deps): update @biomejs packages by @renovate[bot] in https://github.com/biomejs/biome/pull/8461
  288. * fix(semantic): track scope for TS construct signature type parameters by @ruidosujeira in https://github.com/biomejs/biome/pull/8459
  289. * fix(parse/css): skip tailwind syntax in `@import` by @dyc3 in https://github.com/biomejs/biome/pull/8433
  290. * ci: fix wasm artifact names for release workflow by @dyc3 in https://github.com/biomejs/biome/pull/8468
  291. * ci: fix wasm artifacts again by @dyc3 in https://github.com/biomejs/biome/pull/8470
  292. * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/8469
  293. ## New Contributors
  294. * @ho991217 made their first contribution in https://github.com/biomejs/biome/pull/8260
  295. * @tylersayshi made their first contribution in https://github.com/biomejs/biome/pull/8281
  296. * @mlafeldt made their first contribution in https://github.com/biomejs/biome/pull/8302
  297. * @Yonom made their first contribution in https://github.com/biomejs/biome/pull/8297
  298. * @AsherDe made their first contribution in https://github.com/biomejs/biome/pull/7513
  299. * @JacquesLeupin made their first contribution in https://github.com/biomejs/biome/pull/8365
  300. * @GameRoMan made their first contribution in https://github.com/biomejs/biome/pull/8425
  301. * @tt-a1i made their first contribution in https://github.com/biomejs/biome/pull/8439
  302. * @hornta made their first contribution in https://github.com/biomejs/biome/pull/8183
  303. **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.3.8...@biomejs/biome@2.3.9

view on githubimported 2026-09-28 via npm