From 39b8df9609b4b765e260183fee11ceed2122bdfd Mon Sep 17 00:00:00 2001 From: Amine Ilidrissi <38422328+aminevg@users.noreply.github.com> Date: Sun, 15 Mar 2026 23:09:50 +0900 Subject: [PATCH] chore: upgrade Astro 6 beta to stable Move from astro@6.0.0-beta.17 to astro@^6.0.4 (stable) and centralize the version in the pnpm catalog. Also upgrades Astro integrations from beta to stable: @astrojs/react 5.0.0, @astrojs/alpinejs 0.5.0, and @astrojs/partytown ^2.1.5. Fixes build test to handle Astro 6 stable's chunk output structure where multiple index_*.mjs chunks may exist in server builds. --- packages/core/package.json | 8 +- packages/core/tests/build/basic.test.ts | 17 ++- packages/hono/package.json | 2 +- pnpm-lock.yaml | 151 ++++++++---------------- pnpm-workspace.yaml | 1 + 5 files changed, 65 insertions(+), 114 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 713b4fb..126b66c 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@shikijs/transformers": "^4.0.0", - "astro": "6.0.0-beta.17", + "astro": "catalog:", "hast-util-to-html": "^9.0.0", "rehype-parse": "^9.0.0", "unified": "^11.0.0", @@ -45,9 +45,9 @@ }, "type": "module", "devDependencies": { - "@astrojs/alpinejs": "0.5.0-beta.1", - "@astrojs/partytown": "^2.1.4", - "@astrojs/react": "5.0.0-beta.3", + "@astrojs/alpinejs": "0.5.0", + "@astrojs/partytown": "^2.1.5", + "@astrojs/react": "5.0.0", "@types/alpinejs": "^3.13.11", "@types/hast": "^3.0.4", "@types/react": "^19.2.14", diff --git a/packages/core/tests/build/basic.test.ts b/packages/core/tests/build/basic.test.ts index 72a2d79..23bd701 100644 --- a/packages/core/tests/build/basic.test.ts +++ b/packages/core/tests/build/basic.test.ts @@ -39,14 +39,13 @@ describe("build basic fixture", () => { expect(entryExists).toBeDefined(); const chunks = await readdir(path.join(serverDir, "chunks")); - const pageChunk = chunks.find( - (f) => f.startsWith("index_") && f.endsWith(".mjs"), - ) as string; - expect(pageChunk).toBeTypeOf("string"); - - const output = await readFile(path.join(serverDir, "chunks", pageChunk), { - encoding: "utf-8", - }); - expect(output).toContain("

Hello World!

"); + const output = await Promise.all( + chunks + .filter((f) => f.startsWith("index_") && f.endsWith(".mjs")) + .map((f) => + readFile(path.join(serverDir, "chunks", f), { encoding: "utf-8" }), + ), + ); + expect(output.some((c) => c.includes("

Hello World!

