diff --git a/.github/workflows/release_cli.yml b/.github/workflows/release_cli.yml
index d7b57af5bf16..56f9078b4ab6 100644
--- a/.github/workflows/release_cli.yml
+++ b/.github/workflows/release_cli.yml
@@ -230,7 +230,7 @@ jobs:
run: |
bash scripts/print-changelog.sh ${{ needs.build.outputs.version }} >| ${{ github.workspace }}/RELEASE_NOTES
- name: Create GitHub release and tag
- uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v2.0.6
+ uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
diff --git a/.github/workflows/release_js_api.yml b/.github/workflows/release_js_api.yml
index f2dfb029c366..6c8bba3008b9 100644
--- a/.github/workflows/release_js_api.yml
+++ b/.github/workflows/release_js_api.yml
@@ -151,7 +151,7 @@ jobs:
run: |
bash scripts/print-changelog.sh ${{ needs.build.outputs.version }} >| ${{ github.workspace }}/RELEASE_NOTES
- name: Create GitHub release and tag
- uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v2.0.6
+ uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 491328aa6985..538105f44c4c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -45,10 +45,37 @@ our [guidelines for writing a good changelog entry](https://github.com/biomejs/b
### Formatter
+#### Enhancements
+
+- Add parentheses for nullcoalescing in ternaries.
+
+ This change aligns on [Prettier 3.3.3](https://github.com/prettier/prettier/blob/main/CHANGELOG.md#333).
+ This adds clarity to operator precedence.
+
+ ```diff
+ - foo ? bar ?? foo : baz;
+ + foo ? (bar ?? foo) : baz;
+ ```
+
+ Contributed by @Conaclos
+
#### Bug fixes
- Keep the parentheses around `infer` declarations in type unions and type intersections ([#3419](https://github.com/biomejs/biome/issues/3419)). Contributed by @Conaclos
+- Keep parentheses around a `yield` expression inside a type assertion.
+
+ Previously, Biome removed parentheses around some expressions that require them inside a type assertion.
+ For example, in the following code, Biome now preserves the parentheses.
+
+ ```ts
+ function* f() {
+ return (yield 0);
+ }
+ ```
+
+ Contributed by @Conaclos
+
### JavaScript APIs
### Linter
@@ -102,6 +129,14 @@ our [guidelines for writing a good changelog entry](https://github.com/biomejs/b
Contributed by @Conaclos
+- [useFilenamingConvention](https://biomejs.dev/linter/rules/use-filenaming-convention) now supports Next.js/Nuxt/Astro dynamic routes ([#3465](https://github.com/biomejs/biome/issues/3465)).
+
+ [Next.js](https://nextjs.org/docs/pages/building-your-application/routing/dynamic-routes#catch-all-segments), [SolidStart](https://docs.solidjs.com/solid-start/building-your-application/routing#renaming-index), [Nuxt](https://nuxt.com/docs/guide/directory-structure/server#catch-all-route), and [Astro](https://docs.astro.build/en/guides/routing/#rest-parameters) support dynamic routes such as `[...slug].js` and `[[...slug]].js`.
+
+ Biome now recognizes this syntax. `slug` must contain only alphanumeric characters.
+
+ Contributed by @Conaclos
+
#### Bug fixes
- Don't request alt text for elements hidden from assistive technologies ([#3316](https://github.com/biomejs/biome/issues/3316)). Contributed by @robintown
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 90e6df339c5d..691d1c052777 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,32 +4,36 @@ We can use help in a bunch of areas and any help is greatly appreciated!
## Table of Contents
-* [Asking questions, making proposals](#asking-questions-making-proposals)
-* [Reporting bugs](#reporting-bugs)
-* [Getting Started](#getting-started)
-* [Install the required tools](#install-the-required-tools)
-* [Testing](#testing)
- + [Debugging](#debugging)
-* [Checks](#checks)
-* [Crates development](#crates-development)
- + [Analyzers and lint rules](#analyzers-and-lint-rules)
- + [Parser](#parser)
- + [Formatter](#formatter)
-* [Crate dependencies](#crate-dependencies)
-* [Node.js development](#nodejs-development)
- + [Translations](#translations)
-* [Commit messages](#commit-messages)
-* [Creating pull requests](#creating-pull-requests)
- + [Changelog](#changelog)
- - [Writing a changelog line](#writing-a-changelog-line)
- + [Documentation](#documentation)
- + [Versioning](#versioning)
-* [Releasing](#releasing)
-* [Resources](#resources)
-* [Current Members](#current-members)
- + [Lead team](#lead-team)
- + [Core Contributors team](#core-contributors-team)
- + [Maintainers team](#maintainers-team)
+- [π Contributing](#-contributing)
+ - [Table of Contents](#table-of-contents)
+ - [Asking questions, making proposals](#asking-questions-making-proposals)
+ - [Reporting bugs](#reporting-bugs)
+ - [Getting Started](#getting-started)
+ - [Install the required tools](#install-the-required-tools)
+ - [Testing](#testing)
+ - [Debugging](#debugging)
+ - [Checks](#checks)
+ - [Crates development](#crates-development)
+ - [Create new crates](#create-new-crates)
+ - [Analyzers and lint rules](#analyzers-and-lint-rules)
+ - [Parser](#parser)
+ - [Formatter](#formatter)
+ - [Crate dependencies](#crate-dependencies)
+ - [Node.js development](#nodejs-development)
+ - [Translations](#translations)
+ - [Commit messages](#commit-messages)
+ - [Creating pull requests](#creating-pull-requests)
+ - [Changelog](#changelog)
+ - [Writing a changelog line](#writing-a-changelog-line)
+ - [Documentation](#documentation)
+ - [Versioning](#versioning)
+ - [Releasing](#releasing)
+ - [Resources](#resources)
+ - [Current Members](#current-members)
+ - [Lead team](#lead-team)
+ - [Core Contributors team](#core-contributors-team)
+ - [Maintainers team](#maintainers-team)
+ - [Past Maintainers](#past-maintainers)
## Asking questions, making proposals
@@ -425,6 +429,7 @@ Members are listed in alphabetical order. Members are free to use the full name,
### Maintainers team
+- [Carson McManus @dyc3](https://github.com/dyc3)
- [Dani Guardiola @DaniGuardiola](https://github.com/DaniGuardiola)
- [Justinas Delinda @minht11](https://github.com/minht11)
- [Madeline GurriarΓ‘n @SuperchupuDev](https://github.com/SuperchupuDev)
diff --git a/Cargo.lock b/Cargo.lock
index 14ae537309cb..7c32b443b5c5 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -340,7 +340,7 @@ dependencies = [
"biome_json_parser",
"biome_json_syntax",
"biome_rowan",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"indexmap 2.2.6",
"schemars",
"serde",
@@ -370,7 +370,7 @@ dependencies = [
"biome_rowan",
"biome_text_edit",
"biome_text_size",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"bpaf",
"oxc_resolver",
"schemars",
@@ -534,6 +534,16 @@ dependencies = [
"unicode-bom",
]
+[[package]]
+name = "biome_graphql_semantic"
+version = "0.0.0"
+dependencies = [
+ "biome_graphql_parser",
+ "biome_graphql_syntax",
+ "biome_rowan",
+ "rustc-hash",
+]
+
[[package]]
name = "biome_graphql_syntax"
version = "0.1.0"
@@ -666,7 +676,7 @@ dependencies = [
"biome_suppression",
"biome_test_utils",
"biome_unicode_table",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"bitvec",
"enumflags2",
"insta",
@@ -731,7 +741,7 @@ dependencies = [
"biome_parser",
"biome_rowan",
"biome_unicode_table",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"drop_bomb",
"expect-test",
"indexmap 2.2.6",
@@ -925,7 +935,7 @@ dependencies = [
"biome_diagnostics",
"biome_rowan",
"biome_unicode_table",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"drop_bomb",
"unicode-bom",
]
@@ -1138,9 +1148,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.5.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
[[package]]
name = "bitmaps"
@@ -1930,7 +1940,7 @@ version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724"
dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"libc",
"libgit2-sys",
"log",
@@ -1962,7 +1972,7 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757"
dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"ignore",
"walkdir",
]
@@ -2229,9 +2239,9 @@ checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105"
[[package]]
name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
@@ -2267,7 +2277,7 @@ version = "0.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"libc",
"redox_syscall",
]
@@ -2745,7 +2755,7 @@ version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76979bea66e7875e7509c4ec5300112b316af87fa7a252ca91c448b32dfe3993"
dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
"getopts",
"memchr",
"pulldown-cmark-escape",
@@ -3455,6 +3465,7 @@ dependencies = [
name = "tests_macros"
version = "0.0.0"
dependencies = [
+ "biome_string_case",
"case",
"globwalk",
"proc-macro-error",
@@ -3571,9 +3582,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.38.0"
+version = "1.38.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
+checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df"
dependencies = [
"backtrace",
"bytes",
diff --git a/Cargo.toml b/Cargo.toml
index 876689f41fbb..a2c6c73710fe 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -109,6 +109,7 @@ biome_graphql_analyze = { version = "0.0.1", path = "./crates/biome_graph
biome_graphql_factory = { version = "0.1.0", path = "./crates/biome_graphql_factory" }
biome_graphql_formatter = { version = "0.1.0", path = "./crates/biome_graphql_formatter" }
biome_graphql_parser = { version = "0.1.0", path = "./crates/biome_graphql_parser" }
+biome_graphql_semantic = { version = "0.0.0", path = "./crates/biome_graphql_semantic" }
biome_graphql_syntax = { version = "0.1.0", path = "./crates/biome_graphql_syntax" }
biome_grit_factory = { version = "0.5.7", path = "./crates/biome_grit_factory" }
biome_grit_formatter = { version = "0.0.0", path = "./crates/biome_grit_formatter" }
@@ -156,7 +157,7 @@ tests_macros = { path = "./crates/tests_macros" }
# Crates needed in the workspace
anyhow = "1.0.86"
-bitflags = "2.5.0"
+bitflags = "2.6.0"
bpaf = { version = "0.9.9", features = ["derive"] }
countme = "3.0.1"
crossbeam = "0.8.4"
@@ -166,7 +167,7 @@ getrandom = "0.2.15"
ignore = "0.4.21"
indexmap = { version = "2.2.6", features = ["serde"] }
insta = "1.39.0"
-lazy_static = "1.4.0"
+lazy_static = "1.5.0"
natord = "1.0.9"
oxc_resolver = "1.8.1"
proc-macro2 = "1.0.86"
@@ -185,7 +186,7 @@ slotmap = "1.0.7"
smallvec = { version = "1.13.2", features = ["union", "const_new", "serde"] }
syn = "1.0.109"
termcolor = "1.4.1"
-tokio = "1.38.0"
+tokio = "1.38.1"
tracing = { version = "0.1.40", default-features = false, features = ["std"] }
tracing-subscriber = "0.3.18"
unicode-bom = "2.0.3"
diff --git a/crates/biome_cli/src/execute/process_file/lint.rs b/crates/biome_cli/src/execute/process_file/lint.rs
index 91eecd29f672..8638d8b2a2d2 100644
--- a/crates/biome_cli/src/execute/process_file/lint.rs
+++ b/crates/biome_cli/src/execute/process_file/lint.rs
@@ -22,10 +22,16 @@ pub(crate) fn lint_with_guard<'ctx>(
move || {
let mut input = workspace_file.input()?;
let mut changed = false;
+ let (only, skip) =
+ if let TraversalMode::Lint { only, skip, .. } = ctx.execution.traversal_mode() {
+ (only.clone(), skip.clone())
+ } else {
+ (Vec::new(), Vec::new())
+ };
if let Some(fix_mode) = ctx.execution.as_fix_file_mode() {
let fix_result = workspace_file
.guard()
- .fix_file(*fix_mode, false)
+ .fix_file(*fix_mode, false, only.clone(), skip.clone())
.with_file_path_and_code(
workspace_file.path.display().to_string(),
category!("lint"),
@@ -57,12 +63,6 @@ pub(crate) fn lint_with_guard<'ctx>(
}
let max_diagnostics = ctx.remaining_diagnostics.load(Ordering::Relaxed);
- let (only, skip) =
- if let TraversalMode::Lint { only, skip, .. } = ctx.execution.traversal_mode() {
- (only.clone(), skip.clone())
- } else {
- (Vec::new(), Vec::new())
- };
let pull_diagnostics_result = workspace_file
.guard()
.pull_diagnostics(
diff --git a/crates/biome_cli/src/execute/std_in.rs b/crates/biome_cli/src/execute/std_in.rs
index ecdb12d0d69d..840c882a77d5 100644
--- a/crates/biome_cli/src/execute/std_in.rs
+++ b/crates/biome_cli/src/execute/std_in.rs
@@ -108,12 +108,20 @@ pub(crate) fn run<'a>(
return Ok(());
};
+ let (only, skip) = if let TraversalMode::Lint { only, skip, .. } = mode.traversal_mode() {
+ (only.clone(), skip.clone())
+ } else {
+ (Vec::new(), Vec::new())
+ };
+
if let Some(fix_file_mode) = mode.as_fix_file_mode() {
if file_features.supports_lint() {
let fix_file_result = workspace.fix_file(FixFileParams {
fix_file_mode: *fix_file_mode,
path: biome_path.clone(),
should_format: mode.is_check() && file_features.supports_format(),
+ only: only.clone(),
+ skip: skip.clone(),
})?;
let code = fix_file_result.code;
let output = match biome_path.extension_as_str() {
@@ -156,11 +164,6 @@ pub(crate) fn run<'a>(
}
}
- let (only, skip) = if let TraversalMode::Lint { only, skip, .. } = mode.traversal_mode() {
- (only.clone(), skip.clone())
- } else {
- (Vec::new(), Vec::new())
- };
if !mode.is_check_apply_unsafe() {
let result = workspace.pull_diagnostics(PullDiagnosticsParams {
categories: RuleCategoriesBuilder::default()
diff --git a/crates/biome_cli/tests/commands/lint.rs b/crates/biome_cli/tests/commands/lint.rs
index 3b641565d003..b3a7a4578f86 100644
--- a/crates/biome_cli/tests/commands/lint.rs
+++ b/crates/biome_cli/tests/commands/lint.rs
@@ -3806,6 +3806,46 @@ fn lint_only_group_with_disabled_rule() {
));
}
+#[test]
+fn lint_only_write() {
+ let mut fs = MemoryFileSystem::default();
+ let mut console = BufferConsole::default();
+ let config = r#"{}"#;
+ let content = r#"
+ export const z = function (array) {
+ array.map((sentence) => sentence.split(" ")).flat();
+ return 0;
+ };
+ "#;
+
+ let file_path = Path::new("check.js");
+ fs.insert(file_path.into(), content.as_bytes());
+ let config_path = Path::new("biome.json");
+ fs.insert(config_path.into(), config.as_bytes());
+
+ let result = run_cli(
+ DynRef::Borrowed(&mut fs),
+ &mut console,
+ Args::from(
+ [
+ ("lint"),
+ "--write",
+ "--only=complexity/useArrowFunction",
+ file_path.as_os_str().to_str().unwrap(),
+ ]
+ .as_slice(),
+ ),
+ );
+
+ assert_cli_snapshot(SnapshotPayload::new(
+ module_path!(),
+ "lint_only_write",
+ fs,
+ console,
+ result,
+ ));
+}
+
#[test]
fn lint_skip_rule() {
let mut fs = MemoryFileSystem::default();
@@ -3943,6 +3983,46 @@ fn lint_skip_rule_and_group() {
));
}
+#[test]
+fn lint_skip_write() {
+ let mut fs = MemoryFileSystem::default();
+ let mut console = BufferConsole::default();
+ let config = r#"{}"#;
+ let content = r#"
+ export const z = function (array) {
+ array.map((sentence) => sentence.split(" ")).flat();
+ return 0;
+ };
+ "#;
+
+ let file_path = Path::new("check.js");
+ fs.insert(file_path.into(), content.as_bytes());
+ let config_path = Path::new("biome.json");
+ fs.insert(config_path.into(), config.as_bytes());
+
+ let result = run_cli(
+ DynRef::Borrowed(&mut fs),
+ &mut console,
+ Args::from(
+ [
+ ("lint"),
+ "--write",
+ "--skip=complexity/useArrowFunction",
+ file_path.as_os_str().to_str().unwrap(),
+ ]
+ .as_slice(),
+ ),
+ );
+
+ assert_cli_snapshot(SnapshotPayload::new(
+ module_path!(),
+ "lint_skip_write",
+ fs,
+ console,
+ result,
+ ));
+}
+
#[test]
fn lint_only_group_skip_rule() {
let mut fs = MemoryFileSystem::default();
diff --git a/crates/biome_cli/tests/snapshots/main_commands_lint/lint_only_write.snap b/crates/biome_cli/tests/snapshots/main_commands_lint/lint_only_write.snap
new file mode 100644
index 000000000000..23aac6f49400
--- /dev/null
+++ b/crates/biome_cli/tests/snapshots/main_commands_lint/lint_only_write.snap
@@ -0,0 +1,26 @@
+---
+source: crates/biome_cli/tests/snap_test.rs
+expression: content
+---
+## `biome.json`
+
+```json
+{}
+```
+
+## `check.js`
+
+```js
+
+ export const z = (array) => {
+ array.map((sentence) => sentence.split(" ")).flat();
+ return 0;
+ };
+
+```
+
+# Emitted Messages
+
+```block
+Checked 1 file in
;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/jsx/template/styled-components.js.snap b/crates/biome_js_formatter/tests/specs/prettier/jsx/template/styled-components.js.snap
index fe1e58001577..8dd3d1c76fd7 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/jsx/template/styled-components.js.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/jsx/template/styled-components.js.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: jsx/template/styled-components.js
---
-
# Input
```js
@@ -70,5 +69,3 @@ info: jsx/template/styled-components.js
`}
;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/jsx/tuple/tuple.js.snap b/crates/biome_js_formatter/tests/specs/prettier/jsx/tuple/tuple.js.snap
index efa647e6aa70..7f28391eee34 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/jsx/tuple/tuple.js.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/jsx/tuple/tuple.js.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: jsx/tuple/tuple.js
---
-
# Input
```js
@@ -105,5 +104,3 @@ tuple.js:6:6 parse ββββββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/arrow/comments.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/arrow/comments.ts.snap
index 8c0061cbdbc7..bd176ff925b0 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/arrow/comments.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/arrow/comments.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/arrow/comments.ts
---
-
# Input
```ts
@@ -48,5 +47,3 @@ const fn2 = () => {
// foo
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/as/as-const-embedded.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/as/as-const-embedded.ts.snap
index f50635d3a4de..24f7503a81c5 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/as/as-const-embedded.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/as/as-const-embedded.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/as/as-const-embedded.ts
---
-
# Input
```ts
@@ -59,5 +58,3 @@ const HTML_WITH_CONST = /* HTML */ `
` as const;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/assignment/issue-5370.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/assignment/issue-5370.ts.snap
index a441df9773b2..7f7078c46a5d 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/assignment/issue-5370.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/assignment/issue-5370.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/assignment/issue-5370.ts
---
-
# Input
```ts
@@ -56,5 +55,3 @@ issue-5370.ts:3:1 parse ββββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts
index edada7854483..db00a98beef3 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts
@@ -6,3 +6,7 @@
true || a;
a + b;
(a) = 1;
+
+function * g() {
+ const a = (yield b);
+}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap
index edada7854483..21e60e637c0d 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap
@@ -6,3 +6,7 @@
true || a;
a + b;
(a) = 1;
+
+function* g() {
+ const a = yield b;
+}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap-original b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap-original
new file mode 100644
index 000000000000..fd1fcc5141a2
--- /dev/null
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.prettier-snap-original
@@ -0,0 +1,12 @@
+(a ? b : c);
+(() => {});
+
+a || {};
+a && [];
+true || a;
+a + b;
+(a) = 1;
+
+function* g() {
+ const a = (yield b);
+}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.snap
new file mode 100644
index 000000000000..404469d360d4
--- /dev/null
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/parenthesis.ts.snap
@@ -0,0 +1,53 @@
+---
+source: crates/biome_formatter_test/src/snapshot_builder.rs
+info: typescript/cast/parenthesis.ts
+---
+# Input
+
+```ts
+(a ? b : c);
+(() => {});
+
+a || {};
+a && [];
+true || a;
+a + b;
+(a) = 1;
+
+function * g() {
+ const a = (yield b);
+}
+
+```
+
+
+# Prettier differences
+
+```diff
+--- Prettier
++++ Biome
+@@ -8,5 +8,5 @@
+ (a) = 1;
+
+ function* g() {
+- const a = yield b;
++ const a = (yield b);
+ }
+```
+
+# Output
+
+```ts
+(a ? b : c);
+(() => {});
+
+a || {};
+a && [];
+true || a;
+a + b;
+(a) = 1;
+
+function* g() {
+ const a = (yield b);
+}
+```
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/tuple-and-record.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/tuple-and-record.ts.snap
index 81a989a4a4f1..dcb03cd78d39 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/tuple-and-record.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/cast/tuple-and-record.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/cast/tuple-and-record.ts
---
-
# Input
```ts
@@ -167,5 +166,3 @@ tuple-and-record.ts:5:57 parse ββββββββββββββββ
```
4: breakAfterCast = | undefined>(permissions)(#[receiverType]);
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/chain-expression/test.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/chain-expression/test.ts.snap
index 866ef4aa6575..77346139a82f 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/chain-expression/test.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/chain-expression/test.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/chain-expression/test.ts
---
-
# Input
```ts
@@ -38,5 +37,3 @@ a?.()!.b;
a?.b!.c;
a?.()!.b;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/constructor.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/constructor.ts.snap
index e19ee85e1fed..425bec87b929 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/constructor.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/constructor.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/class/constructor.ts
---
-
# Input
```ts
@@ -115,5 +114,3 @@ constructor.ts:15:14 parse βββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts
deleted file mode 100644
index fa01be69f2c4..000000000000
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-class Foo {
- public public a;
- private public b;
- protected private c;
- public protected d;
- public protected private e;
-}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts.prettier-snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts.prettier-snap
deleted file mode 100644
index 07c0c96f57e4..000000000000
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts.prettier-snap
+++ /dev/null
@@ -1,7 +0,0 @@
-class Foo {
- public a;
- private b;
- protected c;
- public d;
- public e;
-}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts.snap
deleted file mode 100644
index d4efbfad80b9..000000000000
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/duplicates-access-modifier.ts.snap
+++ /dev/null
@@ -1,228 +0,0 @@
----
-source: crates/biome_formatter_test/src/snapshot_builder.rs
-info: typescript/class/duplicates-access-modifier.ts
----
-
-# Input
-
-```ts
-class Foo {
- public public a;
- private public b;
- protected private c;
- public protected d;
- public protected private e;
-}
-
-```
-
-
-# Prettier differences
-
-```diff
---- Prettier
-+++ Biome
-@@ -1,7 +1,7 @@
- class Foo {
-- public a;
-- private b;
-- protected c;
-- public d;
-- public e;
-+ public public a;
-+ private public b;
-+ protected private c;
-+ public protected d;
-+ public protected private e;
- }
-```
-
-# Output
-
-```ts
-class Foo {
- public public a;
- private public b;
- protected private c;
- public protected d;
- public protected private e;
-}
-```
-
-# Errors
-```
-duplicates-access-modifier.ts:2:10 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ Accessibility modifier already seen.
-
- 1 β class Foo {
- > 2 β public public a;
- β ^^^^^^
- 3 β private public b;
- 4 β protected private c;
-
- i duplicate modifier
-
- 1 β class Foo {
- > 2 β public public a;
- β ^^^^^^
- 3 β private public b;
- 4 β protected private c;
-
- i first modifier
-
- 1 β class Foo {
- > 2 β public public a;
- β ^^^^^^
- 3 β private public b;
- 4 β protected private c;
-
-duplicates-access-modifier.ts:3:11 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ Accessibility modifier already seen.
-
- 1 β class Foo {
- 2 β public public a;
- > 3 β private public b;
- β ^^^^^^
- 4 β protected private c;
- 5 β public protected d;
-
- i duplicate modifier
-
- 1 β class Foo {
- 2 β public public a;
- > 3 β private public b;
- β ^^^^^^
- 4 β protected private c;
- 5 β public protected d;
-
- i first modifier
-
- 1 β class Foo {
- 2 β public public a;
- > 3 β private public b;
- β ^^^^^^^
- 4 β protected private c;
- 5 β public protected d;
-
-duplicates-access-modifier.ts:4:13 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ Accessibility modifier already seen.
-
- 2 β public public a;
- 3 β private public b;
- > 4 β protected private c;
- β ^^^^^^^
- 5 β public protected d;
- 6 β public protected private e;
-
- i duplicate modifier
-
- 2 β public public a;
- 3 β private public b;
- > 4 β protected private c;
- β ^^^^^^^
- 5 β public protected d;
- 6 β public protected private e;
-
- i first modifier
-
- 2 β public public a;
- 3 β private public b;
- > 4 β protected private c;
- β ^^^^^^^^^
- 5 β public protected d;
- 6 β public protected private e;
-
-duplicates-access-modifier.ts:5:10 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ Accessibility modifier already seen.
-
- 3 β private public b;
- 4 β protected private c;
- > 5 β public protected d;
- β ^^^^^^^^^
- 6 β public protected private e;
- 7 β }
-
- i duplicate modifier
-
- 3 β private public b;
- 4 β protected private c;
- > 5 β public protected d;
- β ^^^^^^^^^
- 6 β public protected private e;
- 7 β }
-
- i first modifier
-
- 3 β private public b;
- 4 β protected private c;
- > 5 β public protected d;
- β ^^^^^^
- 6 β public protected private e;
- 7 β }
-
-duplicates-access-modifier.ts:6:10 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ Accessibility modifier already seen.
-
- 4 β protected private c;
- 5 β public protected d;
- > 6 β public protected private e;
- β ^^^^^^^^^
- 7 β }
- 8 β
-
- i duplicate modifier
-
- 4 β protected private c;
- 5 β public protected d;
- > 6 β public protected private e;
- β ^^^^^^^^^
- 7 β }
- 8 β
-
- i first modifier
-
- 4 β protected private c;
- 5 β public protected d;
- > 6 β public protected private e;
- β ^^^^^^
- 7 β }
- 8 β
-
-duplicates-access-modifier.ts:6:20 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ Accessibility modifier already seen.
-
- 4 β protected private c;
- 5 β public protected d;
- > 6 β public protected private e;
- β ^^^^^^^
- 7 β }
- 8 β
-
- i duplicate modifier
-
- 4 β protected private c;
- 5 β public protected d;
- > 6 β public protected private e;
- β ^^^^^^^
- 7 β }
- 8 β
-
- i first modifier
-
- 4 β protected private c;
- 5 β public protected d;
- > 6 β public protected private e;
- β ^^^^^^^^^
- 7 β }
- 8 β
-
-
-```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/empty-method-body.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/empty-method-body.ts.snap
index cb1607b05490..962a2e3e034c 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/empty-method-body.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/empty-method-body.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/class/empty-method-body.ts
---
-
# Input
```ts
@@ -54,5 +53,3 @@ class Test {
foo(/* 2 */) /* 3 */;
}
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/quoted-property.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/quoted-property.ts.snap
index 6e06f7644b75..ad36315c6069 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/class/quoted-property.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/class/quoted-property.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/class/quoted-property.ts
---
-
# Input
```ts
@@ -32,5 +31,3 @@ class User {
username: string;
}
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/declare_function.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/declare_function.ts.snap
index 65f68b3a9621..929197d80655 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/declare_function.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/declare_function.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/comments/declare_function.ts
---
-
# Input
```ts
@@ -43,5 +42,3 @@ declare function /* foo */ f(/* baz */ a /* taz */) /* bar */;
```
3: // TODO this is a very very very very long comment that makes it go > 80 columns
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/mapped_types.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/mapped_types.ts.snap
index 5d7398e5abad..a6429109628e 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/mapped_types.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/mapped_types.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/comments/mapped_types.ts
---
-
# Input
```ts
@@ -116,5 +115,3 @@ type L = { [l in L /* commentL */]: string };
type M = { [m in M] /* commentG */ : string };
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/method_types.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/method_types.ts.snap
index 3f00d5657f9d..fdb7c29f812e 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/method_types.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/method_types.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/comments/method_types.ts
---
-
# Input
```ts
@@ -138,5 +137,3 @@ abstract class Test {
abstract foo13 /* foo */(/* bar */); /* baz */
}
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/type-parameters.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/type-parameters.ts.snap
index 96b04ca60f8d..45c9ee0cc222 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/type-parameters.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/comments/type-parameters.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/comments/type-parameters.ts
---
-
# Input
```ts
@@ -277,5 +276,3 @@ type-parameters.ts:29:1 parse ββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conditional-types/parentheses.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conditional-types/parentheses.ts.snap
index f2b5ad9df95a..d7d81ae9951c 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conditional-types/parentheses.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conditional-types/parentheses.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conditional-types/parentheses.ts
---
-
# Input
```ts
@@ -163,5 +162,3 @@ parentheses.ts:18:45 parse βββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations2.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations2.ts.snap
index 73abe02bf0a4..6a1ff6feac82 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations2.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations2.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractInstantiations2.ts
---
-
# Input
```ts
@@ -146,5 +145,3 @@ classAbstractInstantiations2.ts:49:5 parse ββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts.snap
index a4a489496000..b1a5b07cb5bb 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts
---
-
# Input
```ts
@@ -239,5 +238,3 @@ classAbstractMixedWithModifiers.ts:14:12 parse βββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractProperties.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractProperties.ts.snap
index 3dc06e215799..a217db5ad071 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractProperties.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractProperties.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conformance/classes/classDeclarations/classAbstractKeyword/classAbstractProperties.ts
---
-
# Input
```ts
@@ -121,5 +120,3 @@ classAbstractProperties.ts:12:5 parse ββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyInConstructorParameters.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyInConstructorParameters.ts.snap
index cd824ba5f38d..88af00b2b86b 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyInConstructorParameters.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyInConstructorParameters.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyInConstructorParameters.ts
---
-
# Input
```ts
@@ -86,5 +85,3 @@ readonlyInConstructorParameters.ts:7:26 parse βββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyReadonly.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyReadonly.ts.snap
index 2df484d715ad..5bec88bd4659 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyReadonly.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyReadonly.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conformance/classes/constructorDeclarations/constructorParameters/readonlyReadonly.ts
---
-
# Input
```ts
@@ -92,5 +91,3 @@ readonlyReadonly.ts:3:26 parse ββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement21.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement21.ts.snap
index 34fb5a594af2..55edfb938fed 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement21.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement21.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement21.ts
---
-
# Input
```ts
@@ -51,5 +50,3 @@ parserES5ForOfStatement21.ts:2:15 parse βββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/custom/abstract/abstractProperties.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/custom/abstract/abstractProperties.ts.snap
index 3dfd2ccb037d..a7058d371841 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/custom/abstract/abstractProperties.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/custom/abstract/abstractProperties.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/custom/abstract/abstractProperties.ts
---
-
# Input
```ts
@@ -226,5 +225,3 @@ abstractProperties.ts:7:12 parse βββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts
deleted file mode 100644
index 34c28e8fc893..000000000000
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-// Invalid, but recoverable
-declare function foo() {}
-declare function bar() {
- // comment
-}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts.prettier-snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts.prettier-snap
deleted file mode 100644
index 97ad8eebeb3a..000000000000
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts.prettier-snap
+++ /dev/null
@@ -1,5 +0,0 @@
-// Invalid, but recoverable
-declare function foo() {};
-declare function bar() {
- // comment
-};
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts.snap
deleted file mode 100644
index 2e628b578e6d..000000000000
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/declare_function_with_body.ts.snap
+++ /dev/null
@@ -1,75 +0,0 @@
----
-source: crates/biome_formatter_test/src/snapshot_builder.rs
-info: typescript/declare/declare_function_with_body.ts
----
-
-# Input
-
-```ts
-// Invalid, but recoverable
-declare function foo() {}
-declare function bar() {
- // comment
-}
-
-```
-
-
-# Prettier differences
-
-```diff
---- Prettier
-+++ Biome
-@@ -1,5 +1,5 @@
- // Invalid, but recoverable
--declare function foo() {};
-+declare function foo() {}
- declare function bar() {
- // comment
--};
-+}
-```
-
-# Output
-
-```ts
-// Invalid, but recoverable
-declare function foo() {}
-declare function bar() {
- // comment
-}
-```
-
-# Errors
-```
-declare_function_with_body.ts:2:24 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ A 'declare' function cannot have a function body
-
- 1 β // Invalid, but recoverable
- > 2 β declare function foo() {}
- β ^^
- 3 β declare function bar() {
- 4 β // comment
-
- i remove this body
-
-declare_function_with_body.ts:3:24 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
- Γ A 'declare' function cannot have a function body
-
- 1 β // Invalid, but recoverable
- 2 β declare function foo() {}
- > 3 β declare function bar() {
- β ^
- > 4 β // comment
- > 5 β }
- β ^
- 6 β
-
- i remove this body
-
-
-```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/object-type-in-declare-function.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/object-type-in-declare-function.ts.snap
index e51cf8dee40b..aad34900040d 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/object-type-in-declare-function.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/object-type-in-declare-function.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/declare/object-type-in-declare-function.ts
---
-
# Input
```ts
@@ -61,5 +60,3 @@ declare function bar(
...x: { a: boolean; b: string; c: number }
): Promise>;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/trailing-comma/function-rest-trailing-comma.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/trailing-comma/function-rest-trailing-comma.ts.snap
index b18a82bd45d2..9789e09cba5a 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/trailing-comma/function-rest-trailing-comma.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/declare/trailing-comma/function-rest-trailing-comma.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/declare/trailing-comma/function-rest-trailing-comma.ts
---
-
# Input
```ts
@@ -60,5 +59,3 @@ function-rest-trailing-comma.ts:2:22 parse ββββββββββββ
```
2: declare function foo(...long_long_long_long_long_long_long_long_long_long_long_long_long_long_long_args: any[], )
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/angular.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/angular.ts.snap
index c395d0bd56eb..ff36dea2f0e2 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/angular.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/angular.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/decorators-ts/angular.ts
---
-
# Input
```ts
@@ -45,5 +44,3 @@ export class HeroButtonComponent {
@Input() label: string;
}
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/typeorm.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/typeorm.ts.snap
index 3eeee038bbb8..e385e604869f 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/typeorm.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators-ts/typeorm.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/decorators-ts/typeorm.ts
---
-
# Input
```ts
@@ -77,5 +76,3 @@ export class Board {
topics: Topic[];
}
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators/decorators-comments.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators/decorators-comments.ts.snap
index 542e7943057d..ad87011d3459 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators/decorators-comments.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/decorators/decorators-comments.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/decorators/decorators-comments.ts
---
-
# Input
```ts
@@ -117,5 +116,3 @@ decorators-comments.ts:35:5 parse βββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/definite/without-annotation.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/definite/without-annotation.ts.snap
index 19372353131b..7229405ddea7 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/definite/without-annotation.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/definite/without-annotation.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/definite/without-annotation.ts
---
-
# Input
```ts
@@ -177,5 +176,3 @@ without-annotation.ts:12:17 parse βββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/generic.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/generic.ts.snap
index e23cce91f469..6bb9a6100014 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/generic.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/generic.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/error-recovery/generic.ts
---
-
# Input
```ts
@@ -240,5 +239,3 @@ generic.ts:18:10 parse βββββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/index-signature.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/index-signature.ts.snap
index 4f5422619611..f2346a34ae0c 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/index-signature.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/index-signature.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/error-recovery/index-signature.ts
---
-
# Input
```ts
@@ -446,5 +445,3 @@ index-signature.ts:14:99 parse ββββββββββββββββ
17: { [loooooooooooooooooooooooooong: string, looooooooooooooooong: string]: string;
23: looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong: string
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/jsdoc_only_types.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/jsdoc_only_types.ts.snap
index cc02890c0147..f37a61b9b71d 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/jsdoc_only_types.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/error-recovery/jsdoc_only_types.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/error-recovery/jsdoc_only_types.ts
---
-
# Input
```ts
@@ -242,5 +241,3 @@ jsdoc_only_types.ts:8:8 parse ββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/import-export/type-modifier.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/import-export/type-modifier.ts.snap
index cae8e15a026a..42d02ab6142a 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/import-export/type-modifier.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/import-export/type-modifier.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/import-export/type-modifier.ts
---
-
# Input
```ts
@@ -72,5 +71,3 @@ type-modifier.ts:15:8 parse βββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts
index d75c58eb15cb..728724c4014a 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts
@@ -5,3 +5,5 @@ type X6 = T extends [infer U, infer U extends number] ? MustBeNumber : nev
type X7 = T extends [infer U extends string, infer U extends number] ? U : never;
type X8 = T extends infer U extends number ? U : T;
type X9 = T extends (infer U extends number ? U : T) ? U : T;
+type X10 = T extends (infer U extends number) | { a: infer U extends number } ? U : never
+type X11 = T extends (infer U extends number) & { a: infer U extends number } ? U : never
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap
index 02ce8729b7a5..e83df1d56556 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap
@@ -13,3 +13,9 @@ type X7 = T extends [infer U extends string, infer U extends number]
: never;
type X8 = T extends infer U extends number ? U : T;
type X9 = T extends (infer U extends number ? U : T) ? U : T;
+type X10 = T extends infer U extends number | { a: infer U extends number }
+ ? U
+ : never;
+type X11 = T extends infer U extends number & { a: infer U extends number }
+ ? U
+ : never;
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap-original b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap-original
new file mode 100644
index 000000000000..b696e109652a
--- /dev/null
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.prettier-snap-original
@@ -0,0 +1,21 @@
+type X3 = T extends [infer U extends number] ? MustBeNumber : never;
+type X4 = T extends [infer U extends number, infer U extends number]
+ ? MustBeNumber
+ : never;
+type X5 = T extends [infer U extends number, infer U]
+ ? MustBeNumber
+ : never;
+type X6 = T extends [infer U, infer U extends number]
+ ? MustBeNumber
+ : never;
+type X7 = T extends [infer U extends string, infer U extends number]
+ ? U
+ : never;
+type X8 = T extends infer U extends number ? U : T;
+type X9 = T extends (infer U extends number ? U : T) ? U : T;
+type X10 = T extends (infer U extends number) | { a: infer U extends number }
+ ? U
+ : never;
+type X11 = T extends (infer U extends number) & { a: infer U extends number }
+ ? U
+ : never;
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.snap
new file mode 100644
index 000000000000..bd8131d6110a
--- /dev/null
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/infer-extends/basic.ts.snap
@@ -0,0 +1,64 @@
+---
+source: crates/biome_formatter_test/src/snapshot_builder.rs
+info: typescript/infer-extends/basic.ts
+---
+# Input
+
+```ts
+type X3 = T extends [infer U extends number] ? MustBeNumber : never;
+type X4 = T extends [infer U extends number, infer U extends number] ? MustBeNumber : never;
+type X5 = T extends [infer U extends number, infer U] ? MustBeNumber : never;
+type X6 = T extends [infer U, infer U extends number] ? MustBeNumber : never;
+type X7 = T extends [infer U extends string, infer U extends number] ? U : never;
+type X8 = T extends infer U extends number ? U : T;
+type X9 = T extends (infer U extends number ? U : T) ? U : T;
+type X10 = T extends (infer U extends number) | { a: infer U extends number } ? U : never
+type X11 = T extends (infer U extends number) & { a: infer U extends number } ? U : never
+
+```
+
+
+# Prettier differences
+
+```diff
+--- Prettier
++++ Biome
+@@ -13,9 +13,9 @@
+ : never;
+ type X8 = T extends infer U extends number ? U : T;
+ type X9 = T extends (infer U extends number ? U : T) ? U : T;
+-type X10 = T extends infer U extends number | { a: infer U extends number }
++type X10 = T extends (infer U extends number) | { a: infer U extends number }
+ ? U
+ : never;
+-type X11 = T extends infer U extends number & { a: infer U extends number }
++type X11 = T extends (infer U extends number) & { a: infer U extends number }
+ ? U
+ : never;
+```
+
+# Output
+
+```ts
+type X3 = T extends [infer U extends number] ? MustBeNumber : never;
+type X4 = T extends [infer U extends number, infer U extends number]
+ ? MustBeNumber
+ : never;
+type X5 = T extends [infer U extends number, infer U]
+ ? MustBeNumber
+ : never;
+type X6 = T extends [infer U, infer U extends number]
+ ? MustBeNumber
+ : never;
+type X7 = T extends [infer U extends string, infer U extends number]
+ ? U
+ : never;
+type X8 = T extends infer U extends number ? U : T;
+type X9 = T extends (infer U extends number ? U : T) ? U : T;
+type X10 = T extends (infer U extends number) | { a: infer U extends number }
+ ? U
+ : never;
+type X11 = T extends (infer U extends number) & { a: infer U extends number }
+ ? U
+ : never;
+```
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/interface2/break/break.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/interface2/break/break.ts.snap
index 7fec5dc10f9d..683c165e6f47 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/interface2/break/break.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/interface2/break/break.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/interface2/break/break.ts
---
-
# Input
```ts
@@ -260,5 +259,3 @@ break.ts:16:1 parse ββββββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/intersection/consistent-with-flow/intersection-parens.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/intersection/consistent-with-flow/intersection-parens.ts.snap
index 4fd3f15fe38b..17923e80b223 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/intersection/consistent-with-flow/intersection-parens.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/intersection/consistent-with-flow/intersection-parens.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/intersection/consistent-with-flow/intersection-parens.ts
---
-
# Input
```ts
@@ -142,5 +141,3 @@ type D4 = /*1*/ a & b;
type D5 = /*1*/ a & b;
type D6 /*0*/ = /*1*/ a & b;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/last-argument-expansion/decorated-function.tsx.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/last-argument-expansion/decorated-function.tsx.snap
index 63f0cf851d86..31cfb7995943 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/last-argument-expansion/decorated-function.tsx.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/last-argument-expansion/decorated-function.tsx.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/last-argument-expansion/decorated-function.tsx
---
-
# Input
```tsx
@@ -225,5 +224,3 @@ const Counter = decorator("foo")(
),
);
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/multiparser-css/issue-6259.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/multiparser-css/issue-6259.ts.snap
index 29ca0b5cfdf6..2f7c5734c695 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/multiparser-css/issue-6259.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/multiparser-css/issue-6259.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/multiparser-css/issue-6259.ts
---
-
# Input
```ts
@@ -46,5 +45,3 @@ const yesFrame = (
}
`;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts b/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts
index 19134b85802c..2ef89445a30c 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts
@@ -7,4 +7,5 @@ class A {
bar: A;
private [baz]
+ readonly [qux]
}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts.prettier-snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts.prettier-snap
index 83ddb971efb1..6cc624285d49 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts.prettier-snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/no-semi/no-semi.ts.prettier-snap
@@ -7,4 +7,5 @@ class A {
bar: A;
private [baz];
+ readonly [qux];
}
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/non-null/optional-chain.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/non-null/optional-chain.ts.snap
index ea9cea5967e9..9c62f686e205 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/non-null/optional-chain.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/non-null/optional-chain.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/non-null/optional-chain.ts
---
-
# Input
```ts
@@ -78,5 +77,3 @@ a?.().b!.c;
a?.b![c?.d!];
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/issue-14238.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/issue-14238.ts.snap
index f7ba6ec632ca..24f6509c61e1 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/issue-14238.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/issue-14238.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/prettier-ignore/issue-14238.ts
---
-
# Input
```ts
@@ -38,5 +37,3 @@ export const foo =
bar as Baz
).qux;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-nested-unions.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-nested-unions.ts.snap
index b1783a6fdc9d..5bc3e650f096 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-nested-unions.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-nested-unions.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/prettier-ignore/prettier-ignore-nested-unions.ts
---
-
# Input
```ts
@@ -104,5 +103,3 @@ export type b =
// baz
| (baz1 & baz2);
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-parenthesized-type.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-parenthesized-type.ts.snap
index 510f4111d38b..631e552a34e9 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-parenthesized-type.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/prettier-ignore/prettier-ignore-parenthesized-type.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/prettier-ignore/prettier-ignore-parenthesized-type.ts
---
-
# Input
```ts
@@ -38,5 +37,3 @@ type Foo =
aa
);
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/satisfies-operators/comments-unstable.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/satisfies-operators/comments-unstable.ts.snap
index 7677ace323ea..a1a719d15742 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/satisfies-operators/comments-unstable.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/satisfies-operators/comments-unstable.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/satisfies-operators/comments-unstable.ts
---
-
# Input
```ts
@@ -43,5 +42,3 @@ const t1 = {
// Comment
Record;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/test-declarations/test_declarations.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/test-declarations/test_declarations.ts.snap
index bc18cd75287c..d67da378d821 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/test-declarations/test_declarations.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/test-declarations/test_declarations.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/test-declarations/test_declarations.ts
---
-
# Input
```ts
@@ -41,5 +40,3 @@ test("does something really long and complicated so I have to write a very long
```
1: test("does something really long and complicated so I have to write a very long name for the test", <
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/trailing.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/trailing.ts.snap
index 33b3a5fad474..89e351b5e7df 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/trailing.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/trailing.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/trailing-comma/trailing.ts
---
-
# Input
```ts
@@ -93,5 +92,3 @@ trailing.ts:15:10 parse ββββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/type-parameters-vs-arguments.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/type-parameters-vs-arguments.ts.snap
index 9f850bb6ceb9..17590ba731b2 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/type-parameters-vs-arguments.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/trailing-comma/type-parameters-vs-arguments.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/trailing-comma/type-parameters-vs-arguments.ts
---
-
# Input
```ts
@@ -59,5 +58,3 @@ const instance = new FooClass<
string, // [ts] Trailing comma not allowed.
>();
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/type-arguments-bit-shift-left-like/1.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/type-arguments-bit-shift-left-like/1.ts.snap
index 27a6f43a3860..c6da529d84a8 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/type-arguments-bit-shift-left-like/1.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/type-arguments-bit-shift-left-like/1.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/type-arguments-bit-shift-left-like/1.ts
---
-
# Input
```ts
@@ -26,5 +25,3 @@ f<<(x)
```ts
f << x;
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/const.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/const.ts.snap
index 74284ed81386..2150fe1336d4 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/const.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/const.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/typeparams/const.ts
---
-
# Input
```ts
@@ -153,5 +152,3 @@ const.ts:26:13 parse βββββββββββββββββββ
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/empty-parameters-with-arrow-function/issue-13817.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/empty-parameters-with-arrow-function/issue-13817.ts.snap
index f4a1c57ba52f..68efc5403e6f 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/empty-parameters-with-arrow-function/issue-13817.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/empty-parameters-with-arrow-function/issue-13817.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/typeparams/empty-parameters-with-arrow-function/issue-13817.ts
---
-
# Input
```ts
@@ -124,5 +123,3 @@ issue-13817.ts:10:1 parse ββββββββββββββββββ
```
4: const xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxxxxxxxxxxxxxxxx* comment */> =
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/line-breaking-after-extends-2.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/line-breaking-after-extends-2.ts.snap
index c2633cf264a4..d5e4ef88ab5c 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/line-breaking-after-extends-2.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/typeparams/line-breaking-after-extends-2.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/typeparams/line-breaking-after-extends-2.ts
---
-
# Input
```ts
@@ -96,5 +95,3 @@ function makeChainWalker<
},
>() {}
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/union/consistent-with-flow/prettier-ignore.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/union/consistent-with-flow/prettier-ignore.ts.snap
index fd7752d65834..5c3485b9da51 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/union/consistent-with-flow/prettier-ignore.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/union/consistent-with-flow/prettier-ignore.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/union/consistent-with-flow/prettier-ignore.ts
---
-
# Input
```ts
@@ -96,5 +95,3 @@ export type c =
// qux
| (qux1 & qux2);
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/union/single-type/single-type.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/union/single-type/single-type.ts.snap
index 57b536db4f98..c6c00fb51a41 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/union/single-type/single-type.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/union/single-type/single-type.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/union/single-type/single-type.ts
---
-
# Input
```ts
@@ -41,5 +40,3 @@ type A1 =
key: string;
};
```
-
-
diff --git a/crates/biome_js_formatter/tests/specs/prettier/typescript/union/union-parens.ts.snap b/crates/biome_js_formatter/tests/specs/prettier/typescript/union/union-parens.ts.snap
index cdf69ffbfb58..d5c7c002603d 100644
--- a/crates/biome_js_formatter/tests/specs/prettier/typescript/union/union-parens.ts.snap
+++ b/crates/biome_js_formatter/tests/specs/prettier/typescript/union/union-parens.ts.snap
@@ -2,7 +2,6 @@
source: crates/biome_formatter_test/src/snapshot_builder.rs
info: typescript/union/union-parens.ts
---
-
# Input
```ts
@@ -270,5 +269,3 @@ type C6 /*0*/ = /*1*/ a | b;
type Ctor = (new () => X) | Y;
```
-
-
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_0.3e+.json b/crates/biome_json_parser/tests/json_test_suite/err/number_0.3e_plus.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_0.3e+.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_0.3e_plus.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_0.3e+.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_0.3e_plus.json.snap
similarity index 84%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_0.3e+.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_0.3e_plus.json.snap
index 9a2afbd54dfb..989edc105121 100644
--- a/crates/biome_json_parser/tests/json_test_suite/err/number_0.3e+.json.snap
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_0.3e_plus.json.snap
@@ -2,7 +2,6 @@
source: crates/biome_json_parser/tests/spec_test.rs
expression: snapshot
---
-
## Input
```json
@@ -48,7 +47,7 @@ JsonRoot {
## Diagnostics
```
-number_0.3e+.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_0.3e_plus.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ Missing exponent
@@ -61,5 +60,3 @@ number_0.3e+.json:1:2 parse βββββββββββββββββ
β ^
```
-
-
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E+.json b/crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E_plus.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E+.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E_plus.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E+.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E_plus.json.snap
similarity index 85%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E+.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E_plus.json.snap
index 4b4715afdc41..1e8445eceec6 100644
--- a/crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E+.json.snap
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_0_capital_E_plus.json.snap
@@ -2,7 +2,6 @@
source: crates/biome_json_parser/tests/spec_test.rs
expression: snapshot
---
-
## Input
```json
@@ -48,7 +47,7 @@ JsonRoot {
## Diagnostics
```
-number_0_capital_E+.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_0_capital_E_plus.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ Missing exponent
@@ -61,5 +60,3 @@ number_0_capital_E+.json:1:2 parse βββββββββββββββ
β ^
```
-
-
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_0e+.json b/crates/biome_json_parser/tests/json_test_suite/err/number_0e+_missing_digit.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_0e+.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_0e+_missing_digit.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_0e+.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_0e+_missing_digit.json.snap
similarity index 84%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_0e+.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_0e+_missing_digit.json.snap
index af49ae5b24f7..0657d058bc75 100644
--- a/crates/biome_json_parser/tests/json_test_suite/err/number_0e+.json.snap
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_0e+_missing_digit.json.snap
@@ -2,7 +2,6 @@
source: crates/biome_json_parser/tests/spec_test.rs
expression: snapshot
---
-
## Input
```json
@@ -48,7 +47,7 @@ JsonRoot {
## Diagnostics
```
-number_0e+.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_0e+_missing_digit.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ Missing exponent
@@ -61,5 +60,3 @@ number_0e+.json:1:2 parse ββββββββββββββββββ
β ^
```
-
-
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-_missing_digit.json.snap
similarity index 84%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-_missing_digit.json.snap
index 4365773531dc..1e91f1a1e978 100644
--- a/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-.json.snap
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-_missing_digit.json.snap
@@ -2,7 +2,6 @@
source: crates/biome_json_parser/tests/spec_test.rs
expression: snapshot
---
-
## Input
```json
@@ -48,7 +47,7 @@ JsonRoot {
## Diagnostics
```
-number_1.0e-.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_1.0e-_missing_digit.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ Missing exponent
@@ -61,5 +60,3 @@ number_1.0e-.json:1:2 parse βββββββββββββββββ
β ^
```
-
-
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-.json b/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e_minus.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_1.0e-.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_1.0e_minus.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e_minus.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e_minus.json.snap
new file mode 100644
index 000000000000..d4d99fde103a
--- /dev/null
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_1.0e_minus.json.snap
@@ -0,0 +1,62 @@
+---
+source: crates/biome_json_parser/tests/spec_test.rs
+expression: snapshot
+---
+## Input
+
+```json
+[1.0e-]
+```
+
+
+## AST
+
+```
+JsonRoot {
+ bom_token: missing (optional),
+ value: JsonArrayValue {
+ l_brack_token: L_BRACK@0..1 "[" [] [],
+ elements: JsonArrayElementList [
+ JsonBogusValue {
+ items: [
+ ERROR_TOKEN@1..6 "1.0e-" [] [],
+ ],
+ },
+ ],
+ r_brack_token: R_BRACK@6..7 "]" [] [],
+ },
+ eof_token: EOF@7..7 "" [] [],
+}
+```
+
+## CST
+
+```
+0: JSON_ROOT@0..7
+ 0: (empty)
+ 1: JSON_ARRAY_VALUE@0..7
+ 0: L_BRACK@0..1 "[" [] []
+ 1: JSON_ARRAY_ELEMENT_LIST@1..6
+ 0: JSON_BOGUS_VALUE@1..6
+ 0: ERROR_TOKEN@1..6 "1.0e-" [] []
+ 2: R_BRACK@6..7 "]" [] []
+ 2: EOF@7..7 "" [] []
+
+```
+
+## Diagnostics
+
+```
+number_1.0e_minus.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+
+ Γ Missing exponent
+
+ > 1 β [1.0e-]
+ β ^^^^^
+
+ i Expected a digit as the exponent
+
+ > 1 β [1.0e-]
+ β ^
+
+```
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_-NaN.json b/crates/biome_json_parser/tests/json_test_suite/err/number_neg_NaN.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_-NaN.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_neg_NaN.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_-NaN.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_neg_NaN.json.snap
similarity index 86%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_-NaN.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_neg_NaN.json.snap
index 472396061632..4fa3b302a090 100644
--- a/crates/biome_json_parser/tests/json_test_suite/err/number_-NaN.json.snap
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_neg_NaN.json.snap
@@ -56,14 +56,14 @@ JsonRoot {
## Diagnostics
```
-number_-NaN.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_neg_NaN.json:1:2 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ Minus must be followed by a digit
> 1 β [-NaN]
β ^
-number_-NaN.json:1:3 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_neg_NaN.json:1:3 parse ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ expected `,` but instead found `NaN`
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_+Inf.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_p-lus_Inf.json.snap
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_+Inf.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_p-lus_Inf.json.snap
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_+1.json b/crates/biome_json_parser/tests/json_test_suite/err/number_plus_1.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_+1.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_plus_1.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_+1.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_plus_1.json.snap
similarity index 77%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_+1.json.snap
rename to crates/biome_json_parser/tests/json_test_suite/err/number_plus_1.json.snap
index 17b2697a0904..a8b25d99519d 100644
--- a/crates/biome_json_parser/tests/json_test_suite/err/number_+1.json.snap
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_plus_1.json.snap
@@ -2,7 +2,6 @@
source: crates/biome_json_parser/tests/spec_test.rs
expression: snapshot
---
-
## Input
```json
@@ -55,14 +54,14 @@ JsonRoot {
## Diagnostics
```
-number_+1.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_plus_1.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ unexpected character `+`
> 1 β [+1]
β ^
-number_+1.json:1:3 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+number_plus_1.json:1:3 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Γ expected `,` but instead found `1`
@@ -72,5 +71,3 @@ number_+1.json:1:3 parse ββββββββββββββββββ
i Remove 1
```
-
-
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_+Inf.json b/crates/biome_json_parser/tests/json_test_suite/err/number_plus_Inf.json
similarity index 100%
rename from crates/biome_json_parser/tests/json_test_suite/err/number_+Inf.json
rename to crates/biome_json_parser/tests/json_test_suite/err/number_plus_Inf.json
diff --git a/crates/biome_json_parser/tests/json_test_suite/err/number_plus_Inf.json.snap b/crates/biome_json_parser/tests/json_test_suite/err/number_plus_Inf.json.snap
new file mode 100644
index 000000000000..1f82d827fd46
--- /dev/null
+++ b/crates/biome_json_parser/tests/json_test_suite/err/number_plus_Inf.json.snap
@@ -0,0 +1,75 @@
+---
+source: crates/biome_json_parser/tests/spec_test.rs
+expression: snapshot
+---
+## Input
+
+```json
+[+Inf]
+```
+
+
+## AST
+
+```
+JsonRoot {
+ bom_token: missing (optional),
+ value: JsonArrayValue {
+ l_brack_token: L_BRACK@0..1 "[" [] [],
+ elements: JsonArrayElementList [
+ JsonBogusValue {
+ items: [
+ ERROR_TOKEN@1..2 "+" [] [],
+ ],
+ },
+ missing separator,
+ JsonBogusValue {
+ items: [
+ IDENT@2..5 "Inf" [] [],
+ ],
+ },
+ ],
+ r_brack_token: R_BRACK@5..6 "]" [] [],
+ },
+ eof_token: EOF@6..6 "" [] [],
+}
+```
+
+## CST
+
+```
+0: JSON_ROOT@0..6
+ 0: (empty)
+ 1: JSON_ARRAY_VALUE@0..6
+ 0: L_BRACK@0..1 "[" [] []
+ 1: JSON_ARRAY_ELEMENT_LIST@1..5
+ 0: JSON_BOGUS_VALUE@1..2
+ 0: ERROR_TOKEN@1..2 "+" [] []
+ 1: (empty)
+ 2: JSON_BOGUS_VALUE@2..5
+ 0: IDENT@2..5 "Inf" [] []
+ 2: R_BRACK@5..6 "]" [] []
+ 2: EOF@6..6 "" [] []
+
+```
+
+## Diagnostics
+
+```
+number_plus_Inf.json:1:2 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+
+ Γ unexpected character `+`
+
+ > 1 β [+Inf]
+ β ^
+
+number_plus_Inf.json:1:3 parse βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+
+ Γ expected `,` but instead found `Inf`
+
+ > 1 β [+Inf]
+ β ^^^
+
+ i Remove Inf
+
+```
diff --git a/crates/biome_lsp/src/handlers/analysis.rs b/crates/biome_lsp/src/handlers/analysis.rs
index 920f8c4b0237..1a8f23148fa4 100644
--- a/crates/biome_lsp/src/handlers/analysis.rs
+++ b/crates/biome_lsp/src/handlers/analysis.rs
@@ -237,6 +237,8 @@ fn fix_all(
path: biome_path,
fix_file_mode: FixFileMode::SafeFixes,
should_format,
+ only: vec![],
+ skip: vec![],
})?;
if fixed.actions.is_empty() {
diff --git a/crates/biome_service/src/file_handlers/css.rs b/crates/biome_service/src/file_handlers/css.rs
index 21abbf24c4bd..a7a469047a0d 100644
--- a/crates/biome_service/src/file_handlers/css.rs
+++ b/crates/biome_service/src/file_handlers/css.rs
@@ -167,7 +167,7 @@ impl ServiceLanguage for CssLanguage {
rules: global
.map(|g| to_analyzer_rules(g, file_path.as_path()))
.unwrap_or_default(),
- globals: vec![],
+ globals: Vec::new(),
preferred_quote,
jsx_runtime: None,
};
@@ -362,7 +362,7 @@ fn lint(params: LintParams) -> LintResults {
.collect::>()
}
} else {
- vec![]
+ Vec::new()
};
let mut syntax_visitor = SyntaxVisitor::default();
@@ -499,7 +499,9 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
let Some(_) = language.to_css_file_source() else {
error!("Could not determine the file source of the file");
- return PullActionsResult { actions: vec![] };
+ return PullActionsResult {
+ actions: Vec::new(),
+ };
};
trace!("CSS runs the analyzer");
@@ -526,45 +528,60 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
/// If applies all the safe fixes to the given syntax tree.
pub(crate) fn fix_all(params: FixAllParams) -> Result {
- let FixAllParams {
- parse,
- fix_file_mode,
- workspace,
- should_format,
- biome_path,
- manifest: _,
- document_file_source,
- } = params;
-
- let settings = workspace.settings();
- let Some(settings) = settings else {
- let tree: CssRoot = parse.tree();
-
+ let mut tree: CssRoot = params.parse.tree();
+ let Some(settings) = params.workspace.settings() else {
return Ok(FixFileResult {
- actions: vec![],
+ actions: Vec::new(),
errors: 0,
skipped_suggested_fixes: 0,
code: tree.syntax().to_string(),
});
};
- let mut tree: CssRoot = parse.tree();
- let mut actions = Vec::new();
-
// Compute final rules (taking `overrides` into account)
let rules = settings.as_rules(params.biome_path.as_path());
- let rule_filter_list = rules
- .as_ref()
- .map(|rules| rules.as_enabled_rules())
- .unwrap_or_default()
+
+ let mut enabled_rules = if !params.only.is_empty() {
+ params
+ .only
+ .into_iter()
+ .map(|selector| selector.into())
+ .collect::>()
+ } else {
+ rules
+ .as_ref()
+ .map(|rules| rules.as_enabled_rules())
+ .unwrap_or_default()
+ .into_iter()
+ .collect::>()
+ };
+
+ let mut syntax_visitor = SyntaxVisitor::default();
+ visit_registry(&mut syntax_visitor);
+ enabled_rules.extend(syntax_visitor.enabled_rules);
+
+ let disabled_rules = params
+ .skip
.into_iter()
+ .map(|selector| selector.into())
.collect::>();
- let filter = AnalysisFilter::from_enabled_rules(rule_filter_list.as_slice());
+ let filter = AnalysisFilter {
+ categories: RuleCategoriesBuilder::default()
+ .with_syntax()
+ .with_lint()
+ .build(),
+ enabled_rules: Some(enabled_rules.as_slice()),
+ disabled_rules: &disabled_rules,
+ range: None,
+ };
+
+ let mut actions = Vec::new();
let mut skipped_suggested_fixes = 0;
let mut errors: u16 = 0;
- let analyzer_options =
- workspace.analyzer_options::(biome_path, &document_file_source);
+ let analyzer_options = params
+ .workspace
+ .analyzer_options::(params.biome_path, ¶ms.document_file_source);
loop {
let (action, _) = analyze(&tree, filter, &analyzer_options, |signal| {
let current_diagnostic = signal.diagnostic();
@@ -581,7 +598,7 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result {
if action.applicability == Applicability::MaybeIncorrect {
skipped_suggested_fixes += 1;
@@ -632,9 +649,12 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result {
- let code = if should_format {
+ let code = if params.should_format {
format_node(
- workspace.format_options::(biome_path, &document_file_source),
+ params.workspace.format_options::(
+ params.biome_path,
+ ¶ms.document_file_source,
+ ),
tree.syntax(),
)?
.print()?
diff --git a/crates/biome_service/src/file_handlers/graphql.rs b/crates/biome_service/src/file_handlers/graphql.rs
index 8a01b9fc605b..630fa04c9e58 100644
--- a/crates/biome_service/src/file_handlers/graphql.rs
+++ b/crates/biome_service/src/file_handlers/graphql.rs
@@ -320,19 +320,19 @@ fn lint(params: LintParams) -> LintResults {
.collect::>()
}
} else {
- vec![]
+ Vec::new()
};
+ let mut syntax_visitor = SyntaxVisitor::default();
+ visit_registry(&mut syntax_visitor);
+ enabled_rules.extend(syntax_visitor.enabled_rules);
+
let disabled_rules = params
.skip
.into_iter()
.map(|selector| selector.into())
.collect::>();
- let mut syntax_visitor = SyntaxVisitor::default();
- visit_registry(&mut syntax_visitor);
- enabled_rules.extend(syntax_visitor.enabled_rules);
-
let filter = AnalysisFilter {
categories: params.categories,
enabled_rules: Some(enabled_rules.as_slice()),
@@ -451,7 +451,9 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
let Some(_) = language.to_graphql_file_source() else {
error!("Could not determine the file source of the file");
- return PullActionsResult { actions: vec![] };
+ return PullActionsResult {
+ actions: Vec::new(),
+ };
};
trace!("GraphQL runs the analyzer");
@@ -478,45 +480,59 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
/// If applies all the safe fixes to the given syntax tree.
pub(crate) fn fix_all(params: FixAllParams) -> Result {
- let FixAllParams {
- parse,
- fix_file_mode,
- workspace,
- should_format: _, // we don't have a formatter yet
- biome_path,
- manifest: _,
- document_file_source,
- } = params;
-
- let settings = workspace.settings();
- let Some(settings) = settings else {
- let tree: GraphqlRoot = parse.tree();
-
+ let mut tree: GraphqlRoot = params.parse.tree();
+ let Some(settings) = params.workspace.settings() else {
return Ok(FixFileResult {
- actions: vec![],
+ actions: Vec::new(),
errors: 0,
skipped_suggested_fixes: 0,
code: tree.syntax().to_string(),
});
};
- let mut tree: GraphqlRoot = parse.tree();
- let mut actions = Vec::new();
-
// Compute final rules (taking `overrides` into account)
let rules = settings.as_rules(params.biome_path.as_path());
- let rule_filter_list = rules
- .as_ref()
- .map(|rules| rules.as_enabled_rules())
- .unwrap_or_default()
+ let mut enabled_rules = if !params.only.is_empty() {
+ params
+ .only
+ .into_iter()
+ .map(|selector| selector.into())
+ .collect::>()
+ } else {
+ rules
+ .as_ref()
+ .map(|rules| rules.as_enabled_rules())
+ .unwrap_or_default()
+ .into_iter()
+ .collect::>()
+ };
+
+ let mut syntax_visitor = SyntaxVisitor::default();
+ visit_registry(&mut syntax_visitor);
+ enabled_rules.extend(syntax_visitor.enabled_rules);
+
+ let disabled_rules = params
+ .skip
.into_iter()
+ .map(|selector| selector.into())
.collect::>();
- let filter = AnalysisFilter::from_enabled_rules(rule_filter_list.as_slice());
+ let filter = AnalysisFilter {
+ categories: RuleCategoriesBuilder::default()
+ .with_syntax()
+ .with_lint()
+ .build(),
+ enabled_rules: Some(enabled_rules.as_slice()),
+ disabled_rules: &disabled_rules,
+ range: None,
+ };
+
+ let mut actions = Vec::new();
let mut skipped_suggested_fixes = 0;
let mut errors: u16 = 0;
- let analyzer_options =
- workspace.analyzer_options::(biome_path, &document_file_source);
+ let analyzer_options = params
+ .workspace
+ .analyzer_options::(params.biome_path, ¶ms.document_file_source);
loop {
let (action, _) = analyze(&tree, filter, &analyzer_options, |signal| {
let current_diagnostic = signal.diagnostic();
@@ -533,7 +549,7 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result {
if action.applicability == Applicability::MaybeIncorrect {
skipped_suggested_fixes += 1;
@@ -584,6 +600,7 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result {
+ // we don't have a formatter yet
// let code = if should_format {
// format_node(
// workspace.format_options::(biome_path, &document_file_source),
diff --git a/crates/biome_service/src/file_handlers/javascript.rs b/crates/biome_service/src/file_handlers/javascript.rs
index 740b6712c19a..f66648634a6a 100644
--- a/crates/biome_service/src/file_handlers/javascript.rs
+++ b/crates/biome_service/src/file_handlers/javascript.rs
@@ -211,7 +211,7 @@ impl ServiceLanguage for JsLanguage {
.unwrap_or_default();
let mut jsx_runtime = None;
- let mut globals = vec![];
+ let mut globals = Vec::new();
if let (Some(overrides), Some(global)) = (overrides, global) {
jsx_runtime = Some(
@@ -411,7 +411,7 @@ pub(crate) fn lint(params: LintParams) -> LintResults {
else {
return LintResults {
errors: 0,
- diagnostics: vec![],
+ diagnostics: Vec::new(),
skipped_diagnostics: 0,
};
};
@@ -430,33 +430,35 @@ pub(crate) fn lint(params: LintParams) -> LintResults {
}
let has_only_filter = !params.only.is_empty();
- let enabled_rules = if has_only_filter {
+ let mut enabled_rules = if has_only_filter {
params
.only
.into_iter()
.map(|selector| selector.into())
.collect::>()
} else {
- let mut rule_filter_list = rules
+ let mut enabled_rules = rules
.as_ref()
.map(|rules| rules.as_enabled_rules())
.unwrap_or_default()
.into_iter()
.collect::>();
if organize_imports_enabled && !params.categories.is_syntax() {
- rule_filter_list.push(RuleFilter::Rule("correctness", "organizeImports"));
+ enabled_rules.push(RuleFilter::Rule("correctness", "organizeImports"));
}
- let mut syntax_visitor = SyntaxVisitor::default();
- visit_registry(&mut syntax_visitor);
- rule_filter_list.extend(syntax_visitor.enabled_rules);
-
- rule_filter_list
+ enabled_rules
};
+
+ let mut syntax_visitor = SyntaxVisitor::default();
+ visit_registry(&mut syntax_visitor);
+ enabled_rules.extend(syntax_visitor.enabled_rules);
+
let disabled_rules = params
.skip
.into_iter()
.map(|selector| selector.into())
.collect::>();
+
let filter = AnalysisFilter {
categories: params.categories,
enabled_rules: Some(enabled_rules.as_slice()),
@@ -589,7 +591,7 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
workspace.analyzer_options::(params.path, ¶ms.language);
let rules = settings.as_rules(params.path);
let mut actions = Vec::new();
- let mut enabled_rules = vec![];
+ let mut enabled_rules = Vec::new();
if settings.organize_imports.enabled {
enabled_rules.push(RuleFilter::Rule("correctness", "organizeImports"));
}
@@ -621,7 +623,9 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
let Some(source_type) = language.to_js_file_source() else {
error!("Could not determine the file source of the file");
- return PullActionsResult { actions: vec![] };
+ return PullActionsResult {
+ actions: Vec::new(),
+ };
};
trace!("Javascript runs the analyzer");
@@ -653,64 +657,68 @@ pub(crate) fn code_actions(params: CodeActionsParams) -> PullActionsResult {
/// If applies all the safe fixes to the given syntax tree.
pub(crate) fn fix_all(params: FixAllParams) -> Result {
- let FixAllParams {
- parse,
- // rules,
- fix_file_mode,
- should_format,
- biome_path,
- // mut filter,
- manifest,
- document_file_source,
- workspace,
- } = params;
-
- let settings = workspace.settings();
- let Some(settings) = settings else {
- let tree: AnyJsRoot = parse.tree();
-
+ let mut tree: AnyJsRoot = params.parse.tree();
+ let Some(settings) = params.workspace.settings() else {
return Ok(FixFileResult {
- actions: vec![],
+ actions: Vec::new(),
errors: 0,
skipped_suggested_fixes: 0,
code: tree.syntax().to_string(),
});
};
+
// Compute final rules (taking `overrides` into account)
let rules = settings.as_rules(params.biome_path.as_path());
- let rule_filter_list = rules
- .as_ref()
- .map(|rules| rules.as_enabled_rules())
- .unwrap_or_default()
+ let enabled_rules = if !params.only.is_empty() {
+ params
+ .only
+ .into_iter()
+ .map(|selector| selector.into())
+ .collect::>()
+ } else {
+ rules
+ .as_ref()
+ .map(|rules| rules.as_enabled_rules())
+ .unwrap_or_default()
+ .into_iter()
+ .collect::>()
+ };
+ let disabled_rules = params
+ .skip
.into_iter()
+ .map(|selector| selector.into())
.collect::>();
- let mut filter = AnalysisFilter::from_enabled_rules(rule_filter_list.as_slice());
+ let filter = AnalysisFilter {
+ categories: RuleCategoriesBuilder::default()
+ .with_syntax()
+ .with_lint()
+ .build(),
+ enabled_rules: Some(enabled_rules.as_slice()),
+ disabled_rules: &disabled_rules,
+ range: None,
+ };
- let Some(file_source) = document_file_source
+ let Some(file_source) = params
+ .document_file_source
.to_js_file_source()
- .or(JsFileSource::try_from(biome_path.as_path()).ok())
+ .or(JsFileSource::try_from(params.biome_path.as_path()).ok())
else {
- return Err(extension_error(biome_path));
+ return Err(extension_error(params.biome_path));
};
- let mut tree: AnyJsRoot = parse.tree();
- let mut actions = Vec::new();
-
- filter.categories = RuleCategoriesBuilder::default()
- .with_syntax()
- .with_lint()
- .build();
+ let mut actions = Vec::new();
let mut skipped_suggested_fixes = 0;
let mut errors: u16 = 0;
- let analyzer_options =
- workspace.analyzer_options::(biome_path, &document_file_source);
+ let analyzer_options = params
+ .workspace
+ .analyzer_options::(params.biome_path, ¶ms.document_file_source);
loop {
let (action, _) = analyze(
&tree,
filter,
&analyzer_options,
file_source,
- manifest.clone(),
+ params.manifest.clone(),
|signal| {
let current_diagnostic = signal.diagnostic();
@@ -726,7 +734,7 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result {
if action.applicability == Applicability::MaybeIncorrect {
skipped_suggested_fixes += 1;
@@ -778,9 +786,12 @@ pub(crate) fn fix_all(params: FixAllParams) -> Result {
- let code = if should_format {
+ let code = if params.should_format {
format_node(
- workspace.format_options::(biome_path, &document_file_source),
+ params.workspace.format_options::(
+ params.biome_path,
+ ¶ms.document_file_source,
+ ),
tree.syntax(),
)?
.print()?
diff --git a/crates/biome_service/src/file_handlers/mod.rs b/crates/biome_service/src/file_handlers/mod.rs
index 9500d6a8bed2..7e9b76fb13ba 100644
--- a/crates/biome_service/src/file_handlers/mod.rs
+++ b/crates/biome_service/src/file_handlers/mod.rs
@@ -345,6 +345,8 @@ pub struct FixAllParams<'a> {
pub(crate) biome_path: &'a BiomePath,
pub(crate) manifest: Option,
pub(crate) document_file_source: DocumentFileSource,
+ pub(crate) only: Vec,
+ pub(crate) skip: Vec,
}
#[derive(Default)]
diff --git a/crates/biome_service/src/workspace.rs b/crates/biome_service/src/workspace.rs
index ee323bd49cf1..0a24fb787a18 100644
--- a/crates/biome_service/src/workspace.rs
+++ b/crates/biome_service/src/workspace.rs
@@ -608,6 +608,8 @@ pub struct FixFileParams {
pub path: BiomePath,
pub fix_file_mode: FixFileMode,
pub should_format: bool,
+ pub only: Vec,
+ pub skip: Vec,
}
#[derive(Debug, serde::Serialize, serde::Deserialize)]
@@ -1023,11 +1025,15 @@ impl<'app, W: Workspace + ?Sized> FileGuard<'app, W> {
&self,
fix_file_mode: FixFileMode,
should_format: bool,
+ only: Vec,
+ skip: Vec,
) -> Result {
self.workspace.fix_file(FixFileParams {
path: self.path.clone(),
fix_file_mode,
should_format,
+ only,
+ skip,
})
}
diff --git a/crates/biome_service/src/workspace/server.rs b/crates/biome_service/src/workspace/server.rs
index 9fab2264ca61..cd74e67b3450 100644
--- a/crates/biome_service/src/workspace/server.rs
+++ b/crates/biome_service/src/workspace/server.rs
@@ -759,6 +759,8 @@ impl Workspace for WorkspaceServer {
biome_path: ¶ms.path,
manifest,
document_file_source: language,
+ only: params.only,
+ skip: params.skip,
})
}
diff --git a/crates/tests_macros/Cargo.toml b/crates/tests_macros/Cargo.toml
index c686161ae55a..c1fc3b506bb7 100644
--- a/crates/tests_macros/Cargo.toml
+++ b/crates/tests_macros/Cargo.toml
@@ -14,9 +14,10 @@ version = "0.0.0"
proc-macro = true
[dependencies]
-case = "1.0.0"
-globwalk = "0.9.1"
-proc-macro-error = "1.0.4"
-proc-macro2 = { workspace = true }
-quote = "1.0.14"
-syn = "2.0.59"
+biome_string_case = { workspace = true }
+case = "1.0.0"
+globwalk = "0.9.1"
+proc-macro-error = "1.0.4"
+proc-macro2 = { workspace = true }
+quote = "1.0.14"
+syn = "2.0.59"
diff --git a/crates/tests_macros/src/lib.rs b/crates/tests_macros/src/lib.rs
index 0cda5b34d72f..c0052ddfba94 100644
--- a/crates/tests_macros/src/lib.rs
+++ b/crates/tests_macros/src/lib.rs
@@ -57,21 +57,7 @@ impl Iterator for AllFiles {
}
fn transform_file_name(input: &str) -> String {
- let mut result = String::new();
- for char in input.chars() {
- match char {
- '-' | '.' | '@' | '+' => {
- result.push('_');
- }
- char if char.is_uppercase() => {
- result.push('_');
- result.extend(char.to_lowercase());
- }
- char => {
- result.push(char);
- }
- }
- }
+ let mut result = biome_string_case::Case::Snake.convert(input);
let is_keyword = matches!(
result.as_str(),
@@ -97,18 +83,10 @@ fn transform_file_name(input: &str) -> String {
| "const"
);
- let is_number = result
- .chars()
- .next()
- .unwrap()
- .to_string()
- .parse::()
- .is_ok();
-
if is_keyword {
result.push('_');
- } else if is_number {
- result = "_".to_string() + &result;
+ } else if matches!(result.bytes().next(), Some(b'0'..=b'9')) {
+ result.insert(0, '_');
}
result
diff --git a/knope.toml b/knope.toml
index b6660cc4447e..b95f730b33b9 100644
--- a/knope.toml
+++ b/knope.toml
@@ -204,6 +204,10 @@ versioned_files = ["crates/biome_graphql_formatter/Cargo.toml"]
changelog = "crates/biome_graphql_analyze/CHANGELOG.md"
versioned_files = ["crates/biome_graphql_analyze/Cargo.toml"]
+[packages.biome_graphql_semantic]
+changelog = "crates/biome_graphql_semantic/CHANGELOG.md"
+versioned_files = ["crates/biome_graphql_semantic/Cargo.toml"]
+
## End of crates. DO NOT CHANGE!
# Workflow to create a changeset
diff --git a/package.json b/package.json
index 0cccca62b326..697fd0622ab9 100644
--- a/package.json
+++ b/package.json
@@ -10,5 +10,5 @@
"keywords": [],
"author": "Biome Developers and Contributors",
"license": "MIT OR Apache-2.0",
- "packageManager": "pnpm@9.5.0"
+ "packageManager": "pnpm@9.6.0"
}
diff --git a/packages/@biomejs/backend-jsonrpc/package.json b/packages/@biomejs/backend-jsonrpc/package.json
index d28d8b17937a..fb884ce9fdf1 100644
--- a/packages/@biomejs/backend-jsonrpc/package.json
+++ b/packages/@biomejs/backend-jsonrpc/package.json
@@ -36,9 +36,9 @@
},
"license": "MIT OR Apache-2.0",
"devDependencies": {
- "@types/node": "20.14.10",
+ "@types/node": "20.14.11",
"typescript": "5.5.3",
- "vite": "5.3.3",
+ "vite": "5.3.4",
"vitest": "1.6.0"
},
"publishConfig": {
diff --git a/packages/@biomejs/backend-jsonrpc/src/workspace.ts b/packages/@biomejs/backend-jsonrpc/src/workspace.ts
index de07e2a5cfec..a6838a751b8c 100644
--- a/packages/@biomejs/backend-jsonrpc/src/workspace.ts
+++ b/packages/@biomejs/backend-jsonrpc/src/workspace.ts
@@ -2896,8 +2896,10 @@ export interface FormatOnTypeParams {
}
export interface FixFileParams {
fix_file_mode: FixFileMode;
+ only: RuleCode[];
path: BiomePath;
should_format: boolean;
+ skip: RuleCode[];
}
/**
* Which fixes should be applied during the analyzing phase
diff --git a/packages/@biomejs/js-api/package.json b/packages/@biomejs/js-api/package.json
index 43a128ba8fca..b8a77100ecfa 100644
--- a/packages/@biomejs/js-api/package.json
+++ b/packages/@biomejs/js-api/package.json
@@ -50,7 +50,7 @@
"@biomejs/wasm-nodejs": "link:../wasm-nodejs",
"@biomejs/wasm-web": "link:../wasm-web",
"typescript": "5.5.3",
- "vite": "5.3.3",
+ "vite": "5.3.4",
"vitest": "1.6.0"
},
"peerDependencies": {
diff --git a/packages/tailwindcss-config-analyzer/package.json b/packages/tailwindcss-config-analyzer/package.json
index 13d944bd8eaf..b661658bd8bf 100644
--- a/packages/tailwindcss-config-analyzer/package.json
+++ b/packages/tailwindcss-config-analyzer/package.json
@@ -7,7 +7,7 @@
"author": "Dani Guardiola",
"type": "module",
"dependencies": {
- "tailwindcss": "^3.4.4"
+ "tailwindcss": "^3.4.6"
},
"devDependencies": {
"@types/bun": "1.1.6",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 04411c6a6d80..21602e667e9a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -11,8 +11,8 @@ importers:
packages/tailwindcss-config-analyzer:
dependencies:
tailwindcss:
- specifier: ^3.4.4
- version: 3.4.4
+ specifier: ^3.4.6
+ version: 3.4.6
devDependencies:
'@types/bun':
specifier: 1.1.6
@@ -513,8 +513,8 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- tailwindcss@3.4.4:
- resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==}
+ tailwindcss@3.4.6:
+ resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==}
engines: {node: '>=14.0.0'}
hasBin: true
@@ -1037,7 +1037,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- tailwindcss@3.4.4:
+ tailwindcss@3.4.6:
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2