Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

💅 noExportsInTest treats source code as test files when using in-source testing #2859

Closed
1 task done
chrisvander opened this issue May 14, 2024 · 0 comments · Fixed by #2861
Closed
1 task done
Assignees
Labels
A-Linter Area: linter L-JavaScript Language: JavaScript and super languages S-Bug-confirmed Status: report has been confirmed as a valid bug

Comments

@chrisvander
Copy link

chrisvander commented May 14, 2024

Environment information

CLI:
  Version:                      1.7.3
  Color support:                true

Platform:
  CPU Architecture:             aarch64
  OS:                           macos

Environment:
  BIOME_LOG_DIR:                unset
  NO_COLOR:                     unset
  TERM:                         "xterm-256color"
  JS_RUNTIME_VERSION:           "v18.19.1"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         "pnpm/8.15.4"

Biome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    false
  VCS disabled:                 false

Linter:
  Recommended:                  true
  All:                          false
  Rules:                        a11y/useValidAnchor = "off"
                                complexity/noForEach = "off"
                                nursery/useSortedClasses = "error"
                                performance/noAccumulatingSpread = "off"
                                style/noNonNullAssertion = "off"

Workspace:
  Open Documents:               0

Rule name

noExportsInTest

Playground link

https://biomejs.dev/playground/?indentStyle=space&files.main.tsx=ZQB4AHAAbwByAHQAIABjAG8AbgBzAHQAIAB0AGUAcwB0ACAAPQAgACIAYQBiAGMAZABlAGYAIgAKAAoAaQBmACAAKABpAG0AcABvAHIAdAAuAG0AZQB0AGEALgB2AGkAdABlAHMAdAApACAAewAKACAAIABjAG8AbgBzAHQAIAB7ACAAZABlAHMAYwByAGkAYgBlACwAIABlAHgAcABlAGMAdAAgAH0AIAA9ACAAaQBtAHAAbwByAHQALgBtAGUAdABhAC4AdgBpAHQAZQBzAHQACgAgACAAZABlAHMAYwByAGkAYgBlACgAIgBhACAAdABlAHMAdAAiACwAIAAoACkAIAA9AD4AIAB7AAoAIAAgACAAIABlAHgAcABlAGMAdAAoAHQAZQBzAHQAKQAuAHQAbwBFAHEAdQBhAGwAKAAiAGEAYgBjAGQAZQBmACIAKQAKACAAIAB9ACkACgB9AAoA

Expected result

When using in-source testing with Vitest, Biome detects those source code files as test files and errors on any exports inside of those files.

Code of Conduct

  • I agree to follow Biome's Code of Conduct
@ah-yu ah-yu added A-Linter Area: linter L-JavaScript Language: JavaScript and super languages S-Bug-confirmed Status: report has been confirmed as a valid bug labels May 15, 2024
@ah-yu ah-yu self-assigned this May 15, 2024
renovate bot added a commit to ariakit/ariakit that referenced this issue Jun 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.7.3` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.7.3/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.8.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#180-2024-06-04)

[Compare
Source](https://togithub.com/biomejs/biome/compare/b9f90b7ee63506a1995bc29f4e389efec25a1525...378c05edd47608a1b8cba725564c807b2e772bd6)

##### Analyzer

##### New features

- Allow suppression comments to suppress individual instances of rules.
This is
used for the lint rule `useExhaustiveDependencies`, which is now able to
suppress specific dependencies. Fixes
[#&#8203;2509](https://togithub.com/biomejs/biome/issues/2509).
Contributed by [@&#8203;arendjr](https://togithub.com/arendjr)

##### Enhancements

- Assume `Astro` object is always a global when processing `.astro`
files. Contributed by [@&#8203;minht11](https://togithub.com/minht11)
- Assume Vue compiler macros are globals when processing `.vue` files.
([#&#8203;2771](https://togithub.com/biomejs/biome/pull/2771))
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### CLI

##### New features

- New `clean` command. Use this new command to clean after the
`biome-logs` directory, and remove all the log files.

    ```shell
    biome clean
    ```

- Add two new options `--only` and `--skip` to the command `biome lint`
([#&#8203;58](https://togithub.com/biomejs/biome/issues/58)).

    The `--only` option allows you to run a given rule or rule group,
For example, the following command runs only the
`style/useNamingConvention` and `style/noInferrableTypes` rules.
If the rule is disabled in the configuration, then its severity level is
set to `error` for a recommended rule or `warn` otherwise.

    ```shell
biome lint --only=style/useNamingConvention
--only=style/noInferrableTypes
    ```

Passing a group does not change the severity level of the rules in the
group.
    All the disabled rules in the group will remain disabled.
To ensure that the group is run, the `recommended` field of the group is
enabled.
The `nursery` group cannot be passed, as no rules are enabled by default
in the nursery group.

The `--skip` option allows you to skip the execution of a given group or
a given rule.
For example, the following command skips the `style` group and the
`suspicious/noExplicitAny` rule.

    ```shell
    biome lint --skip=style --skip=suspicious/noExplicitAny
    ```

You can also use `--only` and `--skip` together. `--skip` oevrrides
`--only`.
The following command executes only the rules from the `style` group,
but the `style/useNamingConvention` rule.

    ```shell
    biome lint --only=style --skip=style/useNamingConvention
    ```

These options are compatible with other options such as `--write`
(previously `--apply`), and `--reporter`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add new command `biome clean`. Use this command to purge all the logs
emitted by the Biome daemon. This command is really useful, because the
Biome daemon tends
log many files and contents during its lifecycle. This means that if
your editor is open for hours (or even days), the `biome-logs` folder
could become quite heavy. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add support for formatting and linting CSS files from the CLI. These
operations are **opt-in** for the time being.

If you don't have a configuration file, you can enable these features
with `--css-formatter-enabled` and `--css-linter-enabled`:

    ```shell
