biomejs/biome (@biomejs/biome)
### [`v1.9.4`](https://redirect.github.com/biomejs/biome/blob/HEAD/CHANGELOG.md#v194-2024-10-17)
[Compare Source](https://redirect.github.com/biomejs/biome/compare/3d498ed6399dc642d045f9bb9e9782a88c6bd4c9...fa93a147abe64e9c85908d317a8dd1de343ad132)
##### Analyzer
##### Bug fixes
- Implement [GraphQL suppression action](https://redirect.github.com/biomejs/biome/pull/4312). Contributed by [@vohoanglong0107](https://redirect.github.com/vohoanglong0107)
- Improved the message for unused suppression comments. Contributed by [@dyc3](https://redirect.github.com/dyc3)
- Fix [#4228](https://redirect.github.com/biomejs/biome/issues/4228), where the rule `a11y/noInteractiveElementToNoninteractiveRole` incorrectly reports a `role` for non-interactive elements. Contributed by [@eryue0220](https://redirect.github.com/eryue0220)
- `noSuspiciousSemicolonInJsx` now catches suspicious semicolons in React fragments. Contributed by [@vasucp1207](https://redirect.github.com/vasucp1207)
##### CLI
##### Enhancements
- The `--summary` reporter now reports parsing diagnostics too. Contributed by [@ematipico](https://redirect.github.com/ematipico)
- Improved performance of GritQL queries by roughly 25-30%. Contributed by [@arendjr](https://redirect.github.com/arendjr)
##### Configuration
##### Bug fixes
- Fix an issue where the JSON schema marked lint rules options as mandatory. Contributed by [@ematipico](https://redirect.github.com/ematipico)
##### Editors
##### Formatter
##### Bug fixes
- Fix [#4121](https://redirect.github.com/biomejs/biome/issues/4121). Respect line width when printing multiline strings. Contributed by [@ah-yu](https://redirect.github.com/ah-yu)
##### JavaScript APIs
##### Linter
##### New features
- Add [useGuardForIn](https://biomejs.dev/linter/rules/use-guard-for-in/). Contributed by [@fireairforce](https://redirect.github.com/fireairforce)
- Add [noDocumentCookie](https://biomejs.dev/linter/rules/no-document-cookie/). Contributed by [@tunamaguro](https://redirect.github.com/tunamaguro)
- Add [noDocumentImportInPage](https://biomejs.dev/linter/rules/no-document-import-in-page/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte)
- Add [noDuplicateProperties](https://biomejs.dev/linter/rules/no-duplicate-properties/). Contributed by [@togami2864](https://redirect.github.com/togami2864)
- Add [noHeadElement](https://biomejs.dev/linter/rules/no-head-element/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte)
- Add [noHeadImportInDocument](https://biomejs.dev/linter/rules/no-head-import-in-document/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte)
- Add [noImgElement](https://biomejs.dev/linter/rules/no-img-element/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte)
- Add [noUnknownTypeSelector](https://biomejs.dev/linter/rules/no-unknown-type-selector/). Contributed by [@Kazuhiro-Mimaki](https://redirect.github.com/Kazuhiro-Mimaki)
- Add [useAtIndex](https://biomejs.dev/linter/rules/use-at-index/). Contributed by [@GunseiKPaseri](https://redirect.github.com/GunseiKPaseri)
- Add [noUselessStringRaw](https://biomejs.dev/linter/rules/no-useless-string-raw/). Contributed by [@fireairforce](https://redirect.github.com/fireairforce)
- Add [nursery/useCollapsedIf](https://biomejs.dev/linter/rules/use-collapsed-if/). Contributed by [@siketyan](https://redirect.github.com/siketyan)
- Add [useGoogleFontDisplay](https://biomejs.dev/linter/rules/use-google-font-display/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte)
##### Bug Fixes
- Biome no longer crashes when it encounters a string that contain a multibyte character ([#4181](https://redirect.github.com/biomejs/biome/issues/4181)).
This fixes a regression introduced in Biome 1.9.3
The regression affected the following linter rules:
- `nursery/useSortedClasses`
- `nursery/useTrimStartEnd`
- `style/useTemplate`
- `suspicious/noMisleadingCharacterClass`
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- Fix [#4190](https://redirect.github.com/biomejs/biome/issues/4190), where the rule `noMissingVarFunction` wrongly reported a variable as missing when used inside a `var()` function that was a newline. Contributed by [@ematipico](https://redirect.github.com/ematipico)
- Fix [#4041](https://redirect.github.com/biomejs/biome/issues/4041). Now the rule `useSortedClasses` won't be triggered if `className` is composed only by inlined variables. Contributed by [@ematipico](https://redirect.github.com/ematipico)
- [useImportType](https://biomejs.dev/linter/rules/use-import-type/) and [useExportType](https://biomejs.dev/linter/rules/use-export-type/) now report useless inline type qualifiers ([#4178](https://redirect.github.com/biomejs/biome/issues/4178)).
The following fix is now proposed:
```diff
- import type { type A, B } from "";
+ import type { A, B } from "";
- export type { type C, D };
+ export type { C, D };
```
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [useExportType](https://biomejs.dev/linter/rules/use-export-type/) now reports ungrouped `export from`.
The following fix is now proposed:
```diff
- export { type A, type B } from "";
+ export type { A, B } from "";
```
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [noVoidTypeReturn](https://biomejs.dev/linter/rules/no-void-type-return/) now accepts `void` expressions in return position ([#4173](https://redirect.github.com/biomejs/biome/issues/4173)).
The following code is now accepted:
```ts
function f(): void {
return void 0;
}
```
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [noUselessFragments](https://biomejs.dev/linter/rules/no-useless-fragments/) now correctly handles fragments containing HTML escapes (e.g. ` `) inside expression escapes `{ ... }` ([#4059](https://redirect.github.com/biomejs/biome/issues/4059)).
The following code is no longer reported:
```jsx
function Component() {
return (
{line || <> >}
)
}
```
Contributed by [@fireairforce](https://redirect.github.com/fireairforce)
- [noUnusedFunctionParameters](https://biomejs.dev/linter/rules/no-unused-function-parameters/) and [noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/) no longer reports a parameter as unused when another parameter has a constructor type with the same parameter name ([#4227](https://redirect.github.com/biomejs/biome/issues/4227)).
In the following code, the `name` parameter is no longer reported as unused.
```ts
export class Foo {
bar(name: string, _class: new (name: string) => any) {
return name
}
}
```
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/) now accepts dependency names with dots. Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [useFilenamingConvention](https://biomejs.dev/linter/rules/use-filenaming-convention) now correctly handles renamed exports ([#4254](https://redirect.github.com/biomejs/biome/issues/4254)).
The rule allows the filename to be named as one of the exports of the module.
For instance, the file containing the following export can be named `Button`.
```js
class Button {}
export { Button }
```
The rule now correctly handles the renaming of an export.
For example, the file containing the following export can only be named `Button`.
Previously the rule expected the file to be named `A`.
```js
class A {}
export { A as Button }
```
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [useConsistentMemberAccessibility](https://biomejs.dev/linter/rules/use-consistent-member-accessibility/) now ignore private class members such as `#property` ([#4276](https://redirect.github.com/biomejs/biome/issues/4276)). Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- [noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function/) correctly handles `calc-size` function ([#4212](https://redirect.github.com/biomejs/biome/issues/4212)).
The following code `calc-size` is no longer reported as unknown:
```css
.a { height: calc-size(0px); }
```
Contributed by [@fireairforce](https://redirect.github.com/fireairforce)
- [useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/) now allows configuring conventions for readonly index signatures.
Contributed by [@sepruko](https://redirect.github.com/sepruko)
- [noDuplicateCustomProperties](https://biomejs.dev/linter/rules/no-duplicate-custom-properties/) now correctly handles custom properties and ignores non-custom properties.
Previously, the rule incorrectly reported duplicates for all properties, including non-custom ones. Contributed by [@togami2864](https://redirect.github.com/togami2864)
##### Parser
##### Bug Fixes
- The CSS parser now accepts more emoji in identifiers ([#3627](https://redirect.github.com/biomejs/biome/issues/3627#issuecomment-2392388022)).
Browsers accept more emoji than the standard allows.
Biome now accepts these additional emojis.
The following code is now correctly parsed:
```css
p {
--✨-color: red;
color: var(--✨-color);
}
```
Contributed by [@Conaclos](https://redirect.github.com/Conaclos)
- Add support for parsing typescript's `resolution-mode` in Import Types([#2115](https://redirect.github.com/biomejs/biome/issues/2115))
```ts
export type Fs = typeof import('fs', { with: { 'resolution-mode': 'import' } });
export type TypeFromRequire =
import("pkg", { with: { "resolution-mode": "require" } }).TypeFromRequire;
export type TypeFromImport =
import("pkg", { with: { "resolution-mode": "import" } }).TypeFromImport;
```
Contributed by [@fireairforce](https://redirect.github.com/fireairforce)
Configuration
📅 Schedule: Branch creation - "every weekend" in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.9.3
->1.9.4
Release Notes
biomejs/biome (@biomejs/biome)
### [`v1.9.4`](https://redirect.github.com/biomejs/biome/blob/HEAD/CHANGELOG.md#v194-2024-10-17) [Compare Source](https://redirect.github.com/biomejs/biome/compare/3d498ed6399dc642d045f9bb9e9782a88c6bd4c9...fa93a147abe64e9c85908d317a8dd1de343ad132) ##### Analyzer ##### Bug fixes - Implement [GraphQL suppression action](https://redirect.github.com/biomejs/biome/pull/4312). Contributed by [@vohoanglong0107](https://redirect.github.com/vohoanglong0107) - Improved the message for unused suppression comments. Contributed by [@dyc3](https://redirect.github.com/dyc3) - Fix [#4228](https://redirect.github.com/biomejs/biome/issues/4228), where the rule `a11y/noInteractiveElementToNoninteractiveRole` incorrectly reports a `role` for non-interactive elements. Contributed by [@eryue0220](https://redirect.github.com/eryue0220) - `noSuspiciousSemicolonInJsx` now catches suspicious semicolons in React fragments. Contributed by [@vasucp1207](https://redirect.github.com/vasucp1207) ##### CLI ##### Enhancements - The `--summary` reporter now reports parsing diagnostics too. Contributed by [@ematipico](https://redirect.github.com/ematipico) - Improved performance of GritQL queries by roughly 25-30%. Contributed by [@arendjr](https://redirect.github.com/arendjr) ##### Configuration ##### Bug fixes - Fix an issue where the JSON schema marked lint rules options as mandatory. Contributed by [@ematipico](https://redirect.github.com/ematipico) ##### Editors ##### Formatter ##### Bug fixes - Fix [#4121](https://redirect.github.com/biomejs/biome/issues/4121). Respect line width when printing multiline strings. Contributed by [@ah-yu](https://redirect.github.com/ah-yu) ##### JavaScript APIs ##### Linter ##### New features - Add [useGuardForIn](https://biomejs.dev/linter/rules/use-guard-for-in/). Contributed by [@fireairforce](https://redirect.github.com/fireairforce) - Add [noDocumentCookie](https://biomejs.dev/linter/rules/no-document-cookie/). Contributed by [@tunamaguro](https://redirect.github.com/tunamaguro) - Add [noDocumentImportInPage](https://biomejs.dev/linter/rules/no-document-import-in-page/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte) - Add [noDuplicateProperties](https://biomejs.dev/linter/rules/no-duplicate-properties/). Contributed by [@togami2864](https://redirect.github.com/togami2864) - Add [noHeadElement](https://biomejs.dev/linter/rules/no-head-element/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte) - Add [noHeadImportInDocument](https://biomejs.dev/linter/rules/no-head-import-in-document/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte) - Add [noImgElement](https://biomejs.dev/linter/rules/no-img-element/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte) - Add [noUnknownTypeSelector](https://biomejs.dev/linter/rules/no-unknown-type-selector/). Contributed by [@Kazuhiro-Mimaki](https://redirect.github.com/Kazuhiro-Mimaki) - Add [useAtIndex](https://biomejs.dev/linter/rules/use-at-index/). Contributed by [@GunseiKPaseri](https://redirect.github.com/GunseiKPaseri) - Add [noUselessStringRaw](https://biomejs.dev/linter/rules/no-useless-string-raw/). Contributed by [@fireairforce](https://redirect.github.com/fireairforce) - Add [nursery/useCollapsedIf](https://biomejs.dev/linter/rules/use-collapsed-if/). Contributed by [@siketyan](https://redirect.github.com/siketyan) - Add [useGoogleFontDisplay](https://biomejs.dev/linter/rules/use-google-font-display/). Contributed by [@kaioduarte](https://redirect.github.com/kaioduarte) ##### Bug Fixes - Biome no longer crashes when it encounters a string that contain a multibyte character ([#4181](https://redirect.github.com/biomejs/biome/issues/4181)). This fixes a regression introduced in Biome 1.9.3 The regression affected the following linter rules: - `nursery/useSortedClasses` - `nursery/useTrimStartEnd` - `style/useTemplate` - `suspicious/noMisleadingCharacterClass` Contributed by [@Conaclos](https://redirect.github.com/Conaclos) - Fix [#4190](https://redirect.github.com/biomejs/biome/issues/4190), where the rule `noMissingVarFunction` wrongly reported a variable as missing when used inside a `var()` function that was a newline. Contributed by [@ematipico](https://redirect.github.com/ematipico) - Fix [#4041](https://redirect.github.com/biomejs/biome/issues/4041). Now the rule `useSortedClasses` won't be triggered if `className` is composed only by inlined variables. Contributed by [@ematipico](https://redirect.github.com/ematipico) - [useImportType](https://biomejs.dev/linter/rules/use-import-type/) and [useExportType](https://biomejs.dev/linter/rules/use-export-type/) now report useless inline type qualifiers ([#4178](https://redirect.github.com/biomejs/biome/issues/4178)). The following fix is now proposed: ```diff - import type { type A, B } from ""; + import type { A, B } from ""; - export type { type C, D }; + export type { C, D }; ``` Contributed by [@Conaclos](https://redirect.github.com/Conaclos) - [useExportType](https://biomejs.dev/linter/rules/use-export-type/) now reports ungrouped `export from`. The following fix is now proposed: ```diff - export { type A, type B } from ""; + export type { A, B } from ""; ``` Contributed by [@Conaclos](https://redirect.github.com/Conaclos) - [noVoidTypeReturn](https://biomejs.dev/linter/rules/no-void-type-return/) now accepts `void` expressions in return position ([#4173](https://redirect.github.com/biomejs/biome/issues/4173)). The following code is now accepted: ```ts function f(): void { return void 0; } ``` Contributed by [@Conaclos](https://redirect.github.com/Conaclos) - [noUselessFragments](https://biomejs.dev/linter/rules/no-useless-fragments/) now correctly handles fragments containing HTML escapes (e.g. ` `) inside expression escapes `{ ... }` ([#4059](https://redirect.github.com/biomejs/biome/issues/4059)). The following code is no longer reported: ```jsx function Component() { return (Configuration
📅 Schedule: Branch creation - "every weekend" in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.