From 54efd9589c6a823c01402f1e83634da81b5f0fed Mon Sep 17 00:00:00 2001
From: Amine Ilidrissi <38422328+aminevg@users.noreply.github.com>
Date: Wed, 25 Mar 2026 11:02:14 +0900
Subject: [PATCH 1/2] chore: upgrade Biome + enable Astro file support
---
biome.json | 20 ++---
package.json | 2 +-
.../dev/alpinejs/src/pages/basic.astro | 6 +-
.../fixtures/dev/basic/src/pages/imgTag.astro | 2 +-
.../fixtures/dev/basic/src/pages/page.astro | 2 +-
.../fixtures/dev/basic/src/pages/styles.astro | 2 +-
.../dev/basic/src/pages/stylesWithChild.astro | 2 +-
.../dev/partytown/src/pages/basic.astro | 2 +-
.../react-renderer/src/pages/clientload.astro | 2 +-
.../start/basic/src/pages/imgTag.astro | 2 +-
.../fixtures/start/basic/src/pages/page.astro | 2 +-
.../start/basic/src/pages/scriptTag.astro | 2 +-
.../start/basic/src/pages/styles.astro | 2 +-
packages/core/src/utils/injectTagsIntoHead.ts | 4 +-
.../docs/src/components/starlight/Hero.astro | 6 +-
.../src/components/starlight/SiteTitle.astro | 7 +-
packages/docs/src/styles/custom.css | 5 +-
pnpm-lock.yaml | 76 +++++++++----------
18 files changed, 70 insertions(+), 76 deletions(-)
diff --git a/biome.json b/biome.json
index 770e3da..820cf29 100644
--- a/biome.json
+++ b/biome.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://biomejs.dev/schemas/2.1.3/schema.json",
+ "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
@@ -28,6 +28,9 @@
"quoteStyle": "double"
}
},
+ "html": {
+ "experimentalFullSupportEnabled": true
+ },
"assist": {
"enabled": true,
"actions": {
@@ -35,18 +38,5 @@
"organizeImports": "on"
}
}
- },
- "overrides": [
- {
- "includes": ["**/*.astro", "**/*.vue", "**/*.svelte"],
- "linter": {
- "rules": {
- "correctness": {
- "noUnusedVariables": "off",
- "noUnusedImports": "off"
- }
- }
- }
- }
- ]
+ }
}
diff --git a/package.json b/package.json
index 83509fb..9cea3c2 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"type": "module",
"packageManager": "pnpm@10.30.1",
"devDependencies": {
- "@biomejs/biome": "2.1.3",
+ "@biomejs/biome": "2.4.8",
"@types/node": "^25.3.5",
"@typescript/native-preview": "^7.0.0-dev",
"tsdown": "^0.21.0",
diff --git a/packages/core/fixtures/dev/alpinejs/src/pages/basic.astro b/packages/core/fixtures/dev/alpinejs/src/pages/basic.astro
index b6f2474..3370084 100644
--- a/packages/core/fixtures/dev/alpinejs/src/pages/basic.astro
+++ b/packages/core/fixtures/dev/alpinejs/src/pages/basic.astro
@@ -6,13 +6,13 @@ interface Props {
const { initialCount } = Astro.props;
---
-
+
-
+
{ initialCount }
-
+
diff --git a/packages/core/fixtures/dev/basic/src/pages/imgTag.astro b/packages/core/fixtures/dev/basic/src/pages/imgTag.astro
index 3473c3c..abeba9c 100644
--- a/packages/core/fixtures/dev/basic/src/pages/imgTag.astro
+++ b/packages/core/fixtures/dev/basic/src/pages/imgTag.astro
@@ -2,4 +2,4 @@
import sampleImg from "../assets/sample.png";
---
-
+
diff --git a/packages/core/fixtures/dev/basic/src/pages/page.astro b/packages/core/fixtures/dev/basic/src/pages/page.astro
index 72e2994..84841ac 100644
--- a/packages/core/fixtures/dev/basic/src/pages/page.astro
+++ b/packages/core/fixtures/dev/basic/src/pages/page.astro
@@ -7,7 +7,7 @@ const { title } = Astro.props;
---
-
+
diff --git a/packages/core/fixtures/dev/basic/src/pages/styles.astro b/packages/core/fixtures/dev/basic/src/pages/styles.astro
index da347c1..8b79003 100644
--- a/packages/core/fixtures/dev/basic/src/pages/styles.astro
+++ b/packages/core/fixtures/dev/basic/src/pages/styles.astro
@@ -1,4 +1,4 @@
-
+
diff --git a/packages/core/fixtures/dev/basic/src/pages/stylesWithChild.astro b/packages/core/fixtures/dev/basic/src/pages/stylesWithChild.astro
index 2157f3d..d7c6a9e 100644
--- a/packages/core/fixtures/dev/basic/src/pages/stylesWithChild.astro
+++ b/packages/core/fixtures/dev/basic/src/pages/stylesWithChild.astro
@@ -2,7 +2,7 @@
import StyleChild from "../components/StyleChild.astro";
---
-
+
diff --git a/packages/core/fixtures/dev/partytown/src/pages/basic.astro b/packages/core/fixtures/dev/partytown/src/pages/basic.astro
index 387c674..36b28e4 100644
--- a/packages/core/fixtures/dev/partytown/src/pages/basic.astro
+++ b/packages/core/fixtures/dev/partytown/src/pages/basic.astro
@@ -1,4 +1,4 @@
-
+
PartyTown demo
diff --git a/packages/core/fixtures/dev/react-renderer/src/pages/clientload.astro b/packages/core/fixtures/dev/react-renderer/src/pages/clientload.astro
index 0f48983..a4dd55a 100644
--- a/packages/core/fixtures/dev/react-renderer/src/pages/clientload.astro
+++ b/packages/core/fixtures/dev/react-renderer/src/pages/clientload.astro
@@ -8,7 +8,7 @@ interface Props {
const { title } = Astro.props;
---
-
+
diff --git a/packages/core/fixtures/start/basic/src/pages/imgTag.astro b/packages/core/fixtures/start/basic/src/pages/imgTag.astro
index 3473c3c..abeba9c 100644
--- a/packages/core/fixtures/start/basic/src/pages/imgTag.astro
+++ b/packages/core/fixtures/start/basic/src/pages/imgTag.astro
@@ -2,4 +2,4 @@
import sampleImg from "../assets/sample.png";
---
-
+
diff --git a/packages/core/fixtures/start/basic/src/pages/page.astro b/packages/core/fixtures/start/basic/src/pages/page.astro
index 20f488a..aee199b 100644
--- a/packages/core/fixtures/start/basic/src/pages/page.astro
+++ b/packages/core/fixtures/start/basic/src/pages/page.astro
@@ -1,4 +1,4 @@
-
+
diff --git a/packages/core/fixtures/start/basic/src/pages/scriptTag.astro b/packages/core/fixtures/start/basic/src/pages/scriptTag.astro
index 4ab884b..91fe3ea 100644
--- a/packages/core/fixtures/start/basic/src/pages/scriptTag.astro
+++ b/packages/core/fixtures/start/basic/src/pages/scriptTag.astro
@@ -1,4 +1,4 @@
-
+
diff --git a/packages/core/fixtures/start/basic/src/pages/styles.astro b/packages/core/fixtures/start/basic/src/pages/styles.astro
index da347c1..8b79003 100644
--- a/packages/core/fixtures/start/basic/src/pages/styles.astro
+++ b/packages/core/fixtures/start/basic/src/pages/styles.astro
@@ -1,4 +1,4 @@
-
+
diff --git a/packages/core/src/utils/injectTagsIntoHead.ts b/packages/core/src/utils/injectTagsIntoHead.ts
index a1b9afb..6c44b21 100644
--- a/packages/core/src/utils/injectTagsIntoHead.ts
+++ b/packages/core/src/utils/injectTagsIntoHead.ts
@@ -15,7 +15,9 @@ export function injectTagsIntoHead(
visit(tree, "element", (node) => {
if (node.tagName === "head" && node.position) {
hasHead = true;
- children.forEach((child) => node.children.push(child));
+ children.forEach((child) => {
+ node.children.push(child);
+ });
return EXIT;
}
});
diff --git a/packages/docs/src/components/starlight/Hero.astro b/packages/docs/src/components/starlight/Hero.astro
index fe67f35..c71709d 100644
--- a/packages/docs/src/components/starlight/Hero.astro
+++ b/packages/docs/src/components/starlight/Hero.astro
@@ -22,13 +22,13 @@ const PAGE_TITLE_ID = "_top";
({
attrs: { class: className, ...attrs } = {},
icon,
- link: href,
+ link,
text,
variant,
}) => (
-
+
{siteTitle}
@@ -50,6 +54,7 @@ const anchorHref = Astro.url.pathname === "/" ? "/#" : siteTitleHref;
}
.site-title-rotate-after-view-transition svg path {
+ /* biome-ignore lint/complexity/noImportantStyles: required here to work with view transitions */
transition: none !important;
transform: rotateY(540deg);
cursor: pointer;
diff --git a/packages/docs/src/styles/custom.css b/packages/docs/src/styles/custom.css
index db4d46d..7defb5f 100644
--- a/packages/docs/src/styles/custom.css
+++ b/packages/docs/src/styles/custom.css
@@ -19,13 +19,10 @@
}
@view-transition {
- /* biome-ignore lint/correctness/noUnknownProperty: View Transitions navigation is valid CSS. */
navigation: auto;
}
-/* biome-ignore lint/correctness/noUnknownTypeSelector: View Transitions pseudo-elements are valid CSS. */
::view-transition-old(root),
-/* biome-ignore lint/correctness/noUnknownTypeSelector: View Transitions pseudo-elements are valid CSS. */
- ::view-transition-new(root) {
+::view-transition-new(root) {
animation: none;
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 92adf86..a56772b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -21,8 +21,8 @@ importers:
.:
devDependencies:
'@biomejs/biome':
- specifier: 2.1.3
- version: 2.1.3
+ specifier: 2.4.8
+ version: 2.4.8
'@types/node':
specifier: ^25.3.5
version: 25.3.5
@@ -348,59 +348,59 @@ packages:
resolution: {integrity: sha512-91gAaWRznDwSX4E2tZ1YjBuIfnQVOFDCQ2r0Toby0gu4XEbyF623kXLMA8d4ZbCu+fINcrudkmEcwSUHgDDkNw==}
engines: {node: ^20.19.0 || >=22.12.0}
- '@biomejs/biome@2.1.3':
- resolution: {integrity: sha512-KE/tegvJIxTkl7gJbGWSgun7G6X/n2M6C35COT6ctYrAy7SiPyNvi6JtoQERVK/VRbttZfgGq96j2bFmhmnH4w==}
+ '@biomejs/biome@2.4.8':
+ resolution: {integrity: sha512-ponn0oKOky1oRXBV+rlSaUlixUxf1aZvWC19Z41zBfUOUesthrQqL3OtiAlSB1EjFjyWpn98Q64DHelhA6jNlA==}
engines: {node: '>=14.21.3'}
hasBin: true
- '@biomejs/cli-darwin-arm64@2.1.3':
- resolution: {integrity: sha512-LFLkSWRoSGS1wVUD/BE6Nlt2dSn0ulH3XImzg2O/36BoToJHKXjSxzPEMAqT9QvwVtk7/9AQhZpTneERU9qaXA==}
+ '@biomejs/cli-darwin-arm64@2.4.8':
+ resolution: {integrity: sha512-ARx0tECE8I7S2C2yjnWYLNbBdDoPdq3oyNLhMglmuctThwUsuzFWRKrHmIGwIRWKz0Mat9DuzLEDp52hGnrxGQ==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [darwin]
- '@biomejs/cli-darwin-x64@2.1.3':
- resolution: {integrity: sha512-Q/4OTw8P9No9QeowyxswcWdm0n2MsdCwWcc5NcKQQvzwPjwuPdf8dpPPf4r+x0RWKBtl1FLiAUtJvBlri6DnYw==}
+ '@biomejs/cli-darwin-x64@2.4.8':
+ resolution: {integrity: sha512-Jg9/PsB9vDCJlANE8uhG7qDhb5w0Ix69D7XIIc8IfZPUoiPrbLm33k2Ig3NOJ/7nb3UbesFz3D1aDKm9DvzjhQ==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [darwin]
- '@biomejs/cli-linux-arm64-musl@2.1.3':
- resolution: {integrity: sha512-KXouFSBnoxAWZYDQrnNRzZBbt5s9UJkIm40hdvSL9mBxSSoxRFQJbtg1hP3aa8A2SnXyQHxQfpiVeJlczZt76w==}
+ '@biomejs/cli-linux-arm64-musl@2.4.8':
+ resolution: {integrity: sha512-Zo9OhBQDJ3IBGPlqHiTISloo5H0+FBIpemqIJdW/0edJ+gEcLR+MZeZozcUyz3o1nXkVA7++DdRKQT0599j9jA==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@biomejs/cli-linux-arm64@2.1.3':
- resolution: {integrity: sha512-2hS6LgylRqMFmAZCOFwYrf77QMdUwJp49oe8PX/O8+P2yKZMSpyQTf3Eo5ewnsMFUEmYbPOskafdV1ds1MZMJA==}
+ '@biomejs/cli-linux-arm64@2.4.8':
+ resolution: {integrity: sha512-5CdrsJct76XG2hpKFwXnEtlT1p+4g4yV+XvvwBpzKsTNLO9c6iLlAxwcae2BJ7ekPGWjNGw9j09T5KGPKKxQig==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@biomejs/cli-linux-x64-musl@2.1.3':
- resolution: {integrity: sha512-KaLAxnROouzIWtl6a0Y88r/4hW5oDUJTIqQorOTVQITaKQsKjZX4XCUmHIhdEk8zMnaiLZzRTAwk1yIAl+mIew==}
+ '@biomejs/cli-linux-x64-musl@2.4.8':
+ resolution: {integrity: sha512-Gi8quv8MEuDdKaPFtS2XjEnMqODPsRg6POT6KhoP+VrkNb+T2ywunVB+TvOU0LX1jAZzfBr+3V1mIbBhzAMKvw==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@biomejs/cli-linux-x64@2.1.3':
- resolution: {integrity: sha512-NxlSCBhLvQtWGagEztfAZ4WcE1AkMTntZV65ZvR+J9jp06+EtOYEBPQndA70ZGhHbEDG57bR6uNvqkd1WrEYVA==}
+ '@biomejs/cli-linux-x64@2.4.8':
+ resolution: {integrity: sha512-PdKXspVEaMCQLjtZCn6vfSck/li4KX9KGwSDbZdgIqlrizJ2MnMcE3TvHa2tVfXNmbjMikzcfJpuPWH695yJrw==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@biomejs/cli-win32-arm64@2.1.3':
- resolution: {integrity: sha512-V9CUZCtWH4u0YwyCYbQ3W5F4ZGPWp2C2TYcsiWFNNyRfmOW1j/TY/jAurl33SaRjgZPO5UUhGyr9m6BN9t84NQ==}
+ '@biomejs/cli-win32-arm64@2.4.8':
+ resolution: {integrity: sha512-LoFatS0tnHv6KkCVpIy3qZCih+MxUMvdYiPWLHRri7mhi2vyOOs8OrbZBcLTUEWCS+ktO72nZMy4F96oMhkOHQ==}
engines: {node: '>=14.21.3'}
cpu: [arm64]
os: [win32]
- '@biomejs/cli-win32-x64@2.1.3':
- resolution: {integrity: sha512-dxy599q6lgp8ANPpR8sDMscwdp9oOumEsVXuVCVT9N2vAho8uYXlCz53JhxX6LtJOXaE73qzgkGQ7QqvFlMC0g==}
+ '@biomejs/cli-win32-x64@2.4.8':
+ resolution: {integrity: sha512-vAn7iXDoUbqFXqVocuq1sMYAd33p8+mmurqJkWl6CtIhobd/O6moe4rY5AJvzbunn/qZCdiDVcveqtkFh1e7Hg==}
engines: {node: '>=14.21.3'}
cpu: [x64]
os: [win32]
@@ -3371,39 +3371,39 @@ snapshots:
'@babel/helper-string-parser': 8.0.0-rc.2
'@babel/helper-validator-identifier': 8.0.0-rc.2
- '@biomejs/biome@2.1.3':
+ '@biomejs/biome@2.4.8':
optionalDependencies:
- '@biomejs/cli-darwin-arm64': 2.1.3
- '@biomejs/cli-darwin-x64': 2.1.3
- '@biomejs/cli-linux-arm64': 2.1.3
- '@biomejs/cli-linux-arm64-musl': 2.1.3
- '@biomejs/cli-linux-x64': 2.1.3
- '@biomejs/cli-linux-x64-musl': 2.1.3
- '@biomejs/cli-win32-arm64': 2.1.3
- '@biomejs/cli-win32-x64': 2.1.3
-
- '@biomejs/cli-darwin-arm64@2.1.3':
+ '@biomejs/cli-darwin-arm64': 2.4.8
+ '@biomejs/cli-darwin-x64': 2.4.8
+ '@biomejs/cli-linux-arm64': 2.4.8
+ '@biomejs/cli-linux-arm64-musl': 2.4.8
+ '@biomejs/cli-linux-x64': 2.4.8
+ '@biomejs/cli-linux-x64-musl': 2.4.8
+ '@biomejs/cli-win32-arm64': 2.4.8
+ '@biomejs/cli-win32-x64': 2.4.8
+
+ '@biomejs/cli-darwin-arm64@2.4.8':
optional: true
- '@biomejs/cli-darwin-x64@2.1.3':
+ '@biomejs/cli-darwin-x64@2.4.8':
optional: true
- '@biomejs/cli-linux-arm64-musl@2.1.3':
+ '@biomejs/cli-linux-arm64-musl@2.4.8':
optional: true
- '@biomejs/cli-linux-arm64@2.1.3':
+ '@biomejs/cli-linux-arm64@2.4.8':
optional: true
- '@biomejs/cli-linux-x64-musl@2.1.3':
+ '@biomejs/cli-linux-x64-musl@2.4.8':
optional: true
- '@biomejs/cli-linux-x64@2.1.3':
+ '@biomejs/cli-linux-x64@2.4.8':
optional: true
- '@biomejs/cli-win32-arm64@2.1.3':
+ '@biomejs/cli-win32-arm64@2.4.8':
optional: true
- '@biomejs/cli-win32-x64@2.1.3':
+ '@biomejs/cli-win32-x64@2.4.8':
optional: true
'@capsizecss/unpack@4.0.0':
From f1acf5c83fb3733a398af024c005e19993195111 Mon Sep 17 00:00:00 2001
From: Amine Ilidrissi <38422328+aminevg@users.noreply.github.com>
Date: Wed, 25 Mar 2026 11:08:28 +0900
Subject: [PATCH 2/2] Fix tests
---
packages/core/tests/dev/basic.test.ts | 2 +-
packages/core/tests/start/basic.test.ts | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/core/tests/dev/basic.test.ts b/packages/core/tests/dev/basic.test.ts
index 244eac9..c31073a 100644
--- a/packages/core/tests/dev/basic.test.ts
+++ b/packages/core/tests/dev/basic.test.ts
@@ -73,7 +73,7 @@ describe("dev basic fixture", () => {
expect(response.status).toBe(200);
expect(response.content).toBe(
- ' Hello World
',
+ ' Hello World
',
);
});
diff --git a/packages/core/tests/start/basic.test.ts b/packages/core/tests/start/basic.test.ts
index 8907794..8e56601 100644
--- a/packages/core/tests/start/basic.test.ts
+++ b/packages/core/tests/start/basic.test.ts
@@ -64,7 +64,7 @@ describe("start basic fixture", () => {
expect(response).toEqual({
status: 200,
content:
- " Hello World!
",
+ ' Hello World!
',
});
});
@@ -96,7 +96,7 @@ describe("start basic fixture", () => {
expect(response.status).toBe(200);
const imageSrc = response.content.match(
- /
/,
+ /
/,
)?.[1] as string;
expect(imageSrc).toMatch(/^\/_astro\//);