biome check --css-formatter-enabled=true --css-linter-enabled=true ./
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new CLI options to control the CSS formatting. Check the [CLI
reference page](https://biomejs.dev/reference/cli/) for more details.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new options `--write`, `--fix` (alias of `--write`) and `--unsafe`
to the command `biome lint` and `biome check`.
Add a new option `--fix` (alias of `--write`) to the command `biome
format` and `biome migrate`.

    ```shell
    biome <lint|check> --<write|fix> [--unsafe]
    biome format --<write|fix>
    biome migrate --<write|fix>
    ```

The `biome <lint|check> --<write|fix>` has the same behavior as `biome
<lint|check> --apply`.
The `biome <lint|check> --<write|fix> --unsafe` has the same behavior as
`biome <lint|check> --apply-unsafe`.
The `biome format --fix` has the same behavior as `biome format
--write`.
The `biome migrate --fix` has the same behavior as `biome migrate
--write`.

This change allows these commands to write modifications in the same
options.
With this change, the `--apply` and `--apply-unsafe` options are
deprecated.

    Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

##### Enhancements

- Biome now executes commands (lint, format, check and ci) on the
working directory by default.
[#&#8203;2266](https://togithub.com/biomejs/biome/issues/2266)
Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

    ```diff
    - biome check .
    + biome check    # You can run the command without the path
    ```

- `biome migrate eslint` now tries to convert ESLint ignore patterns
into Biome ignore patterns.

ESLint uses [gitignore
patterns](https://git-scm.com/docs/gitignore#\_pattern_format).
Biome now tries to convert these patterns into Biome ignore patterns.

For example, the gitignore pattern `/src` is a relative path to the file
in which it appears.
    Biome now recognizes this and translates this pattern to `./src`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- `biome migrate eslint` now supports the `eslintIgnore` field in
`package.json`.

ESLint allows the use of `package.json` as an ESLint configuration file.
    ESLint supports two fields: `eslintConfig` and `eslintIgnore`.
    Biome only supported the former. It now supports both.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   `biome migrate eslint` now propagates NodeJS errors to the user.

This will help users to identify why Biome is unable to load some ESLint
configurations.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add a new `--reporter` called `summary`. This reporter will print
diagnostics in a different way, based on the tools (formatter, linter,
etc.) that are executed.
Import sorting and formatter shows the name of the files that require
formatting. Instead, the linter will group the number of rules triggered
and the number of errors/warnings:

Formatter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to be formatted:
        main.ts
        index.ts

Organize Imports
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to have their imports sorted:
        main.ts
        index.ts

Analyzer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        Some analyzer rules were triggered

Rule Name Diagnostics
lint/suspicious/noImplicitAnyLet 12 (12 error(s), 0 warning(s), 0
info(s))
lint/suspicious/noDoubleEquals 8 (8 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noRedeclare 12 (12 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noDebugger 20 (20 error(s), 0 warning(s), 0 info(s))

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- `biome ci` now enforces printing the output using colours. If you were
previously using `--colors=force`, you can remove it because it's
automatically set. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `github`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

::error
title=lint/suspicious/noDoubleEquals,file=main.ts,line=4,endLine=4,col=3,endColumn=5::Use
=== instead of ==
::error
title=lint/suspicious/noDebugger,file=main.ts,line=6,endLine=6,col=1,endColumn=9::This
is an unexpected use of the debugger statement.
::error
title=lint/nursery/noEvolvingAny,file=main.ts,line=8,endLine=8,col=5,endColumn=6::This
variable's type is not allowed to evolve implicitly, leading to
potential any types.

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `junit`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Biome" tests="16" failures="16" errors="20"
time="<TIME>">
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDoubleEquals" line="4"
column="3">
<failure message="Use === instead of ==. == is only allowed when
comparing against `null`">line 3, col 2, Use === instead of ==. == is
only allowed when comparing against `null`</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDebugger" line="6"
column="1">
<failure message="This is an unexpected use of the debugger
statement.">line 5, col 0, This is an unexpected use of the debugger
statement.</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.nursery.noEvolvingAny" line="8"
column="5">
<failure message="This variable&apos;s type is not allowed to evolve
implicitly, leading to potential any types.">line 7, col 4, This
variable&apos;s type is not allowed to evolve implicitly, leading to
potential any types.</failure>
          </testcase>
      </testsuite>
    </testsuites>
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fix [#&#8203;3024](https://togithub.com/biomejs/biome/issues/3024),
where running `biome init` would create `biome.json` even if
`biome.jsonc` already exists. Contributed by
[@&#8203;minht11](https://togithub.com/minht11)

##### Configuration

##### New features

- Add an rule option `fix` to override the code fix kind of a rule
([#&#8203;2882](https://togithub.com/biomejs/biome/issues/2882)).

    A rule can provide a safe or an **unsafe** code **action**.
You can now tune the kind of code actions thanks to the `fix` option.
    This rule option takes a value among:

    -   `none`: the rule no longer emits code actions.
    -   `safe`: the rule emits safe code action.
    -   `unsafe`: the rule emits unsafe code action.

The following configuration disables the code actions of
`noUnusedVariables`, makes the emitted code actions of `style/useConst`
and `style/useTemplate` unsafe and safe respectively.

    ```json
    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "level": "error",
              "fix": "none"
            },
            "style": {
              "useConst": {
                "level": "warn",
                "fix": "unsafe"
              },
              "useTemplate": {
                "level": "warn",
                "fix": "safe"
              }
            }
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add option `javascript.linter.enabled` to control the linter for
JavaScript (and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `json.linter.enabled` to control the linter for JSON (and
its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.linter.enabled` to control the linter for CSS (and its
super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.formatter`, to control the formatter options for CSS
(and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- You can now change the severity of lint rules down to `"info"`. The
`"info"` severity doesn't emit error codes, and it isn't affected by
other options like `--error-on-warnings`:

    ```json
    {
      "linter": {
        "rules": {
          "suspicious": {
            "noDebugger": "info"
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Enhancements

- The `javascript.formatter.trailingComma` option is deprecated and
renamed to `javascript.formatter.trailingCommas`. The corresponding CLI
option `--trailing-comma` is also deprecated and renamed to
`--trailing-commas`. Details can be checked in
[#&#8203;2492](https://togithub.com/biomejs/biome/pull/2492).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Bug fixes

- Fix a bug where if the formatter was disabled at the language level,
it could be erroneously enabled by an
override that did not specify the formatter section
[#&#8203;2924](https://togithub.com/biomejs/biome/issues/2924).
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)
- Fix [#&#8203;2990](https://togithub.com/biomejs/biome/issues/2990),
now Biome doesn't add a trailing comma when formatting `biome.json`.
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Editors

##### New features

-   Add support for LSP Workspaces

##### Enhancements

- The LSP doesn't crash anymore when the configuration file contains
errors. If the configuration contains errors, Biome now shows a pop-up
to the user, and it will only parse files using the default
configuration.
Formatting and linting is disabled until the configuration file is
fixed. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fixes [#&#8203;2781](https://togithub.com/biomejs/biome/issues/2781),
by correctly computing the configuration to apply to a specific file.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Formatter

##### Bug fixes

- Fix [#&#8203;2470](https://togithub.com/biomejs/biome/issues/2470) by
avoid introducing linebreaks in single line string interpolations.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)
- Resolve deadlocks by narrowing the scope of locks. Contributed by
[@&#8203;mechairoi](https://togithub.com/mechairoi)
- Fix [#&#8203;2782](https://togithub.com/biomejs/biome/issues/2782) by
computing the enabled rules by taking the override settings into
consideration. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)
- Fix
\[biomejs/biome#2877]
by correctly handling line terminators in JSX string. Contributed by
[@&#8203;ah-yu](https://togithub.com/ah-yu)

##### JavaScript APIs

##### Linter

##### Promoted rules

New rules are incubated in the nursery group. Once stable, we promote
them to a stable group. The following rules are promoted:

-
[useImportRestrictions](https://biomejs.dev/linter/rules/use-import-restrictions/)
- [noNodejsModules](https://biomejs.dev/linter/rules/no-nodejs-modules/)
-
[useArrayLiterals](https://biomejs.dev/linter/rules/use-array-literals/)
-
[noConstantMathMinMaxClamp](https://biomejs.dev/linter/rules/no-constant-math-min-max-clamp/)
-
[noFlatMapIdentity](https://biomejs.dev/linter/rules/no-flat-map-identity/)

##### New features

- Add
[nursery/useDateNow](https://biomejs.dev/linter/rules/use-date-now/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useErrorMessage](https://biomejs.dev/linter/rules/use_error_message/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowOnlyError](https://biomejs.dev/linter/rules/use_throw_only_error/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useImportExtensions](https://biomejs.dev/linter/rules/use-import-extensions/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

-
[useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/)
now supports an option to enforce custom conventions
([#&#8203;1900](https://togithub.com/biomejs/biome/issues/1900)).

For example, you can enforce the use of a prefix for private class
members:

    ```json
    {
    	"linter": {
    		"rules": {
    			"style": {
    				"useNamingConvention": {
    					"level": "error",
    					"options": {
    						"conventions": [
    							{
    								"selector": {
    									"kind": "classMember",
    									"modifiers": ["private"]
    								},
    								"match": "_(.*)",
                    "formats": ["camelCase"]
    							}
    						]
    					}
    				}
    			}
    		}
    	}
    }
    ```

Please, find more details in the [rule
documentation](https://biomejs.dev/linter/rules/use-naming-convention/#options).

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add
[nursery/useNumberToFixedDigitsArgument](https://biomejs.dev/linter/rules/use-number-to-fixed-digits-argument/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowNewError](https://biomejs.dev/linter/rules/use-throw-new-error/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useTopLevelRegex](https://biomejs.dev/linter/rules/use-top-level-regex),
which enforces defining regular expressions at the top level of a
module. [#&#8203;2148](https://togithub.com/biomejs/biome/issues/2148)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3).

- Add
[nursery/noCssEmptyBlock](https://biomejs.dev/linter/rules/no-css-empty-block).
[#&#8203;2513](https://togithub.com/biomejs/biome/pull/2513) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateAtImportRules](https://biomejs.dev/linter/rules/no-duplicate-at-import-rules).
[#&#8203;2658](https://togithub.com/biomejs/biome/pull/2658) Contributed
by [@&#8203;DerTimonius](https://togithub.com/DerTimonius)

- Add
[nursery/noDuplicateFontNames](https://biomejs.dev/linter/rules/no-duplicate-font-names).
[#&#8203;2308](https://togithub.com/biomejs/biome/pull/2308) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateSelectorsKeyframeBlock](https://biomejs.dev/linter/rules/no-duplicate-selectors-keyframe-block).
[#&#8203;2534](https://togithub.com/biomejs/biome/pull/2534) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noImportantInKeyframe](https://biomejs.dev/linter/rules/no-important-in-keyframe).
[#&#8203;2542](https://togithub.com/biomejs/biome/pull/2542) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noInvalidPositionAtImportRule](https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule).
[#&#8203;2717](https://togithub.com/biomejs/biome/issues/2717)
Contributed by [@&#8203;t-shiratori](https://togithub.com/t-shiratori)

- Add
[nursery/noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function).
[#&#8203;2570](https://togithub.com/biomejs/biome/pull/2570) Contributed
by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnknownMediaFeatureName](https://biomejs.dev/linter/rules/no-unknown-media-feature-name).
[#&#8203;2751](https://togithub.com/biomejs/biome/issues/2751)
Contributed by
[@&#8203;Kazuhiro-Mimaki](https://togithub.com/Kazuhiro-Mimaki)

- Add
[nursery/noUnknownProperty](https://biomejs.dev/linter/rules/no-unknown-property).
[#&#8203;2755](https://togithub.com/biomejs/biome/pull/2755) Contributed
by [@&#8203;chansuke](https://togithub.com/chansuke)

- Add
[nursery/noUnknownSelectorPseudoElement](https://biomejs.dev/linter/rules/no-unknown-selector-pseudo-element).
[#&#8203;2655](https://togithub.com/biomejs/biome/issues/2655)
Contributed by [@&#8203;keita-hino](https://togithub.com/keita-hino)

- Add
[nursery/noUnknownUnit](https://biomejs.dev/linter/rules/no-unknwon-unit).
[#&#8203;2535](https://togithub.com/biomejs/biome/issues/2535)
Contributed by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnmatchableAnbSelector](https://biomejs.dev/linter/rules/no-unmatchable-anb-selector).
[#&#8203;2706](https://togithub.com/biomejs/biome/issues/2706)
Contributed by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/useGenericFontNames](https://biomejs.dev/linter/rules/use-generic-font-names).
[#&#8203;2573](https://togithub.com/biomejs/biome/pull/2573) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noYodaExpression](https://biomejs.dev/linter/rules/no-yoda-expression/).
Contributed by [@&#8203;michellocana](https://togithub.com/michellocana)

- Add
[nursery/noUnusedFunctionParameters](https://biomejs.dev/linter/rules/no-unused-function-parameters/)
Contributed by [@&#8203;printfn](https://togithub.com/printfn)

##### Enhancements

- Add a code action for
[noConfusingVoidType](https://biomejs.dev/linter/rules/no-confusing-void-type/)
and improve the diagnostics.

The rule now suggests using `undefined` instead of `void` in confusing
places.
    The diagnosis is also clearer.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Improve code action for
[nursery/noUselessUndefinedInitialization](https://biomejs.dev/linter/rules/no-useless-undefined-initialization/)
to handle comments.

The rule now places inline comments after the declaration statement,
instead of removing them.
    The code action is now safe to apply.

    Contributed by [@&#8203;lutaok](https://togithub.com/lutaok)

- Make
[useExhaustiveDependencies](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/)
report duplicate dependencies. Contributed by
[@&#8203;tunamaguro](https://togithub.com/tunamaguro)

- Rename `noEvolvingAny` into `noEvolvingTypes`
([#&#8203;48](https://togithub.com/biomejs/website/issues/48)).
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

##### Bug fixes

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
and
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports)
now correctly handle import namespaces
([#&#8203;2796](https://togithub.com/biomejs/biome/issues/2796)).

    Previously, Biome bound unqualified type to import namespaces.
Import namespaces can only be used as qualified names in a type
(ambient) context.

    ```ts
    // Unused import
    import * as Ns1 from "";
    // This doesn't reference the import namespace `Ns1`
    type T1 = Ns1; // Undeclared variable `Ns1`

    // Unused import
    import type * as Ns2 from "";
    // This doesn't reference the import namespace `Ns2`
    type T2 = Ns2; // Undeclared variable `Ns2`

    import type * as Ns3 from "";
// This references the import namespace because it is a qualified name.
    type T3 = Ns3.Inner;
    // This also references the import namespace.
    export type { Ns3 }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now correctly handle ambient computed member names
([#&#8203;2975](https://togithub.com/biomejs/biome/issues/2975)).

A constant can be imported as a type and used in a computed member name
of a member signature.
Previously, Biome was unable to bind the value imported as a type to the
computed member name.

    ```ts
    import type { NAME } from "./constants.js";
    type X = { [NAME]: number };
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now ignores `this` in JSX components
([#&#8203;2636](https://togithub.com/biomejs/biome/issues/2636)).

    The rule no longer reports `this` as undeclared in following code.

    ```jsx
    import { Component } from 'react';

    export class MyComponent extends Component {
      render() {
        return <this.foo />
      }
    }
    ```

Contributed by [@&#8203;printfn](https://togithub.com/printfn) and
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- `useJsxKeyInIterable` now handles more cases involving fragments. See
the snippets below. Contributed by
[@&#8203;dyc3](https://togithub.com/dyc3)

```jsx
// valid
[].map((item) => {
	return <>{item.condition ? <div key={item.id} /> : <div key={item.id}>foo</div>}</>;
});

// invalid
[].map((item) => {
	return <>{item.condition ? <div /> : <div>foo</div>}</>;
});
```

- `noExcessiveNestedTestSuites` no longer erroneously alerts on
`describe` calls that are not invoking the global `describe` function.
[#&#8203;2599](https://togithub.com/biomejs/biome/issues/2599)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

```js
// now valid
z.object({})
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('');
```

- `noEmptyBlockStatements` no longer reports empty constructors using
typescript parameter properties.
[#&#8203;3005](https://togithub.com/biomejs/biome/issues/3005)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

- `noEmptyBlockStatements` no longer reports empty private or protected
constructors. Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

-
[noExportsInTest](https://biomejs.dev/linter/rules/no-exports-in-test/)
rule no longer treats files with in-source testing as test files
[biomejs/biome#2859.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)

-
[useSortedClasses](https://biomejs.dev/linter/rules/use-sorted-classes/)
now keeps leading and trailing spaces when applying the code action
inside template literals:

        i Unsafe fix: Sort the classes.

          1 1 │   <>
          2   │ - → <div·class={`${variable}·px-2·foo·p-4·bar`}/>
            2 │ + → <div·class={`${variable}·foo·bar·p-4·px-2`}/>
          3 3 │   	<div class={`px-2 foo p-4 bar ${variable}`}/>
          4 4 │   </>

-
[noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/)
is correctly triggered when running `biome ci`. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/)
no longer panics when a certain combination of characters is typed.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
no logger alerts on `arguments` object in a function scope. Contributed
by [@&#8203;ah-yu](https://togithub.com/ah-yu)

##### Parser

##### Enhancements

- `lang="tsx"` is now supported in Vue Single File Components.
[#&#8203;2765](https://togithub.com/biomejs/biome/issues/2765)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Bug fixes

- The `const` modifier for type parameters is now accepted for
TypeScript `new` signatures
([#&#8203;2825](https://togithub.com/biomejs/biome/issues/2825)).

    The following code is now correctly parsed:

    ```ts
    interface I {
      new<const T>(x: T): T
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   Some invalid TypeScript syntax caused the Biome parser to crash.

The following invalid syntax no longer causes the Biome parser to crash:

    ```ts
    declare using x: null;
    declare qwait using x: null;
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/ariakit/ariakit).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to Johannes-Andersen/Johannes that referenced this issue Jun 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.7.3` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.7.3/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.8.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#180-2024-06-04)

[Compare
Source](https://togithub.com/biomejs/biome/compare/b9f90b7ee63506a1995bc29f4e389efec25a1525...378c05edd47608a1b8cba725564c807b2e772bd6)

##### Analyzer

##### New features

- Allow suppression comments to suppress individual instances of rules.
This is
used for the lint rule `useExhaustiveDependencies`, which is now able to
suppress specific dependencies. Fixes
[#&#8203;2509](https://togithub.com/biomejs/biome/issues/2509).
Contributed by [@&#8203;arendjr](https://togithub.com/arendjr)

##### Enhancements

- Assume `Astro` object is always a global when processing `.astro`
files. Contributed by [@&#8203;minht11](https://togithub.com/minht11)
- Assume Vue compiler macros are globals when processing `.vue` files.
([#&#8203;2771](https://togithub.com/biomejs/biome/pull/2771))
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### CLI

##### New features

- New `clean` command. Use this new command to clean after the
`biome-logs` directory, and remove all the log files.

    ```shell
    biome clean
    ```

- Add two new options `--only` and `--skip` to the command `biome lint`
([#&#8203;58](https://togithub.com/biomejs/biome/issues/58)).

    The `--only` option allows you to run a given rule or rule group,
For example, the following command runs only the
`style/useNamingConvention` and `style/noInferrableTypes` rules.
If the rule is disabled in the configuration, then its severity level is
set to `error` for a recommended rule or `warn` otherwise.

    ```shell
biome lint --only=style/useNamingConvention
--only=style/noInferrableTypes
    ```

Passing a group does not change the severity level of the rules in the
group.
    All the disabled rules in the group will remain disabled.
To ensure that the group is run, the `recommended` field of the group is
enabled.
The `nursery` group cannot be passed, as no rules are enabled by default
in the nursery group.

The `--skip` option allows you to skip the execution of a given group or
a given rule.
For example, the following command skips the `style` group and the
`suspicious/noExplicitAny` rule.

    ```shell
    biome lint --skip=style --skip=suspicious/noExplicitAny
    ```

You can also use `--only` and `--skip` together. `--skip` oevrrides
`--only`.
The following command executes only the rules from the `style` group,
but the `style/useNamingConvention` rule.

    ```shell
    biome lint --only=style --skip=style/useNamingConvention
    ```

These options are compatible with other options such as `--write`
(previously `--apply`), and `--reporter`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add new command `biome clean`. Use this command to purge all the logs
emitted by the Biome daemon. This command is really useful, because the
Biome daemon tends
log many files and contents during its lifecycle. This means that if
your editor is open for hours (or even days), the `biome-logs` folder
could become quite heavy. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add support for formatting and linting CSS files from the CLI. These
operations are **opt-in** for the time being.

If you don't have a configuration file, you can enable these features
with `--css-formatter-enabled` and `--css-linter-enabled`:

    ```shell
biome check --css-formatter-enabled=true --css-linter-enabled=true ./
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new CLI options to control the CSS formatting. Check the [CLI
reference page](https://biomejs.dev/reference/cli/) for more details.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new options `--write`, `--fix` (alias of `--write`) and `--unsafe`
to the command `biome lint` and `biome check`.
Add a new option `--fix` (alias of `--write`) to the command `biome
format` and `biome migrate`.

    ```shell
    biome <lint|check> --<write|fix> [--unsafe]
    biome format --<write|fix>
    biome migrate --<write|fix>
    ```

The `biome <lint|check> --<write|fix>` has the same behavior as `biome
<lint|check> --apply`.
The `biome <lint|check> --<write|fix> --unsafe` has the same behavior as
`biome <lint|check> --apply-unsafe`.
The `biome format --fix` has the same behavior as `biome format
--write`.
The `biome migrate --fix` has the same behavior as `biome migrate
--write`.

This change allows these commands to write modifications in the same
options.
With this change, the `--apply` and `--apply-unsafe` options are
deprecated.

    Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

##### Enhancements

- Biome now executes commands (lint, format, check and ci) on the
working directory by default.
[#&#8203;2266](https://togithub.com/biomejs/biome/issues/2266)
Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

    ```diff
    - biome check .
    + biome check    # You can run the command without the path
    ```

- `biome migrate eslint` now tries to convert ESLint ignore patterns
into Biome ignore patterns.

ESLint uses [gitignore
patterns](https://git-scm.com/docs/gitignore#\_pattern_format).
Biome now tries to convert these patterns into Biome ignore patterns.

For example, the gitignore pattern `/src` is a relative path to the file
in which it appears.
    Biome now recognizes this and translates this pattern to `./src`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- `biome migrate eslint` now supports the `eslintIgnore` field in
`package.json`.

ESLint allows the use of `package.json` as an ESLint configuration file.
    ESLint supports two fields: `eslintConfig` and `eslintIgnore`.
    Biome only supported the former. It now supports both.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   `biome migrate eslint` now propagates NodeJS errors to the user.

This will help users to identify why Biome is unable to load some ESLint
configurations.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add a new `--reporter` called `summary`. This reporter will print
diagnostics in a different way, based on the tools (formatter, linter,
etc.) that are executed.
Import sorting and formatter shows the name of the files that require
formatting. Instead, the linter will group the number of rules triggered
and the number of errors/warnings:

Formatter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to be formatted:
        main.ts
        index.ts

Organize Imports
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to have their imports sorted:
        main.ts
        index.ts

Analyzer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        Some analyzer rules were triggered

Rule Name Diagnostics
lint/suspicious/noImplicitAnyLet 12 (12 error(s), 0 warning(s), 0
info(s))
lint/suspicious/noDoubleEquals 8 (8 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noRedeclare 12 (12 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noDebugger 20 (20 error(s), 0 warning(s), 0 info(s))

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- `biome ci` now enforces printing the output using colours. If you were
previously using `--colors=force`, you can remove it because it's
automatically set. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `github`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

::error
title=lint/suspicious/noDoubleEquals,file=main.ts,line=4,endLine=4,col=3,endColumn=5::Use
=== instead of ==
::error
title=lint/suspicious/noDebugger,file=main.ts,line=6,endLine=6,col=1,endColumn=9::This
is an unexpected use of the debugger statement.
::error
title=lint/nursery/noEvolvingAny,file=main.ts,line=8,endLine=8,col=5,endColumn=6::This
variable's type is not allowed to evolve implicitly, leading to
potential any types.

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `junit`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Biome" tests="16" failures="16" errors="20"
time="<TIME>">
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDoubleEquals" line="4"
column="3">
<failure message="Use === instead of ==. == is only allowed when
comparing against `null`">line 3, col 2, Use === instead of ==. == is
only allowed when comparing against `null`</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDebugger" line="6"
column="1">
<failure message="This is an unexpected use of the debugger
statement.">line 5, col 0, This is an unexpected use of the debugger
statement.</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.nursery.noEvolvingAny" line="8"
column="5">
<failure message="This variable&apos;s type is not allowed to evolve
implicitly, leading to potential any types.">line 7, col 4, This
variable&apos;s type is not allowed to evolve implicitly, leading to
potential any types.</failure>
          </testcase>
      </testsuite>
    </testsuites>
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fix [#&#8203;3024](https://togithub.com/biomejs/biome/issues/3024),
where running `biome init` would create `biome.json` even if
`biome.jsonc` already exists. Contributed by
[@&#8203;minht11](https://togithub.com/minht11)

##### Configuration

##### New features

- Add an rule option `fix` to override the code fix kind of a rule
([#&#8203;2882](https://togithub.com/biomejs/biome/issues/2882)).

    A rule can provide a safe or an **unsafe** code **action**.
You can now tune the kind of code actions thanks to the `fix` option.
    This rule option takes a value among:

    -   `none`: the rule no longer emits code actions.
    -   `safe`: the rule emits safe code action.
    -   `unsafe`: the rule emits unsafe code action.

The following configuration disables the code actions of
`noUnusedVariables`, makes the emitted code actions of `style/useConst`
and `style/useTemplate` unsafe and safe respectively.

    ```json
    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "level": "error",
              "fix": "none"
            },
            "style": {
              "useConst": {
                "level": "warn",
                "fix": "unsafe"
              },
              "useTemplate": {
                "level": "warn",
                "fix": "safe"
              }
            }
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add option `javascript.linter.enabled` to control the linter for
JavaScript (and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `json.linter.enabled` to control the linter for JSON (and
its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.linter.enabled` to control the linter for CSS (and its
super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.formatter`, to control the formatter options for CSS
(and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- You can now change the severity of lint rules down to `"info"`. The
`"info"` severity doesn't emit error codes, and it isn't affected by
other options like `--error-on-warnings`:

    ```json
    {
      "linter": {
        "rules": {
          "suspicious": {
            "noDebugger": "info"
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Enhancements

- The `javascript.formatter.trailingComma` option is deprecated and
renamed to `javascript.formatter.trailingCommas`. The corresponding CLI
option `--trailing-comma` is also deprecated and renamed to
`--trailing-commas`. Details can be checked in
[#&#8203;2492](https://togithub.com/biomejs/biome/pull/2492).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Bug fixes

- Fix a bug where if the formatter was disabled at the language level,
it could be erroneously enabled by an
override that did not specify the formatter section
[#&#8203;2924](https://togithub.com/biomejs/biome/issues/2924).
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)
- Fix [#&#8203;2990](https://togithub.com/biomejs/biome/issues/2990),
now Biome doesn't add a trailing comma when formatting `biome.json`.
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Editors

##### New features

-   Add support for LSP Workspaces

##### Enhancements

- The LSP doesn't crash anymore when the configuration file contains
errors. If the configuration contains errors, Biome now shows a pop-up
to the user, and it will only parse files using the default
configuration.
Formatting and linting is disabled until the configuration file is
fixed. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fixes [#&#8203;2781](https://togithub.com/biomejs/biome/issues/2781),
by correctly computing the configuration to apply to a specific file.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Formatter

##### Bug fixes

- Fix [#&#8203;2470](https://togithub.com/biomejs/biome/issues/2470) by
avoid introducing linebreaks in single line string interpolations.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)
- Resolve deadlocks by narrowing the scope of locks. Contributed by
[@&#8203;mechairoi](https://togithub.com/mechairoi)
- Fix [#&#8203;2782](https://togithub.com/biomejs/biome/issues/2782) by
computing the enabled rules by taking the override settings into
consideration. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)
- Fix
\[biomejs/biome#2877]
by correctly handling line terminators in JSX string. Contributed by
[@&#8203;ah-yu](https://togithub.com/ah-yu)

##### JavaScript APIs

##### Linter

##### Promoted rules

New rules are incubated in the nursery group. Once stable, we promote
them to a stable group. The following rules are promoted:

-
[useImportRestrictions](https://biomejs.dev/linter/rules/use-import-restrictions/)
- [noNodejsModules](https://biomejs.dev/linter/rules/no-nodejs-modules/)
-
[useArrayLiterals](https://biomejs.dev/linter/rules/use-array-literals/)
-
[noConstantMathMinMaxClamp](https://biomejs.dev/linter/rules/no-constant-math-min-max-clamp/)
-
[noFlatMapIdentity](https://biomejs.dev/linter/rules/no-flat-map-identity/)

##### New features

- Add
[nursery/useDateNow](https://biomejs.dev/linter/rules/use-date-now/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useErrorMessage](https://biomejs.dev/linter/rules/use_error_message/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowOnlyError](https://biomejs.dev/linter/rules/use_throw_only_error/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useImportExtensions](https://biomejs.dev/linter/rules/use-import-extensions/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

-
[useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/)
now supports an option to enforce custom conventions
([#&#8203;1900](https://togithub.com/biomejs/biome/issues/1900)).

For example, you can enforce the use of a prefix for private class
members:

    ```json
    {
    	"linter": {
    		"rules": {
    			"style": {
    				"useNamingConvention": {
    					"level": "error",
    					"options": {
    						"conventions": [
    							{
    								"selector": {
    									"kind": "classMember",
    									"modifiers": ["private"]
    								},
    								"match": "_(.*)",
                    "formats": ["camelCase"]
    							}
    						]
    					}
    				}
    			}
    		}
    	}
    }
    ```

Please, find more details in the [rule
documentation](https://biomejs.dev/linter/rules/use-naming-convention/#options).

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add
[nursery/useNumberToFixedDigitsArgument](https://biomejs.dev/linter/rules/use-number-to-fixed-digits-argument/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowNewError](https://biomejs.dev/linter/rules/use-throw-new-error/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useTopLevelRegex](https://biomejs.dev/linter/rules/use-top-level-regex),
which enforces defining regular expressions at the top level of a
module. [#&#8203;2148](https://togithub.com/biomejs/biome/issues/2148)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3).

- Add
[nursery/noCssEmptyBlock](https://biomejs.dev/linter/rules/no-css-empty-block).
[#&#8203;2513](https://togithub.com/biomejs/biome/pull/2513) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateAtImportRules](https://biomejs.dev/linter/rules/no-duplicate-at-import-rules).
[#&#8203;2658](https://togithub.com/biomejs/biome/pull/2658) Contributed
by [@&#8203;DerTimonius](https://togithub.com/DerTimonius)

- Add
[nursery/noDuplicateFontNames](https://biomejs.dev/linter/rules/no-duplicate-font-names).
[#&#8203;2308](https://togithub.com/biomejs/biome/pull/2308) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateSelectorsKeyframeBlock](https://biomejs.dev/linter/rules/no-duplicate-selectors-keyframe-block).
[#&#8203;2534](https://togithub.com/biomejs/biome/pull/2534) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noImportantInKeyframe](https://biomejs.dev/linter/rules/no-important-in-keyframe).
[#&#8203;2542](https://togithub.com/biomejs/biome/pull/2542) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noInvalidPositionAtImportRule](https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule).
[#&#8203;2717](https://togithub.com/biomejs/biome/issues/2717)
Contributed by [@&#8203;t-shiratori](https://togithub.com/t-shiratori)

- Add
[nursery/noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function).
[#&#8203;2570](https://togithub.com/biomejs/biome/pull/2570) Contributed
by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnknownMediaFeatureName](https://biomejs.dev/linter/rules/no-unknown-media-feature-name).
[#&#8203;2751](https://togithub.com/biomejs/biome/issues/2751)
Contributed by
[@&#8203;Kazuhiro-Mimaki](https://togithub.com/Kazuhiro-Mimaki)

- Add
[nursery/noUnknownProperty](https://biomejs.dev/linter/rules/no-unknown-property).
[#&#8203;2755](https://togithub.com/biomejs/biome/pull/2755) Contributed
by [@&#8203;chansuke](https://togithub.com/chansuke)

- Add
[nursery/noUnknownSelectorPseudoElement](https://biomejs.dev/linter/rules/no-unknown-selector-pseudo-element).
[#&#8203;2655](https://togithub.com/biomejs/biome/issues/2655)
Contributed by [@&#8203;keita-hino](https://togithub.com/keita-hino)

- Add
[nursery/noUnknownUnit](https://biomejs.dev/linter/rules/no-unknwon-unit).
[#&#8203;2535](https://togithub.com/biomejs/biome/issues/2535)
Contributed by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnmatchableAnbSelector](https://biomejs.dev/linter/rules/no-unmatchable-anb-selector).
[#&#8203;2706](https://togithub.com/biomejs/biome/issues/2706)
Contributed by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/useGenericFontNames](https://biomejs.dev/linter/rules/use-generic-font-names).
[#&#8203;2573](https://togithub.com/biomejs/biome/pull/2573) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noYodaExpression](https://biomejs.dev/linter/rules/no-yoda-expression/).
Contributed by [@&#8203;michellocana](https://togithub.com/michellocana)

- Add
[nursery/noUnusedFunctionParameters](https://biomejs.dev/linter/rules/no-unused-function-parameters/)
Contributed by [@&#8203;printfn](https://togithub.com/printfn)

##### Enhancements

- Add a code action for
[noConfusingVoidType](https://biomejs.dev/linter/rules/no-confusing-void-type/)
and improve the diagnostics.

The rule now suggests using `undefined` instead of `void` in confusing
places.
    The diagnosis is also clearer.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Improve code action for
[nursery/noUselessUndefinedInitialization](https://biomejs.dev/linter/rules/no-useless-undefined-initialization/)
to handle comments.

The rule now places inline comments after the declaration statement,
instead of removing them.
    The code action is now safe to apply.

    Contributed by [@&#8203;lutaok](https://togithub.com/lutaok)

- Make
[useExhaustiveDependencies](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/)
report duplicate dependencies. Contributed by
[@&#8203;tunamaguro](https://togithub.com/tunamaguro)

- Rename `noEvolvingAny` into `noEvolvingTypes`
([#&#8203;48](https://togithub.com/biomejs/website/issues/48)).
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

##### Bug fixes

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
and
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports)
now correctly handle import namespaces
([#&#8203;2796](https://togithub.com/biomejs/biome/issues/2796)).

    Previously, Biome bound unqualified type to import namespaces.
Import namespaces can only be used as qualified names in a type
(ambient) context.

    ```ts
    // Unused import
    import * as Ns1 from "";
    // This doesn't reference the import namespace `Ns1`
    type T1 = Ns1; // Undeclared variable `Ns1`

    // Unused import
    import type * as Ns2 from "";
    // This doesn't reference the import namespace `Ns2`
    type T2 = Ns2; // Undeclared variable `Ns2`

    import type * as Ns3 from "";
// This references the import namespace because it is a qualified name.
    type T3 = Ns3.Inner;
    // This also references the import namespace.
    export type { Ns3 }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now correctly handle ambient computed member names
([#&#8203;2975](https://togithub.com/biomejs/biome/issues/2975)).

A constant can be imported as a type and used in a computed member name
of a member signature.
Previously, Biome was unable to bind the value imported as a type to the
computed member name.

    ```ts
    import type { NAME } from "./constants.js";
    type X = { [NAME]: number };
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now ignores `this` in JSX components
([#&#8203;2636](https://togithub.com/biomejs/biome/issues/2636)).

    The rule no longer reports `this` as undeclared in following code.

    ```jsx
    import { Component } from 'react';

    export class MyComponent extends Component {
      render() {
        return <this.foo />
      }
    }
    ```

Contributed by [@&#8203;printfn](https://togithub.com/printfn) and
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- `useJsxKeyInIterable` now handles more cases involving fragments. See
the snippets below. Contributed by
[@&#8203;dyc3](https://togithub.com/dyc3)

```jsx
// valid
[].map((item) => {
	return <>{item.condition ? <div key={item.id} /> : <div key={item.id}>foo</div>}</>;
});

// invalid
[].map((item) => {
	return <>{item.condition ? <div /> : <div>foo</div>}</>;
});
```

- `noExcessiveNestedTestSuites` no longer erroneously alerts on
`describe` calls that are not invoking the global `describe` function.
[#&#8203;2599](https://togithub.com/biomejs/biome/issues/2599)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

```js
// now valid
z.object({})
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('');
```

- `noEmptyBlockStatements` no longer reports empty constructors using
typescript parameter properties.
[#&#8203;3005](https://togithub.com/biomejs/biome/issues/3005)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

- `noEmptyBlockStatements` no longer reports empty private or protected
constructors. Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

-
[noExportsInTest](https://biomejs.dev/linter/rules/no-exports-in-test/)
rule no longer treats files with in-source testing as test files
[biomejs/biome#2859.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)

-
[useSortedClasses](https://biomejs.dev/linter/rules/use-sorted-classes/)
now keeps leading and trailing spaces when applying the code action
inside template literals:

        i Unsafe fix: Sort the classes.

          1 1 │   <>
          2   │ - → <div·class={`${variable}·px-2·foo·p-4·bar`}/>
            2 │ + → <div·class={`${variable}·foo·bar·p-4·px-2`}/>
          3 3 │   	<div class={`px-2 foo p-4 bar ${variable}`}/>
          4 4 │   </>

-
[noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/)
is correctly triggered when running `biome ci`. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/)
no longer panics when a certain combination of characters is typed.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
no logger alerts on `arguments` object in a function scope. Contributed
by [@&#8203;ah-yu](https://togithub.com/ah-yu)

##### Parser

##### Enhancements

- `lang="tsx"` is now supported in Vue Single File Components.
[#&#8203;2765](https://togithub.com/biomejs/biome/issues/2765)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Bug fixes

- The `const` modifier for type parameters is now accepted for
TypeScript `new` signatures
([#&#8203;2825](https://togithub.com/biomejs/biome/issues/2825)).

    The following code is now correctly parsed:

    ```ts
    interface I {
      new<const T>(x: T): T
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   Some invalid TypeScript syntax caused the Biome parser to crash.

The following invalid syntax no longer causes the Biome parser to crash:

    ```ts
    declare using x: null;
    declare qwait using x: null;
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Johannes-Andersen/Johannes).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to Johannes-Andersen/partall that referenced this issue Jun 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.7.3` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.7.3/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.8.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#180-2024-06-04)

[Compare
Source](https://togithub.com/biomejs/biome/compare/b9f90b7ee63506a1995bc29f4e389efec25a1525...378c05edd47608a1b8cba725564c807b2e772bd6)

##### Analyzer

##### New features

- Allow suppression comments to suppress individual instances of rules.
This is
used for the lint rule `useExhaustiveDependencies`, which is now able to
suppress specific dependencies. Fixes
[#&#8203;2509](https://togithub.com/biomejs/biome/issues/2509).
Contributed by [@&#8203;arendjr](https://togithub.com/arendjr)

##### Enhancements

- Assume `Astro` object is always a global when processing `.astro`
files. Contributed by [@&#8203;minht11](https://togithub.com/minht11)
- Assume Vue compiler macros are globals when processing `.vue` files.
([#&#8203;2771](https://togithub.com/biomejs/biome/pull/2771))
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### CLI

##### New features

- New `clean` command. Use this new command to clean after the
`biome-logs` directory, and remove all the log files.

    ```shell
    biome clean
    ```

- Add two new options `--only` and `--skip` to the command `biome lint`
([#&#8203;58](https://togithub.com/biomejs/biome/issues/58)).

    The `--only` option allows you to run a given rule or rule group,
For example, the following command runs only the
`style/useNamingConvention` and `style/noInferrableTypes` rules.
If the rule is disabled in the configuration, then its severity level is
set to `error` for a recommended rule or `warn` otherwise.

    ```shell
biome lint --only=style/useNamingConvention
--only=style/noInferrableTypes
    ```

Passing a group does not change the severity level of the rules in the
group.
    All the disabled rules in the group will remain disabled.
To ensure that the group is run, the `recommended` field of the group is
enabled.
The `nursery` group cannot be passed, as no rules are enabled by default
in the nursery group.

The `--skip` option allows you to skip the execution of a given group or
a given rule.
For example, the following command skips the `style` group and the
`suspicious/noExplicitAny` rule.

    ```shell
    biome lint --skip=style --skip=suspicious/noExplicitAny
    ```

You can also use `--only` and `--skip` together. `--skip` oevrrides
`--only`.
The following command executes only the rules from the `style` group,
but the `style/useNamingConvention` rule.

    ```shell
    biome lint --only=style --skip=style/useNamingConvention
    ```

These options are compatible with other options such as `--write`
(previously `--apply`), and `--reporter`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add new command `biome clean`. Use this command to purge all the logs
emitted by the Biome daemon. This command is really useful, because the
Biome daemon tends
log many files and contents during its lifecycle. This means that if
your editor is open for hours (or even days), the `biome-logs` folder
could become quite heavy. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add support for formatting and linting CSS files from the CLI. These
operations are **opt-in** for the time being.

If you don't have a configuration file, you can enable these features
with `--css-formatter-enabled` and `--css-linter-enabled`:

    ```shell
biome check --css-formatter-enabled=true --css-linter-enabled=true ./
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new CLI options to control the CSS formatting. Check the [CLI
reference page](https://biomejs.dev/reference/cli/) for more details.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new options `--write`, `--fix` (alias of `--write`) and `--unsafe`
to the command `biome lint` and `biome check`.
Add a new option `--fix` (alias of `--write`) to the command `biome
format` and `biome migrate`.

    ```shell
    biome <lint|check> --<write|fix> [--unsafe]
    biome format --<write|fix>
    biome migrate --<write|fix>
    ```

The `biome <lint|check> --<write|fix>` has the same behavior as `biome
<lint|check> --apply`.
The `biome <lint|check> --<write|fix> --unsafe` has the same behavior as
`biome <lint|check> --apply-unsafe`.
The `biome format --fix` has the same behavior as `biome format
--write`.
The `biome migrate --fix` has the same behavior as `biome migrate
--write`.

This change allows these commands to write modifications in the same
options.
With this change, the `--apply` and `--apply-unsafe` options are
deprecated.

    Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

##### Enhancements

- Biome now executes commands (lint, format, check and ci) on the
working directory by default.
[#&#8203;2266](https://togithub.com/biomejs/biome/issues/2266)
Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

    ```diff
    - biome check .
    + biome check    # You can run the command without the path
    ```

- `biome migrate eslint` now tries to convert ESLint ignore patterns
into Biome ignore patterns.

ESLint uses [gitignore
patterns](https://git-scm.com/docs/gitignore#\_pattern_format).
Biome now tries to convert these patterns into Biome ignore patterns.

For example, the gitignore pattern `/src` is a relative path to the file
in which it appears.
    Biome now recognizes this and translates this pattern to `./src`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- `biome migrate eslint` now supports the `eslintIgnore` field in
`package.json`.

ESLint allows the use of `package.json` as an ESLint configuration file.
    ESLint supports two fields: `eslintConfig` and `eslintIgnore`.
    Biome only supported the former. It now supports both.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   `biome migrate eslint` now propagates NodeJS errors to the user.

This will help users to identify why Biome is unable to load some ESLint
configurations.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add a new `--reporter` called `summary`. This reporter will print
diagnostics in a different way, based on the tools (formatter, linter,
etc.) that are executed.
Import sorting and formatter shows the name of the files that require
formatting. Instead, the linter will group the number of rules triggered
and the number of errors/warnings:

Formatter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to be formatted:
        main.ts
        index.ts

Organize Imports
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to have their imports sorted:
        main.ts
        index.ts

Analyzer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        Some analyzer rules were triggered

Rule Name Diagnostics
lint/suspicious/noImplicitAnyLet 12 (12 error(s), 0 warning(s), 0
info(s))
lint/suspicious/noDoubleEquals 8 (8 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noRedeclare 12 (12 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noDebugger 20 (20 error(s), 0 warning(s), 0 info(s))

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- `biome ci` now enforces printing the output using colours. If you were
previously using `--colors=force`, you can remove it because it's
automatically set. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `github`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

::error
title=lint/suspicious/noDoubleEquals,file=main.ts,line=4,endLine=4,col=3,endColumn=5::Use
=== instead of ==
::error
title=lint/suspicious/noDebugger,file=main.ts,line=6,endLine=6,col=1,endColumn=9::This
is an unexpected use of the debugger statement.
::error
title=lint/nursery/noEvolvingAny,file=main.ts,line=8,endLine=8,col=5,endColumn=6::This
variable's type is not allowed to evolve implicitly, leading to
potential any types.

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `junit`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Biome" tests="16" failures="16" errors="20"
time="<TIME>">
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDoubleEquals" line="4"
column="3">
<failure message="Use === instead of ==. == is only allowed when
comparing against `null`">line 3, col 2, Use === instead of ==. == is
only allowed when comparing against `null`</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDebugger" line="6"
column="1">
<failure message="This is an unexpected use of the debugger
statement.">line 5, col 0, This is an unexpected use of the debugger
statement.</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.nursery.noEvolvingAny" line="8"
column="5">
<failure message="This variable&apos;s type is not allowed to evolve
implicitly, leading to potential any types.">line 7, col 4, This
variable&apos;s type is not allowed to evolve implicitly, leading to
potential any types.</failure>
          </testcase>
      </testsuite>
    </testsuites>
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fix [#&#8203;3024](https://togithub.com/biomejs/biome/issues/3024),
where running `biome init` would create `biome.json` even if
`biome.jsonc` already exists. Contributed by
[@&#8203;minht11](https://togithub.com/minht11)

##### Configuration

##### New features

- Add an rule option `fix` to override the code fix kind of a rule
([#&#8203;2882](https://togithub.com/biomejs/biome/issues/2882)).

    A rule can provide a safe or an **unsafe** code **action**.
You can now tune the kind of code actions thanks to the `fix` option.
    This rule option takes a value among:

    -   `none`: the rule no longer emits code actions.
    -   `safe`: the rule emits safe code action.
    -   `unsafe`: the rule emits unsafe code action.

The following configuration disables the code actions of
`noUnusedVariables`, makes the emitted code actions of `style/useConst`
and `style/useTemplate` unsafe and safe respectively.

    ```json
    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "level": "error",
              "fix": "none"
            },
            "style": {
              "useConst": {
                "level": "warn",
                "fix": "unsafe"
              },
              "useTemplate": {
                "level": "warn",
                "fix": "safe"
              }
            }
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add option `javascript.linter.enabled` to control the linter for
JavaScript (and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `json.linter.enabled` to control the linter for JSON (and
its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.linter.enabled` to control the linter for CSS (and its
super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.formatter`, to control the formatter options for CSS
(and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- You can now change the severity of lint rules down to `"info"`. The
`"info"` severity doesn't emit error codes, and it isn't affected by
other options like `--error-on-warnings`:

    ```json
    {
      "linter": {
        "rules": {
          "suspicious": {
            "noDebugger": "info"
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Enhancements

- The `javascript.formatter.trailingComma` option is deprecated and
renamed to `javascript.formatter.trailingCommas`. The corresponding CLI
option `--trailing-comma` is also deprecated and renamed to
`--trailing-commas`. Details can be checked in
[#&#8203;2492](https://togithub.com/biomejs/biome/pull/2492).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Bug fixes

- Fix a bug where if the formatter was disabled at the language level,
it could be erroneously enabled by an
override that did not specify the formatter section
[#&#8203;2924](https://togithub.com/biomejs/biome/issues/2924).
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)
- Fix [#&#8203;2990](https://togithub.com/biomejs/biome/issues/2990),
now Biome doesn't add a trailing comma when formatting `biome.json`.
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Editors

##### New features

-   Add support for LSP Workspaces

##### Enhancements

- The LSP doesn't crash anymore when the configuration file contains
errors. If the configuration contains errors, Biome now shows a pop-up
to the user, and it will only parse files using the default
configuration.
Formatting and linting is disabled until the configuration file is
fixed. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fixes [#&#8203;2781](https://togithub.com/biomejs/biome/issues/2781),
by correctly computing the configuration to apply to a specific file.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Formatter

##### Bug fixes

- Fix [#&#8203;2470](https://togithub.com/biomejs/biome/issues/2470) by
avoid introducing linebreaks in single line string interpolations.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)
- Resolve deadlocks by narrowing the scope of locks. Contributed by
[@&#8203;mechairoi](https://togithub.com/mechairoi)
- Fix [#&#8203;2782](https://togithub.com/biomejs/biome/issues/2782) by
computing the enabled rules by taking the override settings into
consideration. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)
- Fix
\[biomejs/biome#2877]
by correctly handling line terminators in JSX string. Contributed by
[@&#8203;ah-yu](https://togithub.com/ah-yu)

##### JavaScript APIs

##### Linter

##### Promoted rules

New rules are incubated in the nursery group. Once stable, we promote
them to a stable group. The following rules are promoted:

-
[useImportRestrictions](https://biomejs.dev/linter/rules/use-import-restrictions/)
- [noNodejsModules](https://biomejs.dev/linter/rules/no-nodejs-modules/)
-
[useArrayLiterals](https://biomejs.dev/linter/rules/use-array-literals/)
-
[noConstantMathMinMaxClamp](https://biomejs.dev/linter/rules/no-constant-math-min-max-clamp/)
-
[noFlatMapIdentity](https://biomejs.dev/linter/rules/no-flat-map-identity/)

##### New features

- Add
[nursery/useDateNow](https://biomejs.dev/linter/rules/use-date-now/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useErrorMessage](https://biomejs.dev/linter/rules/use_error_message/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowOnlyError](https://biomejs.dev/linter/rules/use_throw_only_error/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useImportExtensions](https://biomejs.dev/linter/rules/use-import-extensions/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

-
[useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/)
now supports an option to enforce custom conventions
([#&#8203;1900](https://togithub.com/biomejs/biome/issues/1900)).

For example, you can enforce the use of a prefix for private class
members:

    ```json
    {
    	"linter": {
    		"rules": {
    			"style": {
    				"useNamingConvention": {
    					"level": "error",
    					"options": {
    						"conventions": [
    							{
    								"selector": {
    									"kind": "classMember",
    									"modifiers": ["private"]
    								},
    								"match": "_(.*)",
                    "formats": ["camelCase"]
    							}
    						]
    					}
    				}
    			}
    		}
    	}
    }
    ```

Please, find more details in the [rule
documentation](https://biomejs.dev/linter/rules/use-naming-convention/#options).

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add
[nursery/useNumberToFixedDigitsArgument](https://biomejs.dev/linter/rules/use-number-to-fixed-digits-argument/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowNewError](https://biomejs.dev/linter/rules/use-throw-new-error/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useTopLevelRegex](https://biomejs.dev/linter/rules/use-top-level-regex),
which enforces defining regular expressions at the top level of a
module. [#&#8203;2148](https://togithub.com/biomejs/biome/issues/2148)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3).

- Add
[nursery/noCssEmptyBlock](https://biomejs.dev/linter/rules/no-css-empty-block).
[#&#8203;2513](https://togithub.com/biomejs/biome/pull/2513) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateAtImportRules](https://biomejs.dev/linter/rules/no-duplicate-at-import-rules).
[#&#8203;2658](https://togithub.com/biomejs/biome/pull/2658) Contributed
by [@&#8203;DerTimonius](https://togithub.com/DerTimonius)

- Add
[nursery/noDuplicateFontNames](https://biomejs.dev/linter/rules/no-duplicate-font-names).
[#&#8203;2308](https://togithub.com/biomejs/biome/pull/2308) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateSelectorsKeyframeBlock](https://biomejs.dev/linter/rules/no-duplicate-selectors-keyframe-block).
[#&#8203;2534](https://togithub.com/biomejs/biome/pull/2534) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noImportantInKeyframe](https://biomejs.dev/linter/rules/no-important-in-keyframe).
[#&#8203;2542](https://togithub.com/biomejs/biome/pull/2542) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noInvalidPositionAtImportRule](https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule).
[#&#8203;2717](https://togithub.com/biomejs/biome/issues/2717)
Contributed by [@&#8203;t-shiratori](https://togithub.com/t-shiratori)

- Add
[nursery/noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function).
[#&#8203;2570](https://togithub.com/biomejs/biome/pull/2570) Contributed
by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnknownMediaFeatureName](https://biomejs.dev/linter/rules/no-unknown-media-feature-name).
[#&#8203;2751](https://togithub.com/biomejs/biome/issues/2751)
Contributed by
[@&#8203;Kazuhiro-Mimaki](https://togithub.com/Kazuhiro-Mimaki)

- Add
[nursery/noUnknownProperty](https://biomejs.dev/linter/rules/no-unknown-property).
[#&#8203;2755](https://togithub.com/biomejs/biome/pull/2755) Contributed
by [@&#8203;chansuke](https://togithub.com/chansuke)

- Add
[nursery/noUnknownSelectorPseudoElement](https://biomejs.dev/linter/rules/no-unknown-selector-pseudo-element).
[#&#8203;2655](https://togithub.com/biomejs/biome/issues/2655)
Contributed by [@&#8203;keita-hino](https://togithub.com/keita-hino)

- Add
[nursery/noUnknownUnit](https://biomejs.dev/linter/rules/no-unknwon-unit).
[#&#8203;2535](https://togithub.com/biomejs/biome/issues/2535)
Contributed by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnmatchableAnbSelector](https://biomejs.dev/linter/rules/no-unmatchable-anb-selector).
[#&#8203;2706](https://togithub.com/biomejs/biome/issues/2706)
Contributed by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/useGenericFontNames](https://biomejs.dev/linter/rules/use-generic-font-names).
[#&#8203;2573](https://togithub.com/biomejs/biome/pull/2573) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noYodaExpression](https://biomejs.dev/linter/rules/no-yoda-expression/).
Contributed by [@&#8203;michellocana](https://togithub.com/michellocana)

- Add
[nursery/noUnusedFunctionParameters](https://biomejs.dev/linter/rules/no-unused-function-parameters/)
Contributed by [@&#8203;printfn](https://togithub.com/printfn)

##### Enhancements

- Add a code action for
[noConfusingVoidType](https://biomejs.dev/linter/rules/no-confusing-void-type/)
and improve the diagnostics.

The rule now suggests using `undefined` instead of `void` in confusing
places.
    The diagnosis is also clearer.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Improve code action for
[nursery/noUselessUndefinedInitialization](https://biomejs.dev/linter/rules/no-useless-undefined-initialization/)
to handle comments.

The rule now places inline comments after the declaration statement,
instead of removing them.
    The code action is now safe to apply.

    Contributed by [@&#8203;lutaok](https://togithub.com/lutaok)

- Make
[useExhaustiveDependencies](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/)
report duplicate dependencies. Contributed by
[@&#8203;tunamaguro](https://togithub.com/tunamaguro)

- Rename `noEvolvingAny` into `noEvolvingTypes`
([#&#8203;48](https://togithub.com/biomejs/website/issues/48)).
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

##### Bug fixes

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
and
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports)
now correctly handle import namespaces
([#&#8203;2796](https://togithub.com/biomejs/biome/issues/2796)).

    Previously, Biome bound unqualified type to import namespaces.
Import namespaces can only be used as qualified names in a type
(ambient) context.

    ```ts
    // Unused import
    import * as Ns1 from "";
    // This doesn't reference the import namespace `Ns1`
    type T1 = Ns1; // Undeclared variable `Ns1`

    // Unused import
    import type * as Ns2 from "";
    // This doesn't reference the import namespace `Ns2`
    type T2 = Ns2; // Undeclared variable `Ns2`

    import type * as Ns3 from "";
// This references the import namespace because it is a qualified name.
    type T3 = Ns3.Inner;
    // This also references the import namespace.
    export type { Ns3 }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now correctly handle ambient computed member names
([#&#8203;2975](https://togithub.com/biomejs/biome/issues/2975)).

A constant can be imported as a type and used in a computed member name
of a member signature.
Previously, Biome was unable to bind the value imported as a type to the
computed member name.

    ```ts
    import type { NAME } from "./constants.js";
    type X = { [NAME]: number };
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now ignores `this` in JSX components
([#&#8203;2636](https://togithub.com/biomejs/biome/issues/2636)).

    The rule no longer reports `this` as undeclared in following code.

    ```jsx
    import { Component } from 'react';

    export class MyComponent extends Component {
      render() {
        return <this.foo />
      }
    }
    ```

Contributed by [@&#8203;printfn](https://togithub.com/printfn) and
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- `useJsxKeyInIterable` now handles more cases involving fragments. See
the snippets below. Contributed by
[@&#8203;dyc3](https://togithub.com/dyc3)

```jsx
// valid
[].map((item) => {
	return <>{item.condition ? <div key={item.id} /> : <div key={item.id}>foo</div>}</>;
});

// invalid
[].map((item) => {
	return <>{item.condition ? <div /> : <div>foo</div>}</>;
});
```

- `noExcessiveNestedTestSuites` no longer erroneously alerts on
`describe` calls that are not invoking the global `describe` function.
[#&#8203;2599](https://togithub.com/biomejs/biome/issues/2599)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

```js
// now valid
z.object({})
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('');
```

- `noEmptyBlockStatements` no longer reports empty constructors using
typescript parameter properties.
[#&#8203;3005](https://togithub.com/biomejs/biome/issues/3005)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

- `noEmptyBlockStatements` no longer reports empty private or protected
constructors. Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

-
[noExportsInTest](https://biomejs.dev/linter/rules/no-exports-in-test/)
rule no longer treats files with in-source testing as test files
[biomejs/biome#2859.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)

-
[useSortedClasses](https://biomejs.dev/linter/rules/use-sorted-classes/)
now keeps leading and trailing spaces when applying the code action
inside template literals:

        i Unsafe fix: Sort the classes.

          1 1 │   <>
          2   │ - → <div·class={`${variable}·px-2·foo·p-4·bar`}/>
            2 │ + → <div·class={`${variable}·foo·bar·p-4·px-2`}/>
          3 3 │   	<div class={`px-2 foo p-4 bar ${variable}`}/>
          4 4 │   </>

-
[noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/)
is correctly triggered when running `biome ci`. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/)
no longer panics when a certain combination of characters is typed.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
no logger alerts on `arguments` object in a function scope. Contributed
by [@&#8203;ah-yu](https://togithub.com/ah-yu)

##### Parser

##### Enhancements

- `lang="tsx"` is now supported in Vue Single File Components.
[#&#8203;2765](https://togithub.com/biomejs/biome/issues/2765)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Bug fixes

- The `const` modifier for type parameters is now accepted for
TypeScript `new` signatures
([#&#8203;2825](https://togithub.com/biomejs/biome/issues/2825)).

    The following code is now correctly parsed:

    ```ts
    interface I {
      new<const T>(x: T): T
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   Some invalid TypeScript syntax caused the Biome parser to crash.

The following invalid syntax no longer causes the Biome parser to crash:

    ```ts
    declare using x: null;
    declare qwait using x: null;
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Johannes-Andersen/partall).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
github-merge-queue bot pushed a commit to BSStudio/bss-web-graphql-backend that referenced this issue Jun 4, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.7.3` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.7.3/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.8.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#180-2024-06-04)

[Compare
Source](https://togithub.com/biomejs/biome/compare/b9f90b7ee63506a1995bc29f4e389efec25a1525...378c05edd47608a1b8cba725564c807b2e772bd6)

##### Analyzer

##### New features

- Allow suppression comments to suppress individual instances of rules.
This is
used for the lint rule `useExhaustiveDependencies`, which is now able to
suppress specific dependencies. Fixes
[#&#8203;2509](https://togithub.com/biomejs/biome/issues/2509).
Contributed by [@&#8203;arendjr](https://togithub.com/arendjr)

##### Enhancements

- Assume `Astro` object is always a global when processing `.astro`
files. Contributed by [@&#8203;minht11](https://togithub.com/minht11)
- Assume Vue compiler macros are globals when processing `.vue` files.
([#&#8203;2771](https://togithub.com/biomejs/biome/pull/2771))
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### CLI

##### New features

- New `clean` command. Use this new command to clean after the
`biome-logs` directory, and remove all the log files.

    ```shell
    biome clean
    ```

- Add two new options `--only` and `--skip` to the command `biome lint`
([#&#8203;58](https://togithub.com/biomejs/biome/issues/58)).

    The `--only` option allows you to run a given rule or rule group,
For example, the following command runs only the
`style/useNamingConvention` and `style/noInferrableTypes` rules.
If the rule is disabled in the configuration, then its severity level is
set to `error` for a recommended rule or `warn` otherwise.

    ```shell
biome lint --only=style/useNamingConvention
--only=style/noInferrableTypes
    ```

Passing a group does not change the severity level of the rules in the
group.
    All the disabled rules in the group will remain disabled.
To ensure that the group is run, the `recommended` field of the group is
enabled.
The `nursery` group cannot be passed, as no rules are enabled by default
in the nursery group.

The `--skip` option allows you to skip the execution of a given group or
a given rule.
For example, the following command skips the `style` group and the
`suspicious/noExplicitAny` rule.

    ```shell
    biome lint --skip=style --skip=suspicious/noExplicitAny
    ```

You can also use `--only` and `--skip` together. `--skip` oevrrides
`--only`.
The following command executes only the rules from the `style` group,
but the `style/useNamingConvention` rule.

    ```shell
    biome lint --only=style --skip=style/useNamingConvention
    ```

These options are compatible with other options such as `--write`
(previously `--apply`), and `--reporter`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add new command `biome clean`. Use this command to purge all the logs
emitted by the Biome daemon. This command is really useful, because the
Biome daemon tends
log many files and contents during its lifecycle. This means that if
your editor is open for hours (or even days), the `biome-logs` folder
could become quite heavy. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add support for formatting and linting CSS files from the CLI. These
operations are **opt-in** for the time being.

If you don't have a configuration file, you can enable these features
with `--css-formatter-enabled` and `--css-linter-enabled`:

    ```shell
biome check --css-formatter-enabled=true --css-linter-enabled=true ./
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new CLI options to control the CSS formatting. Check the [CLI
reference page](https://biomejs.dev/reference/cli/) for more details.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new options `--write`, `--fix` (alias of `--write`) and `--unsafe`
to the command `biome lint` and `biome check`.
Add a new option `--fix` (alias of `--write`) to the command `biome
format` and `biome migrate`.

    ```shell
    biome <lint|check> --<write|fix> [--unsafe]
    biome format --<write|fix>
    biome migrate --<write|fix>
    ```

The `biome <lint|check> --<write|fix>` has the same behavior as `biome
<lint|check> --apply`.
The `biome <lint|check> --<write|fix> --unsafe` has the same behavior as
`biome <lint|check> --apply-unsafe`.
The `biome format --fix` has the same behavior as `biome format
--write`.
The `biome migrate --fix` has the same behavior as `biome migrate
--write`.

This change allows these commands to write modifications in the same
options.
With this change, the `--apply` and `--apply-unsafe` options are
deprecated.

    Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

##### Enhancements

- Biome now executes commands (lint, format, check and ci) on the
working directory by default.
[#&#8203;2266](https://togithub.com/biomejs/biome/issues/2266)
Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

    ```diff
    - biome check .
    + biome check    # You can run the command without the path
    ```

- `biome migrate eslint` now tries to convert ESLint ignore patterns
into Biome ignore patterns.

ESLint uses [gitignore
patterns](https://git-scm.com/docs/gitignore#\_pattern_format).
Biome now tries to convert these patterns into Biome ignore patterns.

For example, the gitignore pattern `/src` is a relative path to the file
in which it appears.
    Biome now recognizes this and translates this pattern to `./src`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- `biome migrate eslint` now supports the `eslintIgnore` field in
`package.json`.

ESLint allows the use of `package.json` as an ESLint configuration file.
    ESLint supports two fields: `eslintConfig` and `eslintIgnore`.
    Biome only supported the former. It now supports both.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   `biome migrate eslint` now propagates NodeJS errors to the user.

This will help users to identify why Biome is unable to load some ESLint
configurations.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add a new `--reporter` called `summary`. This reporter will print
diagnostics in a different way, based on the tools (formatter, linter,
etc.) that are executed.
Import sorting and formatter shows the name of the files that require
formatting. Instead, the linter will group the number of rules triggered
and the number of errors/warnings:

Formatter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to be formatted:
        main.ts
        index.ts

Organize Imports
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to have their imports sorted:
        main.ts
        index.ts

Analyzer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        Some analyzer rules were triggered

Rule Name Diagnostics
lint/suspicious/noImplicitAnyLet 12 (12 error(s), 0 warning(s), 0
info(s))
lint/suspicious/noDoubleEquals 8 (8 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noRedeclare 12 (12 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noDebugger 20 (20 error(s), 0 warning(s), 0 info(s))

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- `biome ci` now enforces printing the output using colours. If you were
previously using `--colors=force`, you can remove it because it's
automatically set. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `github`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

::error
title=lint/suspicious/noDoubleEquals,file=main.ts,line=4,endLine=4,col=3,endColumn=5::Use
=== instead of ==
::error
title=lint/suspicious/noDebugger,file=main.ts,line=6,endLine=6,col=1,endColumn=9::This
is an unexpected use of the debugger statement.
::error
title=lint/nursery/noEvolvingAny,file=main.ts,line=8,endLine=8,col=5,endColumn=6::This
variable's type is not allowed to evolve implicitly, leading to
potential any types.

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `junit`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Biome" tests="16" failures="16" errors="20"
time="<TIME>">
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDoubleEquals" line="4"
column="3">
<failure message="Use === instead of ==. == is only allowed when
comparing against `null`">line 3, col 2, Use === instead of ==. == is
only allowed when comparing against `null`</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDebugger" line="6"
column="1">
<failure message="This is an unexpected use of the debugger
statement.">line 5, col 0, This is an unexpected use of the debugger
statement.</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.nursery.noEvolvingAny" line="8"
column="5">
<failure message="This variable&apos;s type is not allowed to evolve
implicitly, leading to potential any types.">line 7, col 4, This
variable&apos;s type is not allowed to evolve implicitly, leading to
potential any types.</failure>
          </testcase>
      </testsuite>
    </testsuites>
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fix [#&#8203;3024](https://togithub.com/biomejs/biome/issues/3024),
where running `biome init` would create `biome.json` even if
`biome.jsonc` already exists. Contributed by
[@&#8203;minht11](https://togithub.com/minht11)

##### Configuration

##### New features

- Add an rule option `fix` to override the code fix kind of a rule
([#&#8203;2882](https://togithub.com/biomejs/biome/issues/2882)).

    A rule can provide a safe or an **unsafe** code **action**.
You can now tune the kind of code actions thanks to the `fix` option.
    This rule option takes a value among:

    -   `none`: the rule no longer emits code actions.
    -   `safe`: the rule emits safe code action.
    -   `unsafe`: the rule emits unsafe code action.

The following configuration disables the code actions of
`noUnusedVariables`, makes the emitted code actions of `style/useConst`
and `style/useTemplate` unsafe and safe respectively.

    ```json
    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "level": "error",
              "fix": "none"
            },
            "style": {
              "useConst": {
                "level": "warn",
                "fix": "unsafe"
              },
              "useTemplate": {
                "level": "warn",
                "fix": "safe"
              }
            }
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add option `javascript.linter.enabled` to control the linter for
JavaScript (and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `json.linter.enabled` to control the linter for JSON (and
its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.linter.enabled` to control the linter for CSS (and its
super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.formatter`, to control the formatter options for CSS
(and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- You can now change the severity of lint rules down to `"info"`. The
`"info"` severity doesn't emit error codes, and it isn't affected by
other options like `--error-on-warnings`:

    ```json
    {
      "linter": {
        "rules": {
          "suspicious": {
            "noDebugger": "info"
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Enhancements

- The `javascript.formatter.trailingComma` option is deprecated and
renamed to `javascript.formatter.trailingCommas`. The corresponding CLI
option `--trailing-comma` is also deprecated and renamed to
`--trailing-commas`. Details can be checked in
[#&#8203;2492](https://togithub.com/biomejs/biome/pull/2492).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Bug fixes

- Fix a bug where if the formatter was disabled at the language level,
it could be erroneously enabled by an
override that did not specify the formatter section
[#&#8203;2924](https://togithub.com/biomejs/biome/issues/2924).
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)
- Fix [#&#8203;2990](https://togithub.com/biomejs/biome/issues/2990),
now Biome doesn't add a trailing comma when formatting `biome.json`.
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Editors

##### New features

-   Add support for LSP Workspaces

##### Enhancements

- The LSP doesn't crash anymore when the configuration file contains
errors. If the configuration contains errors, Biome now shows a pop-up
to the user, and it will only parse files using the default
configuration.
Formatting and linting is disabled until the configuration file is
fixed. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fixes [#&#8203;2781](https://togithub.com/biomejs/biome/issues/2781),
by correctly computing the configuration to apply to a specific file.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Formatter

##### Bug fixes

- Fix [#&#8203;2470](https://togithub.com/biomejs/biome/issues/2470) by
avoid introducing linebreaks in single line string interpolations.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)
- Resolve deadlocks by narrowing the scope of locks. Contributed by
[@&#8203;mechairoi](https://togithub.com/mechairoi)
- Fix [#&#8203;2782](https://togithub.com/biomejs/biome/issues/2782) by
computing the enabled rules by taking the override settings into
consideration. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)
- Fix
\[biomejs/biome#2877]
by correctly handling line terminators in JSX string. Contributed by
[@&#8203;ah-yu](https://togithub.com/ah-yu)

##### JavaScript APIs

##### Linter

##### Promoted rules

New rules are incubated in the nursery group. Once stable, we promote
them to a stable group. The following rules are promoted:

-
[useImportRestrictions](https://biomejs.dev/linter/rules/use-import-restrictions/)
- [noNodejsModules](https://biomejs.dev/linter/rules/no-nodejs-modules/)
-
[useArrayLiterals](https://biomejs.dev/linter/rules/use-array-literals/)
-
[noConstantMathMinMaxClamp](https://biomejs.dev/linter/rules/no-constant-math-min-max-clamp/)
-
[noFlatMapIdentity](https://biomejs.dev/linter/rules/no-flat-map-identity/)

##### New features

- Add
[nursery/useDateNow](https://biomejs.dev/linter/rules/use-date-now/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useErrorMessage](https://biomejs.dev/linter/rules/use_error_message/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowOnlyError](https://biomejs.dev/linter/rules/use_throw_only_error/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useImportExtensions](https://biomejs.dev/linter/rules/use-import-extensions/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

-
[useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/)
now supports an option to enforce custom conventions
([#&#8203;1900](https://togithub.com/biomejs/biome/issues/1900)).

For example, you can enforce the use of a prefix for private class
members:

    ```json
    {
    	"linter": {
    		"rules": {
    			"style": {
    				"useNamingConvention": {
    					"level": "error",
    					"options": {
    						"conventions": [
    							{
    								"selector": {
    									"kind": "classMember",
    									"modifiers": ["private"]
    								},
    								"match": "_(.*)",
                    "formats": ["camelCase"]
    							}
    						]
    					}
    				}
    			}
    		}
    	}
    }
    ```

Please, find more details in the [rule
documentation](https://biomejs.dev/linter/rules/use-naming-convention/#options).

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add
[nursery/useNumberToFixedDigitsArgument](https://biomejs.dev/linter/rules/use-number-to-fixed-digits-argument/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowNewError](https://biomejs.dev/linter/rules/use-throw-new-error/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useTopLevelRegex](https://biomejs.dev/linter/rules/use-top-level-regex),
which enforces defining regular expressions at the top level of a
module. [#&#8203;2148](https://togithub.com/biomejs/biome/issues/2148)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3).

- Add
[nursery/noCssEmptyBlock](https://biomejs.dev/linter/rules/no-css-empty-block).
[#&#8203;2513](https://togithub.com/biomejs/biome/pull/2513) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateAtImportRules](https://biomejs.dev/linter/rules/no-duplicate-at-import-rules).
[#&#8203;2658](https://togithub.com/biomejs/biome/pull/2658) Contributed
by [@&#8203;DerTimonius](https://togithub.com/DerTimonius)

- Add
[nursery/noDuplicateFontNames](https://biomejs.dev/linter/rules/no-duplicate-font-names).
[#&#8203;2308](https://togithub.com/biomejs/biome/pull/2308) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateSelectorsKeyframeBlock](https://biomejs.dev/linter/rules/no-duplicate-selectors-keyframe-block).
[#&#8203;2534](https://togithub.com/biomejs/biome/pull/2534) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noImportantInKeyframe](https://biomejs.dev/linter/rules/no-important-in-keyframe).
[#&#8203;2542](https://togithub.com/biomejs/biome/pull/2542) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noInvalidPositionAtImportRule](https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule).
[#&#8203;2717](https://togithub.com/biomejs/biome/issues/2717)
Contributed by [@&#8203;t-shiratori](https://togithub.com/t-shiratori)

- Add
[nursery/noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function).
[#&#8203;2570](https://togithub.com/biomejs/biome/pull/2570) Contributed
by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnknownMediaFeatureName](https://biomejs.dev/linter/rules/no-unknown-media-feature-name).
[#&#8203;2751](https://togithub.com/biomejs/biome/issues/2751)
Contributed by
[@&#8203;Kazuhiro-Mimaki](https://togithub.com/Kazuhiro-Mimaki)

- Add
[nursery/noUnknownProperty](https://biomejs.dev/linter/rules/no-unknown-property).
[#&#8203;2755](https://togithub.com/biomejs/biome/pull/2755) Contributed
by [@&#8203;chansuke](https://togithub.com/chansuke)

- Add
[nursery/noUnknownSelectorPseudoElement](https://biomejs.dev/linter/rules/no-unknown-selector-pseudo-element).
[#&#8203;2655](https://togithub.com/biomejs/biome/issues/2655)
Contributed by [@&#8203;keita-hino](https://togithub.com/keita-hino)

- Add
[nursery/noUnknownUnit](https://biomejs.dev/linter/rules/no-unknwon-unit).
[#&#8203;2535](https://togithub.com/biomejs/biome/issues/2535)
Contributed by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnmatchableAnbSelector](https://biomejs.dev/linter/rules/no-unmatchable-anb-selector).
[#&#8203;2706](https://togithub.com/biomejs/biome/issues/2706)
Contributed by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/useGenericFontNames](https://biomejs.dev/linter/rules/use-generic-font-names).
[#&#8203;2573](https://togithub.com/biomejs/biome/pull/2573) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noYodaExpression](https://biomejs.dev/linter/rules/no-yoda-expression/).
Contributed by [@&#8203;michellocana](https://togithub.com/michellocana)

- Add
[nursery/noUnusedFunctionParameters](https://biomejs.dev/linter/rules/no-unused-function-parameters/)
Contributed by [@&#8203;printfn](https://togithub.com/printfn)

##### Enhancements

- Add a code action for
[noConfusingVoidType](https://biomejs.dev/linter/rules/no-confusing-void-type/)
and improve the diagnostics.

The rule now suggests using `undefined` instead of `void` in confusing
places.
    The diagnosis is also clearer.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Improve code action for
[nursery/noUselessUndefinedInitialization](https://biomejs.dev/linter/rules/no-useless-undefined-initialization/)
to handle comments.

The rule now places inline comments after the declaration statement,
instead of removing them.
    The code action is now safe to apply.

    Contributed by [@&#8203;lutaok](https://togithub.com/lutaok)

- Make
[useExhaustiveDependencies](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/)
report duplicate dependencies. Contributed by
[@&#8203;tunamaguro](https://togithub.com/tunamaguro)

- Rename `noEvolvingAny` into `noEvolvingTypes`
([#&#8203;48](https://togithub.com/biomejs/website/issues/48)).
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

##### Bug fixes

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
and
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports)
now correctly handle import namespaces
([#&#8203;2796](https://togithub.com/biomejs/biome/issues/2796)).

    Previously, Biome bound unqualified type to import namespaces.
Import namespaces can only be used as qualified names in a type
(ambient) context.

    ```ts
    // Unused import
    import * as Ns1 from "";
    // This doesn't reference the import namespace `Ns1`
    type T1 = Ns1; // Undeclared variable `Ns1`

    // Unused import
    import type * as Ns2 from "";
    // This doesn't reference the import namespace `Ns2`
    type T2 = Ns2; // Undeclared variable `Ns2`

    import type * as Ns3 from "";
// This references the import namespace because it is a qualified name.
    type T3 = Ns3.Inner;
    // This also references the import namespace.
    export type { Ns3 }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now correctly handle ambient computed member names
([#&#8203;2975](https://togithub.com/biomejs/biome/issues/2975)).

A constant can be imported as a type and used in a computed member name
of a member signature.
Previously, Biome was unable to bind the value imported as a type to the
computed member name.

    ```ts
    import type { NAME } from "./constants.js";
    type X = { [NAME]: number };
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now ignores `this` in JSX components
([#&#8203;2636](https://togithub.com/biomejs/biome/issues/2636)).

    The rule no longer reports `this` as undeclared in following code.

    ```jsx
    import { Component } from 'react';

    export class MyComponent extends Component {
      render() {
        return <this.foo />
      }
    }
    ```

Contributed by [@&#8203;printfn](https://togithub.com/printfn) and
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- `useJsxKeyInIterable` now handles more cases involving fragments. See
the snippets below. Contributed by
[@&#8203;dyc3](https://togithub.com/dyc3)

```jsx
// valid
[].map((item) => {
	return <>{item.condition ? <div key={item.id} /> : <div key={item.id}>foo</div>}</>;
});

// invalid
[].map((item) => {
	return <>{item.condition ? <div /> : <div>foo</div>}</>;
});
```

- `noExcessiveNestedTestSuites` no longer erroneously alerts on
`describe` calls that are not invoking the global `describe` function.
[#&#8203;2599](https://togithub.com/biomejs/biome/issues/2599)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

```js
// now valid
z.object({})
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('');
```

- `noEmptyBlockStatements` no longer reports empty constructors using
typescript parameter properties.
[#&#8203;3005](https://togithub.com/biomejs/biome/issues/3005)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

- `noEmptyBlockStatements` no longer reports empty private or protected
constructors. Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

-
[noExportsInTest](https://biomejs.dev/linter/rules/no-exports-in-test/)
rule no longer treats files with in-source testing as test files
[biomejs/biome#2859.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)

-
[useSortedClasses](https://biomejs.dev/linter/rules/use-sorted-classes/)
now keeps leading and trailing spaces when applying the code action
inside template literals:

        i Unsafe fix: Sort the classes.

          1 1 │   <>
          2   │ - → <div·class={`${variable}·px-2·foo·p-4·bar`}/>
            2 │ + → <div·class={`${variable}·foo·bar·p-4·px-2`}/>
          3 3 │   	<div class={`px-2 foo p-4 bar ${variable}`}/>
          4 4 │   </>

-
[noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/)
is correctly triggered when running `biome ci`. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/)
no longer panics when a certain combination of characters is typed.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
no logger alerts on `arguments` object in a function scope. Contributed
by [@&#8203;ah-yu](https://togithub.com/ah-yu)

##### Parser

##### Enhancements

- `lang="tsx"` is now supported in Vue Single File Components.
[#&#8203;2765](https://togithub.com/biomejs/biome/issues/2765)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Bug fixes

- The `const` modifier for type parameters is now accepted for
TypeScript `new` signatures
([#&#8203;2825](https://togithub.com/biomejs/biome/issues/2825)).

    The following code is now correctly parsed:

    ```ts
    interface I {
      new<const T>(x: T): T
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   Some invalid TypeScript syntax caused the Biome parser to crash.

The following invalid syntax no longer causes the Biome parser to crash:

    ```ts
    declare using x: null;
    declare qwait using x: null;
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/BSStudio/bss-web-graphql-backend).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zODguMSIsInVwZGF0ZWRJblZlciI6IjM3LjM4OC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
suddenlyGiovanni pushed a commit to suddenlyGiovanni/resume that referenced this issue Jun 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.7.3` ->
`1.8.0`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.7.3/1.8.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.7.3/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.8.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#180-2024-06-04)

[Compare
Source](https://togithub.com/biomejs/biome/compare/b9f90b7ee63506a1995bc29f4e389efec25a1525...378c05edd47608a1b8cba725564c807b2e772bd6)

##### Analyzer

##### New features

- Allow suppression comments to suppress individual instances of rules.
This is
used for the lint rule `useExhaustiveDependencies`, which is now able to
suppress specific dependencies. Fixes
[#&#8203;2509](https://togithub.com/biomejs/biome/issues/2509).
Contributed by [@&#8203;arendjr](https://togithub.com/arendjr)

##### Enhancements

- Assume `Astro` object is always a global when processing `.astro`
files. Contributed by [@&#8203;minht11](https://togithub.com/minht11)
- Assume Vue compiler macros are globals when processing `.vue` files.
([#&#8203;2771](https://togithub.com/biomejs/biome/pull/2771))
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### CLI

##### New features

- New `clean` command. Use this new command to clean after the
`biome-logs` directory, and remove all the log files.

    ```shell
    biome clean
    ```

- Add two new options `--only` and `--skip` to the command `biome lint`
([#&#8203;58](https://togithub.com/biomejs/biome/issues/58)).

    The `--only` option allows you to run a given rule or rule group,
For example, the following command runs only the
`style/useNamingConvention` and `style/noInferrableTypes` rules.
If the rule is disabled in the configuration, then its severity level is
set to `error` for a recommended rule or `warn` otherwise.

    ```shell
biome lint --only=style/useNamingConvention
--only=style/noInferrableTypes
    ```

Passing a group does not change the severity level of the rules in the
group.
    All the disabled rules in the group will remain disabled.
To ensure that the group is run, the `recommended` field of the group is
enabled.
The `nursery` group cannot be passed, as no rules are enabled by default
in the nursery group.

The `--skip` option allows you to skip the execution of a given group or
a given rule.
For example, the following command skips the `style` group and the
`suspicious/noExplicitAny` rule.

    ```shell
    biome lint --skip=style --skip=suspicious/noExplicitAny
    ```

You can also use `--only` and `--skip` together. `--skip` oevrrides
`--only`.
The following command executes only the rules from the `style` group,
but the `style/useNamingConvention` rule.

    ```shell
    biome lint --only=style --skip=style/useNamingConvention
    ```

These options are compatible with other options such as `--write`
(previously `--apply`), and `--reporter`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add new command `biome clean`. Use this command to purge all the logs
emitted by the Biome daemon. This command is really useful, because the
Biome daemon tends
log many files and contents during its lifecycle. This means that if
your editor is open for hours (or even days), the `biome-logs` folder
could become quite heavy. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add support for formatting and linting CSS files from the CLI. These
operations are **opt-in** for the time being.

If you don't have a configuration file, you can enable these features
with `--css-formatter-enabled` and `--css-linter-enabled`:

    ```shell
biome check --css-formatter-enabled=true --css-linter-enabled=true ./
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new CLI options to control the CSS formatting. Check the [CLI
reference page](https://biomejs.dev/reference/cli/) for more details.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add new options `--write`, `--fix` (alias of `--write`) and `--unsafe`
to the command `biome lint` and `biome check`.
Add a new option `--fix` (alias of `--write`) to the command `biome
format` and `biome migrate`.

    ```shell
    biome <lint|check> --<write|fix> [--unsafe]
    biome format --<write|fix>
    biome migrate --<write|fix>
    ```

The `biome <lint|check> --<write|fix>` has the same behavior as `biome
<lint|check> --apply`.
The `biome <lint|check> --<write|fix> --unsafe` has the same behavior as
`biome <lint|check> --apply-unsafe`.
The `biome format --fix` has the same behavior as `biome format
--write`.
The `biome migrate --fix` has the same behavior as `biome migrate
--write`.

This change allows these commands to write modifications in the same
options.
With this change, the `--apply` and `--apply-unsafe` options are
deprecated.

    Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

##### Enhancements

- Biome now executes commands (lint, format, check and ci) on the
working directory by default.
[#&#8203;2266](https://togithub.com/biomejs/biome/issues/2266)
Contributed by [@&#8203;unvalley](https://togithub.com/unvalley)

    ```diff
    - biome check .
    + biome check    # You can run the command without the path
    ```

- `biome migrate eslint` now tries to convert ESLint ignore patterns
into Biome ignore patterns.

ESLint uses [gitignore
patterns](https://git-scm.com/docs/gitignore#\_pattern_format).
Biome now tries to convert these patterns into Biome ignore patterns.

For example, the gitignore pattern `/src` is a relative path to the file
in which it appears.
    Biome now recognizes this and translates this pattern to `./src`.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- `biome migrate eslint` now supports the `eslintIgnore` field in
`package.json`.

ESLint allows the use of `package.json` as an ESLint configuration file.
    ESLint supports two fields: `eslintConfig` and `eslintIgnore`.
    Biome only supported the former. It now supports both.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   `biome migrate eslint` now propagates NodeJS errors to the user.

This will help users to identify why Biome is unable to load some ESLint
configurations.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add a new `--reporter` called `summary`. This reporter will print
diagnostics in a different way, based on the tools (formatter, linter,
etc.) that are executed.
Import sorting and formatter shows the name of the files that require
formatting. Instead, the linter will group the number of rules triggered
and the number of errors/warnings:

Formatter
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to be formatted:
        main.ts
        index.ts

Organize Imports
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        The following files needs to have their imports sorted:
        main.ts
        index.ts

Analyzer
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        Some analyzer rules were triggered

Rule Name Diagnostics
lint/suspicious/noImplicitAnyLet 12 (12 error(s), 0 warning(s), 0
info(s))
lint/suspicious/noDoubleEquals 8 (8 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noRedeclare 12 (12 error(s), 0 warning(s), 0 info(s))
lint/suspicious/noDebugger 20 (20 error(s), 0 warning(s), 0 info(s))

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- `biome ci` now enforces printing the output using colours. If you were
previously using `--colors=force`, you can remove it because it's
automatically set. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `github`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

::error
title=lint/suspicious/noDoubleEquals,file=main.ts,line=4,endLine=4,col=3,endColumn=5::Use
=== instead of ==
::error
title=lint/suspicious/noDebugger,file=main.ts,line=6,endLine=6,col=1,endColumn=9::This
is an unexpected use of the debugger statement.
::error
title=lint/nursery/noEvolvingAny,file=main.ts,line=8,endLine=8,col=5,endColumn=6::This
variable's type is not allowed to evolve implicitly, leading to
potential any types.

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

- Add a new `--reporter` called `junit`. This reporter will print
diagnostics using [GitHub workflow
commands](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#about-workflow-commands):

    ```xml
    <?xml version="1.0" encoding="UTF-8"?>
<testsuites name="Biome" tests="16" failures="16" errors="20"
time="<TIME>">
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDoubleEquals" line="4"
column="3">
<failure message="Use === instead of ==. == is only allowed when
comparing against `null`">line 3, col 2, Use === instead of ==. == is
only allowed when comparing against `null`</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.suspicious.noDebugger" line="6"
column="1">
<failure message="This is an unexpected use of the debugger
statement.">line 5, col 0, This is an unexpected use of the debugger
statement.</failure>
          </testcase>
      </testsuite>
<testsuite name="main.ts" tests="1" disabled="0" errors="0" failures="1"
package="org.biome">
<testcase name="org.biome.lint.nursery.noEvolvingAny" line="8"
column="5">
<failure message="This variable&apos;s type is not allowed to evolve
implicitly, leading to potential any types.">line 7, col 4, This
variable&apos;s type is not allowed to evolve implicitly, leading to
potential any types.</failure>
          </testcase>
      </testsuite>
    </testsuites>
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fix [#&#8203;3024](https://togithub.com/biomejs/biome/issues/3024),
where running `biome init` would create `biome.json` even if
`biome.jsonc` already exists. Contributed by
[@&#8203;minht11](https://togithub.com/minht11)

##### Configuration

##### New features

- Add an rule option `fix` to override the code fix kind of a rule
([#&#8203;2882](https://togithub.com/biomejs/biome/issues/2882)).

    A rule can provide a safe or an **unsafe** code **action**.
You can now tune the kind of code actions thanks to the `fix` option.
    This rule option takes a value among:

    -   `none`: the rule no longer emits code actions.
    -   `safe`: the rule emits safe code action.
    -   `unsafe`: the rule emits unsafe code action.

The following configuration disables the code actions of
`noUnusedVariables`, makes the emitted code actions of `style/useConst`
and `style/useTemplate` unsafe and safe respectively.

    ```json
    {
      "linter": {
        "rules": {
          "correctness": {
            "noUnusedVariables": {
              "level": "error",
              "fix": "none"
            },
            "style": {
              "useConst": {
                "level": "warn",
                "fix": "unsafe"
              },
              "useTemplate": {
                "level": "warn",
                "fix": "safe"
              }
            }
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add option `javascript.linter.enabled` to control the linter for
JavaScript (and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `json.linter.enabled` to control the linter for JSON (and
its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.linter.enabled` to control the linter for CSS (and its
super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Add option `css.formatter`, to control the formatter options for CSS
(and its super languages) files. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- You can now change the severity of lint rules down to `"info"`. The
`"info"` severity doesn't emit error codes, and it isn't affected by
other options like `--error-on-warnings`:

    ```json
    {
      "linter": {
        "rules": {
          "suspicious": {
            "noDebugger": "info"
          }
        }
      }
    }
    ```

    Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Enhancements

- The `javascript.formatter.trailingComma` option is deprecated and
renamed to `javascript.formatter.trailingCommas`. The corresponding CLI
option `--trailing-comma` is also deprecated and renamed to
`--trailing-commas`. Details can be checked in
[#&#8203;2492](https://togithub.com/biomejs/biome/pull/2492).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Bug fixes

- Fix a bug where if the formatter was disabled at the language level,
it could be erroneously enabled by an
override that did not specify the formatter section
[#&#8203;2924](https://togithub.com/biomejs/biome/issues/2924).
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)
- Fix [#&#8203;2990](https://togithub.com/biomejs/biome/issues/2990),
now Biome doesn't add a trailing comma when formatting `biome.json`.
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Editors

##### New features

-   Add support for LSP Workspaces

##### Enhancements

- The LSP doesn't crash anymore when the configuration file contains
errors. If the configuration contains errors, Biome now shows a pop-up
to the user, and it will only parse files using the default
configuration.
Formatting and linting is disabled until the configuration file is
fixed. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Bug fixes

- Fixes [#&#8203;2781](https://togithub.com/biomejs/biome/issues/2781),
by correctly computing the configuration to apply to a specific file.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

##### Formatter

##### Bug fixes

- Fix [#&#8203;2470](https://togithub.com/biomejs/biome/issues/2470) by
avoid introducing linebreaks in single line string interpolations.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)
- Resolve deadlocks by narrowing the scope of locks. Contributed by
[@&#8203;mechairoi](https://togithub.com/mechairoi)
- Fix [#&#8203;2782](https://togithub.com/biomejs/biome/issues/2782) by
computing the enabled rules by taking the override settings into
consideration. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)
- Fix
\[biomejs/biome#2877]
by correctly handling line terminators in JSX string. Contributed by
[@&#8203;ah-yu](https://togithub.com/ah-yu)

##### JavaScript APIs

##### Linter

##### Promoted rules

New rules are incubated in the nursery group. Once stable, we promote
them to a stable group. The following rules are promoted:

-
[useImportRestrictions](https://biomejs.dev/linter/rules/use-import-restrictions/)
- [noNodejsModules](https://biomejs.dev/linter/rules/no-nodejs-modules/)
-
[useArrayLiterals](https://biomejs.dev/linter/rules/use-array-literals/)
-
[noConstantMathMinMaxClamp](https://biomejs.dev/linter/rules/no-constant-math-min-max-clamp/)
-
[noFlatMapIdentity](https://biomejs.dev/linter/rules/no-flat-map-identity/)

##### New features

- Add
[nursery/useDateNow](https://biomejs.dev/linter/rules/use-date-now/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useErrorMessage](https://biomejs.dev/linter/rules/use_error_message/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowOnlyError](https://biomejs.dev/linter/rules/use_throw_only_error/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useImportExtensions](https://biomejs.dev/linter/rules/use-import-extensions/).
Contributed by [@&#8203;minht11](https://togithub.com/minht11)

-
[useNamingConvention](https://biomejs.dev/linter/rules/use-naming-convention/)
now supports an option to enforce custom conventions
([#&#8203;1900](https://togithub.com/biomejs/biome/issues/1900)).

For example, you can enforce the use of a prefix for private class
members:

    ```json
    {
    	"linter": {
    		"rules": {
    			"style": {
    				"useNamingConvention": {
    					"level": "error",
    					"options": {
    						"conventions": [
    							{
    								"selector": {
    									"kind": "classMember",
    									"modifiers": ["private"]
    								},
    								"match": "_(.*)",
                    "formats": ["camelCase"]
    							}
    						]
    					}
    				}
    			}
    		}
    	}
    }
    ```

Please, find more details in the [rule
documentation](https://biomejs.dev/linter/rules/use-naming-convention/#options).

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Add
[nursery/useNumberToFixedDigitsArgument](https://biomejs.dev/linter/rules/use-number-to-fixed-digits-argument/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useThrowNewError](https://biomejs.dev/linter/rules/use-throw-new-error/).
    Contributed by [@&#8203;minht11](https://togithub.com/minht11)

- Add
[nursery/useTopLevelRegex](https://biomejs.dev/linter/rules/use-top-level-regex),
which enforces defining regular expressions at the top level of a
module. [#&#8203;2148](https://togithub.com/biomejs/biome/issues/2148)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3).

- Add
[nursery/noCssEmptyBlock](https://biomejs.dev/linter/rules/no-css-empty-block).
[#&#8203;2513](https://togithub.com/biomejs/biome/pull/2513) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateAtImportRules](https://biomejs.dev/linter/rules/no-duplicate-at-import-rules).
[#&#8203;2658](https://togithub.com/biomejs/biome/pull/2658) Contributed
by [@&#8203;DerTimonius](https://togithub.com/DerTimonius)

- Add
[nursery/noDuplicateFontNames](https://biomejs.dev/linter/rules/no-duplicate-font-names).
[#&#8203;2308](https://togithub.com/biomejs/biome/pull/2308) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noDuplicateSelectorsKeyframeBlock](https://biomejs.dev/linter/rules/no-duplicate-selectors-keyframe-block).
[#&#8203;2534](https://togithub.com/biomejs/biome/pull/2534) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noImportantInKeyframe](https://biomejs.dev/linter/rules/no-important-in-keyframe).
[#&#8203;2542](https://togithub.com/biomejs/biome/pull/2542) Contributed
by [@&#8203;isnakode](https://togithub.com/isnakode)

- Add
[nursery/noInvalidPositionAtImportRule](https://biomejs.dev/linter/rules/no-invalid-position-at-import-rule).
[#&#8203;2717](https://togithub.com/biomejs/biome/issues/2717)
Contributed by [@&#8203;t-shiratori](https://togithub.com/t-shiratori)

- Add
[nursery/noUnknownFunction](https://biomejs.dev/linter/rules/no-unknown-function).
[#&#8203;2570](https://togithub.com/biomejs/biome/pull/2570) Contributed
by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnknownMediaFeatureName](https://biomejs.dev/linter/rules/no-unknown-media-feature-name).
[#&#8203;2751](https://togithub.com/biomejs/biome/issues/2751)
Contributed by
[@&#8203;Kazuhiro-Mimaki](https://togithub.com/Kazuhiro-Mimaki)

- Add
[nursery/noUnknownProperty](https://biomejs.dev/linter/rules/no-unknown-property).
[#&#8203;2755](https://togithub.com/biomejs/biome/pull/2755) Contributed
by [@&#8203;chansuke](https://togithub.com/chansuke)

- Add
[nursery/noUnknownSelectorPseudoElement](https://biomejs.dev/linter/rules/no-unknown-selector-pseudo-element).
[#&#8203;2655](https://togithub.com/biomejs/biome/issues/2655)
Contributed by [@&#8203;keita-hino](https://togithub.com/keita-hino)

- Add
[nursery/noUnknownUnit](https://biomejs.dev/linter/rules/no-unknwon-unit).
[#&#8203;2535](https://togithub.com/biomejs/biome/issues/2535)
Contributed by [@&#8203;neokidev](https://togithub.com/neokidev)

- Add
[nursery/noUnmatchableAnbSelector](https://biomejs.dev/linter/rules/no-unmatchable-anb-selector).
[#&#8203;2706](https://togithub.com/biomejs/biome/issues/2706)
Contributed by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/useGenericFontNames](https://biomejs.dev/linter/rules/use-generic-font-names).
[#&#8203;2573](https://togithub.com/biomejs/biome/pull/2573) Contributed
by [@&#8203;togami2864](https://togithub.com/togami2864)

- Add
[nursery/noYodaExpression](https://biomejs.dev/linter/rules/no-yoda-expression/).
Contributed by [@&#8203;michellocana](https://togithub.com/michellocana)

- Add
[nursery/noUnusedFunctionParameters](https://biomejs.dev/linter/rules/no-unused-function-parameters/)
Contributed by [@&#8203;printfn](https://togithub.com/printfn)

##### Enhancements

- Add a code action for
[noConfusingVoidType](https://biomejs.dev/linter/rules/no-confusing-void-type/)
and improve the diagnostics.

The rule now suggests using `undefined` instead of `void` in confusing
places.
    The diagnosis is also clearer.

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- Improve code action for
[nursery/noUselessUndefinedInitialization](https://biomejs.dev/linter/rules/no-useless-undefined-initialization/)
to handle comments.

The rule now places inline comments after the declaration statement,
instead of removing them.
    The code action is now safe to apply.

    Contributed by [@&#8203;lutaok](https://togithub.com/lutaok)

- Make
[useExhaustiveDependencies](https://biomejs.dev/linter/rules/use-exhaustive-dependencies/)
report duplicate dependencies. Contributed by
[@&#8203;tunamaguro](https://togithub.com/tunamaguro)

- Rename `noEvolvingAny` into `noEvolvingTypes`
([#&#8203;48](https://togithub.com/biomejs/website/issues/48)).
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

##### Bug fixes

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
and
[noUnusedImports](https://biomejs.dev/linter/rules/no-unused-imports)
now correctly handle import namespaces
([#&#8203;2796](https://togithub.com/biomejs/biome/issues/2796)).

    Previously, Biome bound unqualified type to import namespaces.
Import namespaces can only be used as qualified names in a type
(ambient) context.

    ```ts
    // Unused import
    import * as Ns1 from "";
    // This doesn't reference the import namespace `Ns1`
    type T1 = Ns1; // Undeclared variable `Ns1`

    // Unused import
    import type * as Ns2 from "";
    // This doesn't reference the import namespace `Ns2`
    type T2 = Ns2; // Undeclared variable `Ns2`

    import type * as Ns3 from "";
// This references the import namespace because it is a qualified name.
    type T3 = Ns3.Inner;
    // This also references the import namespace.
    export type { Ns3 }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now correctly handle ambient computed member names
([#&#8203;2975](https://togithub.com/biomejs/biome/issues/2975)).

A constant can be imported as a type and used in a computed member name
of a member signature.
Previously, Biome was unable to bind the value imported as a type to the
computed member name.

    ```ts
    import type { NAME } from "./constants.js";
    type X = { [NAME]: number };
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
now ignores `this` in JSX components
([#&#8203;2636](https://togithub.com/biomejs/biome/issues/2636)).

    The rule no longer reports `this` as undeclared in following code.

    ```jsx
    import { Component } from 'react';

    export class MyComponent extends Component {
      render() {
        return <this.foo />
      }
    }
    ```

Contributed by [@&#8203;printfn](https://togithub.com/printfn) and
[@&#8203;Conaclos](https://togithub.com/Conaclos)

- `useJsxKeyInIterable` now handles more cases involving fragments. See
the snippets below. Contributed by
[@&#8203;dyc3](https://togithub.com/dyc3)

```jsx
// valid
[].map((item) => {
	return <>{item.condition ? <div key={item.id} /> : <div key={item.id}>foo</div>}</>;
});

// invalid
[].map((item) => {
	return <>{item.condition ? <div /> : <div>foo</div>}</>;
});
```

- `noExcessiveNestedTestSuites` no longer erroneously alerts on
`describe` calls that are not invoking the global `describe` function.
[#&#8203;2599](https://togithub.com/biomejs/biome/issues/2599)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

```js
// now valid
z.object({})
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('')
  .describe('');
```

- `noEmptyBlockStatements` no longer reports empty constructors using
typescript parameter properties.
[#&#8203;3005](https://togithub.com/biomejs/biome/issues/3005)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

- `noEmptyBlockStatements` no longer reports empty private or protected
constructors. Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

-
[noExportsInTest](https://biomejs.dev/linter/rules/no-exports-in-test/)
rule no longer treats files with in-source testing as test files
[biomejs/biome#2859.
Contributed by [@&#8203;ah-yu](https://togithub.com/ah-yu)

-
[useSortedClasses](https://biomejs.dev/linter/rules/use-sorted-classes/)
now keeps leading and trailing spaces when applying the code action
inside template literals:

        i Unsafe fix: Sort the classes.

          1 1 │   <>
          2   │ - → <div·class={`${variable}·px-2·foo·p-4·bar`}/>
            2 │ + → <div·class={`${variable}·foo·bar·p-4·px-2`}/>
          3 3 │   	<div class={`px-2 foo p-4 bar ${variable}`}/>
          4 4 │   </>

-
[noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/)
is correctly triggered when running `biome ci`. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUnusedVariables](https://biomejs.dev/linter/rules/no-unused-variables/)
no longer panics when a certain combination of characters is typed.
Contributed by [@&#8203;ematipico](https://togithub.com/ematipico)

-
[noUndeclaredVariables](https://biomejs.dev/linter/rules/no-undeclared-variables/)
no logger alerts on `arguments` object in a function scope. Contributed
by [@&#8203;ah-yu](https://togithub.com/ah-yu)

##### Parser

##### Enhancements

- `lang="tsx"` is now supported in Vue Single File Components.
[#&#8203;2765](https://togithub.com/biomejs/biome/issues/2765)
Contributed by [@&#8203;dyc3](https://togithub.com/dyc3)

##### Bug fixes

- The `const` modifier for type parameters is now accepted for
TypeScript `new` signatures
([#&#8203;2825](https://togithub.com/biomejs/biome/issues/2825)).

    The following code is now correctly parsed:

    ```ts
    interface I {
      new<const T>(x: T): T
    }
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-   Some invalid TypeScript syntax caused the Biome parser to crash.

The following invalid syntax no longer causes the Biome parser to crash:

    ```ts
    declare using x: null;
    declare qwait using x: null;
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/suddenlyGiovanni/resume).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Signed-off-by: Giovanni Ravalico <15946771+suddenlyGiovanni@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Linter Area: linter L-JavaScript Language: JavaScript and super languages S-Bug-confirmed Status: report has been confirmed as a valid bug
Projects
None yet
2 participants