"))).toBe(true); }); }); diff --git a/packages/hono/package.json b/packages/hono/package.json index fd14048..af77a3e 100644 --- a/packages/hono/package.json +++ b/packages/hono/package.json @@ -15,7 +15,7 @@ "dependencies": { "@gomighty/core": "workspace:*", "@hono/node-server": "catalog:", - "astro": "6.0.0-beta.17", + "astro": "catalog:", "fetch-to-node": "^2.1.0", "hono": "catalog:", "zod": "^4.0.15" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b5f45a..1d3771a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,9 @@ catalogs: '@hono/node-server': specifier: ^1.19.5 version: 1.19.11 + astro: + specifier: ^6.0.4 + version: 6.0.4 hono: specifier: ^4.9.9 version: 4.12.5 @@ -39,8 +42,8 @@ importers: specifier: ^4.0.0 version: 4.0.1 astro: - specifier: 6.0.0-beta.17 - version: 6.0.0-beta.17(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3) + specifier: 'catalog:' + version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3) hast-util-to-html: specifier: ^9.0.0 version: 9.0.5 @@ -61,14 +64,14 @@ importers: version: 7.3.1(@types/node@25.3.5)(jiti@2.6.1) devDependencies: '@astrojs/alpinejs': - specifier: 0.5.0-beta.1 - version: 0.5.0-beta.1(@types/alpinejs@3.13.11)(alpinejs@3.15.8) + specifier: 0.5.0 + version: 0.5.0(@types/alpinejs@3.13.11)(alpinejs@3.15.8) '@astrojs/partytown': - specifier: ^2.1.4 - version: 2.1.4 + specifier: ^2.1.5 + version: 2.1.5 '@astrojs/react': - specifier: 5.0.0-beta.3 - version: 5.0.0-beta.3(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: 5.0.0 + version: 5.0.0(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/alpinejs': specifier: ^3.13.11 version: 3.13.11 @@ -109,8 +112,8 @@ importers: specifier: 'catalog:' version: 1.19.11(hono@4.12.5) astro: - specifier: 6.0.0-beta.17 - version: 6.0.0-beta.17(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3) + specifier: 'catalog:' + version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3) fetch-to-node: specifier: ^2.1.0 version: 2.1.0 @@ -127,8 +130,8 @@ importers: packages: - '@astrojs/alpinejs@0.5.0-beta.1': - resolution: {integrity: sha512-AhcanH8xYuPy5qL5V7HGmP/+ei1uJOps3j5QUFQYVj8GurTeCC1nQhiteNzXVjy32+2X0z44hJN9FRSxVvA4Fg==} + '@astrojs/alpinejs@0.5.0': + resolution: {integrity: sha512-mORFY/ljzz6LPqkBPBd4v2i6yMhTkySgopIpVyKODEoJegp1PuX2Hri589P1oJzICGHSY8Q28OIyF/50Cf/lMQ==} peerDependencies: '@types/alpinejs': ^3.0.0 alpinejs: ^3.0.0 @@ -136,21 +139,21 @@ packages: '@astrojs/compiler@3.0.0': resolution: {integrity: sha512-MwAbDE5mawZ1SS+D8qWiHdprdME5Tlj2e0YjxnEICvcOpbSukNS7Sa7hA5PK+6RrmUr/t6Gi5YgrdZKjbO/WPQ==} - '@astrojs/internal-helpers@0.8.0-beta.1': - resolution: {integrity: sha512-nX39HmVNrto0AwlGnk6Vj8fQ35v4VVIuSxsbvaANGeAIK7uAjOY3ca7xz+gejWeqGbY7vkGk6vsz3i0jTClCSQ==} + '@astrojs/internal-helpers@0.8.0': + resolution: {integrity: sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w==} - '@astrojs/markdown-remark@7.0.0-beta.8': - resolution: {integrity: sha512-ECLh/C8TuyeK+Net73GPcL2Y6fnQMSZfKfM0WbxcOLxr0ukY0j6jow2N1EXAzqQA6AK4+kkYrMAVVcsHlQhbQA==} + '@astrojs/markdown-remark@7.0.0': + resolution: {integrity: sha512-jTAXHPy45L7o1ljH4jYV+ShtOHtyQUa1mGp3a5fJp1soX8lInuTJQ6ihmldHzVM4Q7QptU4SzIDIcKbBJO7sXQ==} - '@astrojs/partytown@2.1.4': - resolution: {integrity: sha512-loUrAu0cGYFDC6dHVRiomdsBJ41VjDYXPA+B3Br51V5hENFgDSOLju86OIj1TvBACcsB22UQV7BlppODDG5gig==} + '@astrojs/partytown@2.1.5': + resolution: {integrity: sha512-Uo2Uqmvjh/5w08wGoVAspdj14hUoE28uQH8SkzaBMw9bTBNIviEkPi3VkJi+tj1ZYAY9oX7OSkRDJ48QRtMhlw==} - '@astrojs/prism@4.0.0-beta.2': - resolution: {integrity: sha512-3snR85nTXnXvgmFJ43AacCQcylk+mpsiQ5Gmr9hcR5IrEA6+EvaYfaF9jlxZqJIZYey/9ubSRmaERtwDhV/FeA==} + '@astrojs/prism@4.0.0': + resolution: {integrity: sha512-NndtNPpxaGinRpRytljGBvYHpTOwHycSZ/c+lQi5cHvkqqrHKWdkPEhImlODBNmbuB+vyQUNUDXyjzt66CihJg==} engines: {node: ^20.19.1 || >=22.12.0} - '@astrojs/react@5.0.0-beta.3': - resolution: {integrity: sha512-wdbrI0uJxz7GzNWOV1BOvdyMPjj1Yv/2yAb5/qa35rIECI1YiRIOc8ySdUiqwjdB2jVPDs9Tw8s76JmXn8S1Fg==} + '@astrojs/react@5.0.0': + resolution: {integrity: sha512-OuM+0QFsoPkvv8ZB57kVLxKOqvR+84GR/Em9lh/tAL4fV4CnpBPDxc++0vd1CipH4o99Is7GribuTHFy3doF6g==} engines: {node: ^20.19.1 || >=22.12.0} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 @@ -938,30 +941,18 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@3.23.0': - resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} - '@shikijs/core@4.0.1': resolution: {integrity: sha512-vWvqi9JNgz1dRL9Nvog5wtx7RuNkf7MEPl2mU/cyUUxJeH1CAr3t+81h8zO8zs7DK6cKLMoU9TvukWIDjP4Lzg==} engines: {node: '>=20'} - '@shikijs/engine-javascript@3.23.0': - resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} - '@shikijs/engine-javascript@4.0.1': resolution: {integrity: sha512-DJK9NiwtGYqMuKCRO4Ip0FKNDQpmaiS+K5bFjJ7DWFn4zHueDWgaUG8kAofkrnXF6zPPYYQY7J5FYVW9MbZyBg==} engines: {node: '>=20'} - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - '@shikijs/engine-oniguruma@4.0.1': resolution: {integrity: sha512-oCWdCTDch3J8Kc0OZJ98KuUPC02O1VqIE3W/e2uvrHqTxYRR21RGEJMtchrgrxhsoJJCzmIciKsqG+q/yD+Cxg==} engines: {node: '>=20'} - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - '@shikijs/langs@4.0.1': resolution: {integrity: sha512-v/mluaybWdnGJR4GqAR6zh8qAZohW9k+cGYT28Y7M8+jLbC0l4yG085O1A+WkseHTn+awd+P3UBymb2+MXFc8w==} engines: {node: '>=20'} @@ -970,9 +961,6 @@ packages: resolution: {integrity: sha512-ns0hHZc5eWZuvuIEJz2pTx3Qecz0aRVYumVQJ8JgWY2tq/dH8WxdcVM49Fc2NsHEILNIT6vfdW9MF26RANWiTA==} engines: {node: '>=20'} - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - '@shikijs/themes@4.0.1': resolution: {integrity: sha512-FW41C/D6j/yKQkzVdjrRPiJCtgeDaYRJFEyCKFCINuRJRj9WcmubhP4KQHPZ4+9eT87jruSrYPyoblNRyDFzvA==} engines: {node: '>=20'} @@ -981,9 +969,6 @@ packages: resolution: {integrity: sha512-oE46W2eHpvD06+C0MBthd2YrDM6cktvJDFl764tOEXxfr3dAJhxMc0uNZ2tQXp+bkMgl4E7IL88Mj9RnSqiayw==} engines: {node: '>=20'} - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - '@shikijs/types@4.0.1': resolution: {integrity: sha512-EaygPEn57+jJ76mw+nTLvIpJMAcMPokFbrF8lufsZP7Ukk+ToJYEcswN1G0e49nUZAq7aCQtoeW219A8HK1ZOw==} engines: {node: '>=20'} @@ -1123,8 +1108,8 @@ packages: resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} engines: {node: '>=20.19.0'} - astro@6.0.0-beta.17: - resolution: {integrity: sha512-KXD3ODSXIwz3oeF9m0YK1s2jImXdIxy9j335MLfr/FLlLU+VSgpOlzqSDhKJYWdQiR1agnvi5zjuTrsD6kH9QQ==} + astro@6.0.4: + resolution: {integrity: sha512-1piLJCPTL/x7AMO2cjVFSTFyRqKuC3W8sSEySCt1aJio+p/wGs5H3K+Xr/rE9ftKtknLUtjxCqCE7/0NsXfGpQ==} engines: {node: ^20.19.1 || >=22.12.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -1877,9 +1862,6 @@ packages: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - shiki@3.23.0: - resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} - shiki@4.0.1: resolution: {integrity: sha512-EkAEhDTN5WhpoQFXFw79OHIrSAfHhlImeCdSyg4u4XvrpxKEmdo/9x/HWSowujAnUrFsGOwWiE58a6GVentMnQ==} engines: {node: '>=20'} @@ -1924,6 +1906,10 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinyclip@0.1.12: + resolution: {integrity: sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==} + engines: {node: ^16.14.0 || >= 17.3.0} + tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} @@ -2253,19 +2239,21 @@ packages: snapshots: - '@astrojs/alpinejs@0.5.0-beta.1(@types/alpinejs@3.13.11)(alpinejs@3.15.8)': + '@astrojs/alpinejs@0.5.0(@types/alpinejs@3.13.11)(alpinejs@3.15.8)': dependencies: '@types/alpinejs': 3.13.11 alpinejs: 3.15.8 '@astrojs/compiler@3.0.0': {} - '@astrojs/internal-helpers@0.8.0-beta.1': {} + '@astrojs/internal-helpers@0.8.0': + dependencies: + picomatch: 4.0.3 - '@astrojs/markdown-remark@7.0.0-beta.8': + '@astrojs/markdown-remark@7.0.0': dependencies: - '@astrojs/internal-helpers': 0.8.0-beta.1 - '@astrojs/prism': 4.0.0-beta.2 + '@astrojs/internal-helpers': 0.8.0 + '@astrojs/prism': 4.0.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 @@ -2277,7 +2265,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.23.0 + shiki: 4.0.1 smol-toml: 1.6.0 unified: 11.0.5 unist-util-remove-position: 5.0.0 @@ -2287,20 +2275,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/partytown@2.1.4': + '@astrojs/partytown@2.1.5': dependencies: '@qwik.dev/partytown': 0.11.2 mrmime: 2.0.1 - '@astrojs/prism@4.0.0-beta.2': + '@astrojs/prism@4.0.0': dependencies: prismjs: 1.30.0 - '@astrojs/react@5.0.0-beta.3(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@astrojs/react@5.0.0(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: + '@astrojs/internal-helpers': 0.8.0 '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': 5.1.4(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)) + devalue: 5.6.3 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) ultrahtml: 1.6.0 @@ -2880,13 +2870,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true - '@shikijs/core@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - '@shikijs/core@4.0.1': dependencies: '@shikijs/primitive': 4.0.1 @@ -2895,32 +2878,17 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.4 - '@shikijs/engine-javascript@4.0.1': dependencies: '@shikijs/types': 4.0.1 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@4.0.1': dependencies: '@shikijs/types': 4.0.1 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/langs@4.0.1': dependencies: '@shikijs/types': 4.0.1 @@ -2931,10 +2899,6 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/themes@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/themes@4.0.1': dependencies: '@shikijs/types': 4.0.1 @@ -2944,11 +2908,6 @@ snapshots: '@shikijs/core': 4.0.1 '@shikijs/types': 4.0.1 - '@shikijs/types@3.23.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/types@4.0.1': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -3114,11 +3073,11 @@ snapshots: estree-walker: 3.0.3 pathe: 2.0.3 - astro@6.0.0-beta.17(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3): + astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3): dependencies: '@astrojs/compiler': 3.0.0 - '@astrojs/internal-helpers': 0.8.0-beta.1 - '@astrojs/markdown-remark': 7.0.0-beta.8 + '@astrojs/internal-helpers': 0.8.0 + '@astrojs/markdown-remark': 7.0.0 '@astrojs/telemetry': 3.3.0 '@capsizecss/unpack': 4.0.0 '@clack/prompts': 1.1.0 @@ -3154,9 +3113,10 @@ snapshots: picomatch: 4.0.3 rehype: 13.0.2 semver: 7.7.4 - shiki: 3.23.0 + shiki: 4.0.1 smol-toml: 1.6.0 svgo: 4.0.1 + tinyclip: 0.1.12 tinyexec: 1.0.2 tinyglobby: 0.2.15 tsconfck: 3.1.6(typescript@5.9.3) @@ -4230,17 +4190,6 @@ snapshots: '@img/sharp-win32-x64': 0.34.5 optional: true - shiki@3.23.0: - dependencies: - '@shikijs/core': 3.23.0 - '@shikijs/engine-javascript': 3.23.0 - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - shiki@4.0.1: dependencies: '@shikijs/core': 4.0.1 @@ -4289,6 +4238,8 @@ snapshots: tinybench@2.9.0: {} + tinyclip@0.1.12: {} + tinyexec@0.3.2: {} tinyexec@1.0.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f45935e..d3c5f5a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,6 @@ packages: - "packages/*" catalog: + astro: "^6.0.4" hono: "^4.9.9" "@hono/node-server": "^1.19.5"