From f69605174b067aad3ab5f7c90f8e8228ad4bb2a5 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Tue, 3 Sep 2024 13:26:33 +0000 Subject: [PATCH 01/27] [ci] format --- packages/astro/test/content-layer.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/astro/test/content-layer.test.js b/packages/astro/test/content-layer.test.js index c853a3be5b3d..3ac37514b9a7 100644 --- a/packages/astro/test/content-layer.test.js +++ b/packages/astro/test/content-layer.test.js @@ -200,7 +200,7 @@ describe('Content Layer', () => { // Vite may not have noticed the saved data store yet. Wait a little just in case. await fixture.onNextDataStoreChange(1000).catch(() => { // Ignore timeout, because it may have saved before we get here. - }) + }); const rawJsonResponse = await fixture.fetch('/collections.json'); const rawJson = await rawJsonResponse.text(); json = devalue.parse(rawJson); From 7ff7134b8038a3b798293b2218bbf6dd02d2ac32 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 3 Sep 2024 09:45:57 -0400 Subject: [PATCH 02/27] Provide an error message when Actions throws in setup (#11886) * Provide an error message when Actions throws in setup * Update .changeset/many-turtles-tie.md Co-authored-by: Chris Swithinbank --------- Co-authored-by: Chris Swithinbank --- .changeset/many-turtles-tie.md | 5 +++++ packages/astro/src/core/logger/core.ts | 1 + packages/astro/src/core/sync/index.ts | 14 +++++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 .changeset/many-turtles-tie.md diff --git a/.changeset/many-turtles-tie.md b/.changeset/many-turtles-tie.md new file mode 100644 index 000000000000..e98a6c5c75c0 --- /dev/null +++ b/.changeset/many-turtles-tie.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes a missing error message when actions throws during `astro sync` diff --git a/packages/astro/src/core/logger/core.ts b/packages/astro/src/core/logger/core.ts index 530399ac4249..c06866df5c1d 100644 --- a/packages/astro/src/core/logger/core.ts +++ b/packages/astro/src/core/logger/core.ts @@ -27,6 +27,7 @@ export type LoggerLabel = | 'middleware' | 'preferences' | 'redirects' + | 'sync' | 'toolbar' | 'assets' | 'env' diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index 2a7aa83ce268..8b659a4f57be 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -61,7 +61,19 @@ export default async function sync( settings, logger, }); - await runHookConfigDone({ settings, logger }); + + // Run `astro:config:done` + // Actions will throw if there is misconfiguration, so catch here. + try { + await runHookConfigDone({ settings, logger }); + } catch(err) { + if(err instanceof Error) { + const errorMessage = err.toString(); + logger.error('sync', errorMessage); + } + throw err; + } + return await syncInternal({ settings, logger, fs, force: inlineConfig.force }); } From 5d7bc70fc369724e2b6a4dad5a34cbe2a29c98f1 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 3 Sep 2024 13:46:53 +0000 Subject: [PATCH 03/27] [ci] format --- packages/astro/src/core/sync/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index 8b659a4f57be..75acbe2c8400 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -66,8 +66,8 @@ export default async function sync( // Actions will throw if there is misconfiguration, so catch here. try { await runHookConfigDone({ settings, logger }); - } catch(err) { - if(err instanceof Error) { + } catch (err) { + if (err instanceof Error) { const errorMessage = err.toString(); logger.error('sync', errorMessage); } From ca54e3f819fad009ac3c3c8b57a26014a2652a73 Mon Sep 17 00:00:00 2001 From: Gabriel Pereira Woitechen Date: Wed, 4 Sep 2024 10:32:03 -0300 Subject: [PATCH 04/27] perf(astro/assets): avoid downloading original image when using cache (#11904) --- .changeset/purple-ears-sneeze.md | 5 +++++ packages/astro/src/assets/build/generate.ts | 17 ++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 .changeset/purple-ears-sneeze.md diff --git a/.changeset/purple-ears-sneeze.md b/.changeset/purple-ears-sneeze.md new file mode 100644 index 000000000000..b79cc2e68b0d --- /dev/null +++ b/.changeset/purple-ears-sneeze.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +perf(assets): avoid downloading original image when using cache diff --git a/packages/astro/src/assets/build/generate.ts b/packages/astro/src/assets/build/generate.ts index fcc19f4f53a9..645a0acdcbeb 100644 --- a/packages/astro/src/assets/build/generate.ts +++ b/packages/astro/src/assets/build/generate.ts @@ -98,11 +98,11 @@ export async function generateImagesForPath( env: AssetEnv, queue: PQueue, ) { - const originalImageData = await loadImage(originalFilePath, env); + let originalImage: ImageData; for (const [_, transform] of transformsAndPath.transforms) { await queue - .add(async () => generateImage(originalImageData, transform.finalPath, transform.transform)) + .add(async () => generateImage(transform.finalPath, transform.transform)) .catch((e) => { throw e; }); @@ -128,13 +128,9 @@ export async function generateImagesForPath( } } - async function generateImage( - originalImage: ImageData, - filepath: string, - options: ImageTransform, - ) { + async function generateImage(filepath: string, options: ImageTransform) { const timeStart = performance.now(); - const generationData = await generateImageInternal(originalImage, filepath, options); + const generationData = await generateImageInternal(filepath, options); const timeEnd = performance.now(); const timeChange = getTimeStat(timeStart, timeEnd); @@ -151,7 +147,6 @@ export async function generateImagesForPath( } async function generateImageInternal( - originalImage: ImageData, filepath: string, options: ImageTransform, ): Promise { @@ -207,6 +202,10 @@ export async function generateImagesForPath( ? (options.src as ImageMetadata).src : (options.src as string); + if (!originalImage) { + originalImage = await loadImage(originalFilePath, env); + } + let resultData: Partial = { data: undefined, expires: originalImage.expires, From 65bfefb96bd70bf948022e71b72684259fbd5105 Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Wed, 4 Sep 2024 18:42:00 -0700 Subject: [PATCH 05/27] [ci] release (#11909) Co-authored-by: github-actions[bot] --- .changeset/empty-spoons-kiss.md | 5 -- .changeset/forty-spies-train.md | 5 -- .changeset/many-turtles-tie.md | 5 -- .changeset/purple-ears-sneeze.md | 5 -- examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- examples/component/package.json | 2 +- examples/container-with-vitest/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-lit/package.json | 2 +- examples/framework-multiple/package.json | 2 +- examples/framework-preact/package.json | 2 +- examples/framework-react/package.json | 2 +- examples/framework-solid/package.json | 2 +- examples/framework-svelte/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/hackernews/package.json | 2 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 2 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/server-islands/package.json | 2 +- examples/ssr/package.json | 2 +- examples/starlog/package.json | 2 +- examples/toolbar-app/package.json | 2 +- examples/view-transitions/package.json | 2 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 2 +- examples/with-nanostores/package.json | 2 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 10 ++++ packages/astro/package.json | 2 +- packages/db/CHANGELOG.md | 9 ++++ packages/db/package.json | 2 +- pnpm-lock.yaml | 60 ++++++++++----------- 39 files changed, 81 insertions(+), 82 deletions(-) delete mode 100644 .changeset/empty-spoons-kiss.md delete mode 100644 .changeset/forty-spies-train.md delete mode 100644 .changeset/many-turtles-tie.md delete mode 100644 .changeset/purple-ears-sneeze.md diff --git a/.changeset/empty-spoons-kiss.md b/.changeset/empty-spoons-kiss.md deleted file mode 100644 index 8bb114ef6ff9..000000000000 --- a/.changeset/empty-spoons-kiss.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/db': patch ---- - -Fixes mixed environment variable for app token when using DB commands with libSQL remote. diff --git a/.changeset/forty-spies-train.md b/.changeset/forty-spies-train.md deleted file mode 100644 index 5df78b648fb3..000000000000 --- a/.changeset/forty-spies-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fixes case where content layer did not update during clean dev builds on Linux and Windows diff --git a/.changeset/many-turtles-tie.md b/.changeset/many-turtles-tie.md deleted file mode 100644 index e98a6c5c75c0..000000000000 --- a/.changeset/many-turtles-tie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fixes a missing error message when actions throws during `astro sync` diff --git a/.changeset/purple-ears-sneeze.md b/.changeset/purple-ears-sneeze.md deleted file mode 100644 index b79cc2e68b0d..000000000000 --- a/.changeset/purple-ears-sneeze.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -perf(assets): avoid downloading original image when using cache diff --git a/examples/basics/package.json b/examples/basics/package.json index 09d88c7ef4dc..4e428a169b24 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index e1f66ecad3b6..5f74e00eff3f 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^3.1.5", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/component/package.json b/examples/component/package.json index cf6d92516200..c0a820844c23 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json index b62f231a93f1..e9ad07a456cd 100644 --- a/examples/container-with-vitest/package.json +++ b/examples/container-with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest run" }, "dependencies": { - "astro": "^4.15.2", + "astro": "^4.15.3", "@astrojs/react": "^3.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index cde17a7b1aca..e65fd6a68df7 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.4.0", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index 6791b12e2c58..a3801d34d0b6 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^4.3.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^4.15.2", + "astro": "^4.15.3", "lit": "^3.2.0" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 35cb6e6cad38..1b0f5c020587 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -18,7 +18,7 @@ "@astrojs/vue": "^4.5.0", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "preact": "^10.23.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index c60a9cfc01a1..e79537b6dff9 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.5.2", "@preact/signals": "^1.3.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "preact": "^10.23.2" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index 8316eb2567dc..dff8d9ea71bf 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.2", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index 6b014db191ca..934115202180 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^4.4.1", - "astro": "^4.15.2", + "astro": "^4.15.3", "solid-js": "^1.8.22" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 5a1c363e5627..638b4faf6a5d 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^5.7.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "svelte": "^4.2.19" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index f44f9deebf54..5fd11ed4b728 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^4.5.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "vue": "^3.4.38" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 2536820a4100..5bc45625cf8f 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^8.3.3", - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index 0546da22be23..0dbece71b5cc 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index 71d896b1c35b..ef40f32714f4 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^8.3.3", - "astro": "^4.15.2", + "astro": "^4.15.3", "html-minifier": "^4.0.0" }, "devDependencies": { diff --git a/examples/minimal/package.json b/examples/minimal/package.json index d7fcdb6039e2..a6d7a94f0a71 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 6c6facdedf94..88254e77ed35 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 74a63fbec92f..398c2b253ccb 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json index bf302656f18b..f0fdc1c18d70 100644 --- a/examples/server-islands/package.json +++ b/examples/server-islands/package.json @@ -17,7 +17,7 @@ "@tailwindcss/forms": "^0.5.8", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "postcss": "^8.4.43", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/ssr/package.json b/examples/ssr/package.json index b038de0a6dfa..9fde2d824412 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^8.3.3", "@astrojs/svelte": "^5.7.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "svelte": "^4.2.19" } } diff --git a/examples/starlog/package.json b/examples/starlog/package.json index cdb0ecc242c0..44c9720bd1bc 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.2", + "astro": "^4.15.3", "sass": "^1.77.8", "sharp": "^0.33.3" } diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json index 28a78e48dad6..1a494a716f29 100644 --- a/examples/toolbar-app/package.json +++ b/examples/toolbar-app/package.json @@ -15,6 +15,6 @@ "./app": "./dist/app.js" }, "devDependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index d704c40e43cd..08353d203ad7 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^5.1.0", "@astrojs/node": "^8.3.3", - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 1f04430c874e..d2d803acff25 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^0.11.4", - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index e316fe6ce0f0..d3957788b67b 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^5.2.0", - "astro": "^4.15.2", + "astro": "^4.15.3", "hast-util-select": "^6.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 6ff7b45785fa..51b0ed6832b4 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.2" + "astro": "^4.15.3" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index 5a241babc15d..ef86548e5295 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/mdx": "^3.1.5", "@astrojs/preact": "^3.5.2", - "astro": "^4.15.2", + "astro": "^4.15.3", "preact": "^10.23.2" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index 971ad540cd9b..95c46b50ad8c 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.5.2", "@nanostores/preact": "^0.5.2", - "astro": "^4.15.2", + "astro": "^4.15.3", "nanostores": "^0.11.3", "preact": "^10.23.2" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 2ca2e87df15c..52da03b95b15 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^3.1.5", "@astrojs/tailwind": "^5.1.0", "@types/canvas-confetti": "^1.6.4", - "astro": "^4.15.2", + "astro": "^4.15.3", "autoprefixer": "^10.4.20", "canvas-confetti": "^1.9.3", "postcss": "^8.4.43", diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index e7e39bc9efd6..3ef191b18720 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^4.15.2", + "astro": "^4.15.3", "vitest": "^2.0.5" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 9f36294b6228..a5b6337cb6f2 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,15 @@ # astro +## 4.15.3 + +### Patch Changes + +- [#11902](https://github.com/withastro/astro/pull/11902) [`d63bc50`](https://github.com/withastro/astro/commit/d63bc50d9940c1107e0fee7687e5c332549a0eff) Thanks [@ascorbic](https://github.com/ascorbic)! - Fixes case where content layer did not update during clean dev builds on Linux and Windows + +- [#11886](https://github.com/withastro/astro/pull/11886) [`7ff7134`](https://github.com/withastro/astro/commit/7ff7134b8038a3b798293b2218bbf6dd02d2ac32) Thanks [@matthewp](https://github.com/matthewp)! - Fixes a missing error message when actions throws during `astro sync` + +- [#11904](https://github.com/withastro/astro/pull/11904) [`ca54e3f`](https://github.com/withastro/astro/commit/ca54e3f819fad009ac3c3c8b57a26014a2652a73) Thanks [@wtchnm](https://github.com/wtchnm)! - perf(assets): avoid downloading original image when using cache + ## 4.15.2 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index c5bcb3c95317..976b687e2721 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "4.15.2", + "version": "4.15.3", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", diff --git a/packages/db/CHANGELOG.md b/packages/db/CHANGELOG.md index 734768c05bbd..ad11ec028562 100644 --- a/packages/db/CHANGELOG.md +++ b/packages/db/CHANGELOG.md @@ -1,5 +1,14 @@ # @astrojs/db +## 0.14.1 + +### Patch Changes + +- [#11894](https://github.com/withastro/astro/pull/11894) [`cc820c5`](https://github.com/withastro/astro/commit/cc820c5d5e176a8d71594d612af75e1c94b9bf02) Thanks [@Fryuni](https://github.com/Fryuni)! - Fixes mixed environment variable for app token when using DB commands with libSQL remote. + +- Updated dependencies []: + - @astrojs/studio@0.1.1 + ## 0.14.0 ### Minor Changes diff --git a/packages/db/package.json b/packages/db/package.json index 730d551f7211..bb2c1489d245 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/db", - "version": "0.14.0", + "version": "0.14.1", "description": "Add libSQL and Astro Studio support to your Astro site", "license": "MIT", "repository": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51f2f795ff70..34b6143194d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,7 +116,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/blog: @@ -131,13 +131,13 @@ importers: specifier: ^3.1.6 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/container-with-vitest: @@ -146,7 +146,7 @@ importers: specifier: ^3.6.2 version: link:../../packages/integrations/react astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -177,7 +177,7 @@ importers: specifier: ^3.14.1 version: 3.14.1 astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/framework-lit: @@ -189,7 +189,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro lit: specifier: ^3.2.0 @@ -219,7 +219,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -249,7 +249,7 @@ importers: specifier: ^1.3.0 version: 1.3.0(preact@10.23.2) astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -267,7 +267,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -282,7 +282,7 @@ importers: specifier: ^4.4.1 version: link:../../packages/integrations/solid astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro solid-js: specifier: ^1.8.22 @@ -294,7 +294,7 @@ importers: specifier: ^5.7.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -306,7 +306,7 @@ importers: specifier: ^4.5.0 version: link:../../packages/integrations/vue astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro vue: specifier: ^3.4.38 @@ -318,13 +318,13 @@ importers: specifier: ^8.3.3 version: 8.3.3(astro@packages+astro) astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/middleware: @@ -333,7 +333,7 @@ importers: specifier: ^8.3.3 version: 8.3.3(astro@packages+astro) astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -346,19 +346,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/server-islands: @@ -385,7 +385,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro postcss: specifier: ^8.4.43 @@ -409,7 +409,7 @@ importers: specifier: ^5.7.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -418,7 +418,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro sass: specifier: ^1.77.8 @@ -430,7 +430,7 @@ importers: examples/toolbar-app: devDependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/view-transitions: @@ -442,7 +442,7 @@ importers: specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/with-markdoc: @@ -451,7 +451,7 @@ importers: specifier: ^0.11.4 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/with-markdown-plugins: @@ -460,7 +460,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/markdown/remark astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -481,7 +481,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro examples/with-mdx: @@ -493,7 +493,7 @@ importers: specifier: ^3.5.2 version: link:../../packages/integrations/preact astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -508,7 +508,7 @@ importers: specifier: ^0.5.2 version: 0.5.2(nanostores@0.11.3)(preact@10.23.2) astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro nanostores: specifier: ^0.11.3 @@ -529,7 +529,7 @@ importers: specifier: ^1.6.4 version: 1.6.4 astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro autoprefixer: specifier: ^10.4.20 @@ -547,7 +547,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^4.15.2 + specifier: ^4.15.3 version: link:../../packages/astro vitest: specifier: ^2.0.5 From c58193a691775af5c568e461c63040a42e2471f7 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Fri, 6 Sep 2024 11:38:15 +0200 Subject: [PATCH 06/27] fix(add): Use proper export names when adding adapters (#11935) * fix(add): Use proper export names when adding adapters * chore: changeset --- .changeset/green-bulldogs-shout.md | 5 +++++ packages/astro/src/cli/add/index.ts | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 .changeset/green-bulldogs-shout.md diff --git a/.changeset/green-bulldogs-shout.md b/.changeset/green-bulldogs-shout.md new file mode 100644 index 000000000000..c58892b6c1a2 --- /dev/null +++ b/.changeset/green-bulldogs-shout.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes `astro add` not using the proper export point when adding certain adapters diff --git a/packages/astro/src/cli/add/index.ts b/packages/astro/src/cli/add/index.ts index f263904cbb4d..7866f5a093ab 100644 --- a/packages/astro/src/cli/add/index.ts +++ b/packages/astro/src/cli/add/index.ts @@ -279,7 +279,7 @@ export async function add(names: string[], { flags }: AddOptions) { if (isAdapter(integration)) { const officialExportName = OFFICIAL_ADAPTER_TO_IMPORT_MAP[integration.id]; if (officialExportName) { - setAdapter(mod, integration); + setAdapter(mod, integration, officialExportName); } else { logger.info( 'SKIP_FORMAT', @@ -447,7 +447,11 @@ function addIntegration(mod: ProxifiedModule, integration: IntegrationInfo) } } -export function setAdapter(mod: ProxifiedModule, adapter: IntegrationInfo) { +export function setAdapter( + mod: ProxifiedModule, + adapter: IntegrationInfo, + exportName: string, +) { const config = getDefaultExportOptions(mod); const adapterId = toIdent(adapter.id); @@ -455,7 +459,7 @@ export function setAdapter(mod: ProxifiedModule, adapter: IntegrationInfo) mod.imports.$append({ imported: 'default', local: adapterId, - from: adapter.packageName, + from: exportName, }); } From 4a44e82bbdf0572190618d8c5882c63a6525a198 Mon Sep 17 00:00:00 2001 From: Lukas Bachlechner <35543080+lukasbachlechner@users.noreply.github.com> Date: Fri, 6 Sep 2024 13:26:51 +0200 Subject: [PATCH 07/27] fix: explicitly check for null props in `serializeSignals` (#11930) * fix: explicitly check for null props in `serializeSignals` * chore: add changeset --- .changeset/long-lemons-add.md | 5 +++++ .../src/components/ComponentWithNullProp.jsx | 7 +++++++ .../test/fixtures/preact-component/src/pages/signals.astro | 4 +++- packages/astro/test/preact-component.test.js | 7 +++++++ packages/integrations/preact/src/signals.ts | 3 ++- 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 .changeset/long-lemons-add.md create mode 100644 packages/astro/test/fixtures/preact-component/src/components/ComponentWithNullProp.jsx diff --git a/.changeset/long-lemons-add.md b/.changeset/long-lemons-add.md new file mode 100644 index 000000000000..2ad0ecd20c9d --- /dev/null +++ b/.changeset/long-lemons-add.md @@ -0,0 +1,5 @@ +--- +'@astrojs/preact': patch +--- + +Preact components no longer throw an error if a property is null. diff --git a/packages/astro/test/fixtures/preact-component/src/components/ComponentWithNullProp.jsx b/packages/astro/test/fixtures/preact-component/src/components/ComponentWithNullProp.jsx new file mode 100644 index 000000000000..53856ce90275 --- /dev/null +++ b/packages/astro/test/fixtures/preact-component/src/components/ComponentWithNullProp.jsx @@ -0,0 +1,7 @@ +import { h } from 'preact'; + +export default ({ nullProp }) => { + return
+

I have a null prop: {nullProp}

+
+} \ No newline at end of file diff --git a/packages/astro/test/fixtures/preact-component/src/pages/signals.astro b/packages/astro/test/fixtures/preact-component/src/pages/signals.astro index 37b43a73c7ec..8abfe8f025db 100644 --- a/packages/astro/test/fixtures/preact-component/src/pages/signals.astro +++ b/packages/astro/test/fixtures/preact-component/src/pages/signals.astro @@ -3,6 +3,7 @@ import { signal } from '@preact/signals'; import Signals from '../components/Signals'; import SignalsInArray from '../components/SignalsInArray'; import SignalsInObject from '../components/SignalsInObject'; +import ComponentWithNullProp from '../components/ComponentWithNullProp'; const count = signal(1); const secondCount = signal(2); --- @@ -14,6 +15,7 @@ const secondCount = signal(2); - + + diff --git a/packages/astro/test/preact-component.test.js b/packages/astro/test/preact-component.test.js index f5b5c7233b1c..221245b1c334 100644 --- a/packages/astro/test/preact-component.test.js +++ b/packages/astro/test/preact-component.test.js @@ -140,4 +140,11 @@ describe('Preact component', () => { assert.equal(element.find('h1').text(), 'I am a title'); assert.equal(element.find('p').text(), '1'); }); + + it('Can use null props', async () => { + const html = await fixture.readFile('/signals/index.html'); + const $ = cheerio.load(html); + + assert.equal($('#preact-component-with-null-prop').length, 1); + }); }); diff --git a/packages/integrations/preact/src/signals.ts b/packages/integrations/preact/src/signals.ts index 7b797f3858f3..a1f63acdda75 100644 --- a/packages/integrations/preact/src/signals.ts +++ b/packages/integrations/preact/src/signals.ts @@ -38,7 +38,8 @@ export function serializeSignals( const signals: Signals = {}; for (const [key, value] of Object.entries(props)) { const isPropArray = Array.isArray(value); - const isPropObject = !isSignal(value) && typeof props[key] === 'object' && !isPropArray; + // `typeof null` is 'object' in JS, so we need to check for `null` specifically + const isPropObject = !isSignal(value) && typeof props[key] === 'object' && props[key] !== null && !isPropArray; if (isPropObject || isPropArray) { const values = isPropObject ? Object.keys(props[key]) : value; From 4a951597460aa11f4545e9452fe1afc004e5b51f Mon Sep 17 00:00:00 2001 From: Lukas Bachlechner Date: Fri, 6 Sep 2024 11:27:38 +0000 Subject: [PATCH 08/27] [ci] format --- packages/integrations/preact/src/signals.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/integrations/preact/src/signals.ts b/packages/integrations/preact/src/signals.ts index a1f63acdda75..88a50327a47f 100644 --- a/packages/integrations/preact/src/signals.ts +++ b/packages/integrations/preact/src/signals.ts @@ -39,7 +39,8 @@ export function serializeSignals( for (const [key, value] of Object.entries(props)) { const isPropArray = Array.isArray(value); // `typeof null` is 'object' in JS, so we need to check for `null` specifically - const isPropObject = !isSignal(value) && typeof props[key] === 'object' && props[key] !== null && !isPropArray; + const isPropObject = + !isSignal(value) && typeof props[key] === 'object' && props[key] !== null && !isPropArray; if (isPropObject || isPropArray) { const values = isPropObject ? Object.keys(props[key]) : value; From 7d70ba317889b9281c7891038779a68fcb8f0778 Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Fri, 6 Sep 2024 14:23:02 +0200 Subject: [PATCH 09/27] feat(create-astro): ts-check comment (#11924) --- .changeset/nasty-dogs-sort.md | 5 +++++ packages/create-astro/src/actions/typescript.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 .changeset/nasty-dogs-sort.md diff --git a/.changeset/nasty-dogs-sort.md b/.changeset/nasty-dogs-sort.md new file mode 100644 index 000000000000..225012a70036 --- /dev/null +++ b/.changeset/nasty-dogs-sort.md @@ -0,0 +1,5 @@ +--- +'create-astro': patch +--- + +Updates the default Astro config with `// @ts-check` if the Typescript preset is `strict` or `strictest` diff --git a/packages/create-astro/src/actions/typescript.ts b/packages/create-astro/src/actions/typescript.ts index c0034fe4f83a..169aef7089fe 100644 --- a/packages/create-astro/src/actions/typescript.ts +++ b/packages/create-astro/src/actions/typescript.ts @@ -140,6 +140,21 @@ const FILES_TO_UPDATE = { } } }, + 'astro.config.mjs': async (file: string, options: { value: string }) => { + if (!(options.value === 'strict' || options.value === 'strictest')) { + return; + } + + try { + let data = await readFile(file, { encoding: 'utf-8' }); + data = `// @ts-check\n${data}`; + await writeFile(file, data, { encoding: 'utf-8' }); + } catch (err) { + // if there's no astro.config.mjs (which is very unlikely), then do nothing + if (err && (err as any).code === 'ENOENT') return; + if (err instanceof Error) throw new Error(err.message); + } + }, }; export async function setupTypeScript(value: string, ctx: PickedTypeScriptContext) { From e55c668b258e21c78375947596f00b6f7e4ba719 Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Fri, 6 Sep 2024 15:23:17 +0200 Subject: [PATCH 10/27] chore: changeset minor (#11938) --- .changeset/nasty-dogs-sort.md | 2 +- .vscode/settings.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/nasty-dogs-sort.md b/.changeset/nasty-dogs-sort.md index 225012a70036..792320403ed4 100644 --- a/.changeset/nasty-dogs-sort.md +++ b/.changeset/nasty-dogs-sort.md @@ -1,5 +1,5 @@ --- -'create-astro': patch +'create-astro': minor --- Updates the default Astro config with `// @ts-check` if the Typescript preset is `strict` or `strictest` diff --git a/.vscode/settings.json b/.vscode/settings.json index b3e10e7bccee..a626d0892c59 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,7 +15,7 @@ "editor.defaultFormatter": "biomejs.biome" }, "editor.codeActionsOnSave": { - "quickFix.biome": true, - "source.fixAll.biome": true + "quickFix.biome": "explicit", + "source.fixAll.biome": "explicit" } } From bd1d4aaf8262187b4f132d7fe0365902131ddf1a Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Fri, 6 Sep 2024 12:41:39 -0400 Subject: [PATCH 11/27] Allow passing into the crypto key via ASTRO_KEY (#11879) * Allow passing into the crypto key via ASTRO_KEY * Add a changeset * Add test * Use the node package * omg * Create a new create-key command * linting * lint again * Update the changeset --- .changeset/four-tips-accept.md | 23 +++++++++++++ .../server-islands-key/astro.config.mjs | 12 +++++++ .../fixtures/server-islands-key/package.json | 12 +++++++ .../src/components/Island.astro | 6 ++++ .../server-islands-key/src/pages/index.astro | 14 ++++++++ packages/astro/e2e/server-islands-key.test.js | 33 +++++++++++++++++++ packages/astro/e2e/test-utils.js | 4 +++ packages/astro/src/cli/create-key/index.ts | 31 +++++++++++++++++ packages/astro/src/cli/index.ts | 8 +++++ packages/astro/src/core/build/index.ts | 7 ++-- packages/astro/src/core/encryption.ts | 29 ++++++++++++++++ packages/astro/src/core/logger/core.ts | 1 + .../server-islands/ssr/astro.config.mjs | 2 ++ pnpm-lock.yaml | 9 +++++ 14 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 .changeset/four-tips-accept.md create mode 100644 packages/astro/e2e/fixtures/server-islands-key/astro.config.mjs create mode 100644 packages/astro/e2e/fixtures/server-islands-key/package.json create mode 100644 packages/astro/e2e/fixtures/server-islands-key/src/components/Island.astro create mode 100644 packages/astro/e2e/fixtures/server-islands-key/src/pages/index.astro create mode 100644 packages/astro/e2e/server-islands-key.test.js create mode 100644 packages/astro/src/cli/create-key/index.ts diff --git a/.changeset/four-tips-accept.md b/.changeset/four-tips-accept.md new file mode 100644 index 000000000000..bfab504736af --- /dev/null +++ b/.changeset/four-tips-accept.md @@ -0,0 +1,23 @@ +--- +'astro': patch +--- + +Allow passing a cryptography key via ASTRO_KEY + +For Server islands Astro creates a cryptography key in order to hash props for the islands, preventing accidental leakage of secrets. + +If you deploy to an environment with rolling updates then there could be multiple instances of your app with different keys, causing potential key mismatches. + +To fix this you can now pass the `ASTRO_KEY` environment variable to your build in order to reuse the same key. + +To generate a key use: + +``` +astro create-key +``` + +This will print out an environment variable to set like: + +``` +ASTRO_KEY=PIAuyPNn2aKU/bviapEuc/nVzdzZPizKNo3OqF/5PmQ= +``` diff --git a/packages/astro/e2e/fixtures/server-islands-key/astro.config.mjs b/packages/astro/e2e/fixtures/server-islands-key/astro.config.mjs new file mode 100644 index 000000000000..db1a7b45243e --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands-key/astro.config.mjs @@ -0,0 +1,12 @@ +import { defineConfig } from 'astro/config'; +import node from '@astrojs/node'; + +// https://astro.build/config +export default defineConfig({ + output: 'server', + adapter: node({ mode: 'standalone' }), + integrations: [], + experimental: { + serverIslands: true, + } +}); diff --git a/packages/astro/e2e/fixtures/server-islands-key/package.json b/packages/astro/e2e/fixtures/server-islands-key/package.json new file mode 100644 index 000000000000..b03c575c7e54 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands-key/package.json @@ -0,0 +1,12 @@ +{ + "name": "@e2e/server-islands-key", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "astro dev" + }, + "dependencies": { + "astro": "workspace:*", + "@astrojs/node": "^8.3.3" + } +} diff --git a/packages/astro/e2e/fixtures/server-islands-key/src/components/Island.astro b/packages/astro/e2e/fixtures/server-islands-key/src/components/Island.astro new file mode 100644 index 000000000000..5eab0dc4dfc3 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands-key/src/components/Island.astro @@ -0,0 +1,6 @@ +--- +const { secret } = Astro.props; +--- +

I am an island

+ +

{secret}

diff --git a/packages/astro/e2e/fixtures/server-islands-key/src/pages/index.astro b/packages/astro/e2e/fixtures/server-islands-key/src/pages/index.astro new file mode 100644 index 000000000000..a19aa8a27518 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands-key/src/pages/index.astro @@ -0,0 +1,14 @@ +--- +import Island from '../components/Island.astro'; +--- + + + + + + + +

children

+
+ + diff --git a/packages/astro/e2e/server-islands-key.test.js b/packages/astro/e2e/server-islands-key.test.js new file mode 100644 index 000000000000..2120d1368fac --- /dev/null +++ b/packages/astro/e2e/server-islands-key.test.js @@ -0,0 +1,33 @@ +import { expect } from '@playwright/test'; +import { testFactory } from './test-utils.js'; + +const test = testFactory(import.meta.url, { root: './fixtures/server-islands-key/' }); + +test.describe('Server islands - Key reuse', () => { + test.describe('Production', () => { + let previewServer; + + test.beforeAll(async ({ astro }) => { + // Playwright's Node version doesn't have these functions, so stub them. + process.stdout.clearLine = () => {}; + process.stdout.cursorTo = () => {}; + process.env.ASTRO_KEY = 'eKBaVEuI7YjfanEXHuJe/pwZKKt3LkAHeMxvTU7aR0M='; + await astro.build(); + previewServer = await astro.preview(); + }); + + test.afterAll(async () => { + await previewServer.stop(); + delete process.env.ASTRO_KEY; + }); + + test('Components render properly', async ({ page, astro }) => { + await page.goto(astro.resolveUrl('/')); + + let el = page.locator('#island'); + + await expect(el, 'element rendered').toBeVisible(); + await expect(el, 'should have content').toHaveText('I am an island'); + }); + }); +}); diff --git a/packages/astro/e2e/test-utils.js b/packages/astro/e2e/test-utils.js index 933186a7181e..7ae2e552a571 100644 --- a/packages/astro/e2e/test-utils.js +++ b/packages/astro/e2e/test-utils.js @@ -14,6 +14,10 @@ const testFileToPort = new Map(); for (let i = 0; i < testFiles.length; i++) { const file = testFiles[i]; if (file.endsWith('.test.js')) { + // Port 4045 is an unsafe port in Chrome, so skip it. + if((4000 + i) === 4045) { + i++; + } testFileToPort.set(file, 4000 + i); } } diff --git a/packages/astro/src/cli/create-key/index.ts b/packages/astro/src/cli/create-key/index.ts new file mode 100644 index 000000000000..55091d5059f9 --- /dev/null +++ b/packages/astro/src/cli/create-key/index.ts @@ -0,0 +1,31 @@ +import { type Flags, flagsToAstroInlineConfig } from '../flags.js'; +import { createNodeLogger } from '../../core/config/logging.js'; +import { createKey as createCryptoKey,encodeKey } from '../../core/encryption.js'; + +interface CreateKeyOptions { + flags: Flags; +} + +export async function createKey({ flags }: CreateKeyOptions): Promise<0 | 1> { + try { + const inlineConfig = flagsToAstroInlineConfig(flags); + const logger = createNodeLogger(inlineConfig); + + const keyPromise = createCryptoKey(); + const key = await keyPromise; + const encoded = await encodeKey(key); + + logger.info('crypto', `Generated a key to encrypt props passed to Server islands. To reuse the same key across builds, set this value as ASTRO_KEY in an environment variable on your build server. + +ASTRO_KEY=${encoded}`); + } catch(err: unknown) { + if(err != null) { + // eslint-disable-next-line no-console + console.error(err.toString()); + } + return 1; + } + + + return 0; +} diff --git a/packages/astro/src/cli/index.ts b/packages/astro/src/cli/index.ts index c767569fde51..23486f938a3b 100644 --- a/packages/astro/src/cli/index.ts +++ b/packages/astro/src/cli/index.ts @@ -7,6 +7,7 @@ type CLICommand = | 'help' | 'version' | 'add' + | 'create-key' | 'docs' | 'dev' | 'build' @@ -30,6 +31,7 @@ async function printAstroHelp() { ['add', 'Add an integration.'], ['build', 'Build your project and write it to disk.'], ['check', 'Check your project for errors.'], + ['create-key', 'Create a cryptography key'], ['db', 'Manage your Astro database.'], ['dev', 'Start the development server.'], ['docs', 'Open documentation in your web browser.'], @@ -78,6 +80,7 @@ function resolveCommand(flags: yargs.Arguments): CLICommand { 'build', 'preview', 'check', + 'create-key', 'docs', 'db', 'info', @@ -111,6 +114,11 @@ async function runCommand(cmd: string, flags: yargs.Arguments) { await printInfo({ flags }); return; } + case 'create-key': { + const { createKey } = await import('./create-key/index.js'); + const exitCode = await createKey({ flags }); + return process.exit(exitCode); + } case 'docs': { const { docs } = await import('./docs/index.js'); await docs({ flags }); diff --git a/packages/astro/src/core/build/index.ts b/packages/astro/src/core/build/index.ts index 70d24012845a..4253b8802f5a 100644 --- a/packages/astro/src/core/build/index.ts +++ b/packages/astro/src/core/build/index.ts @@ -23,7 +23,7 @@ import { resolveConfig } from '../config/config.js'; import { createNodeLogger } from '../config/logging.js'; import { createSettings } from '../config/settings.js'; import { createVite } from '../create-vite.js'; -import { createKey } from '../encryption.js'; +import { createKey, getEnvironmentKey, hasEnvironmentKey } from '../encryption.js'; import type { Logger } from '../logger/core.js'; import { levels, timerMessage } from '../logger/core.js'; import { apply as applyPolyfill } from '../polyfill.js'; @@ -188,6 +188,9 @@ class AstroBuilder { green(`✓ Completed in ${getTimeStat(this.timer.init, performance.now())}.`), ); + const hasKey = hasEnvironmentKey(); + const keyPromise = hasKey ? getEnvironmentKey() : createKey(); + const opts: StaticBuildOptions = { allPages, settings: this.settings, @@ -198,7 +201,7 @@ class AstroBuilder { pageNames, teardownCompiler: this.teardownCompiler, viteConfig, - key: createKey(), + key: keyPromise, }; const { internals, ssrOutputChunkNames, contentFileNames } = await viteBuild(opts); diff --git a/packages/astro/src/core/encryption.ts b/packages/astro/src/core/encryption.ts index ccfc9bdd274f..7cfba99d94ff 100644 --- a/packages/astro/src/core/encryption.ts +++ b/packages/astro/src/core/encryption.ts @@ -20,6 +20,35 @@ export async function createKey() { return key; } +// The environment variable name that can be used to provide the encrypted key. +const ENVIRONMENT_KEY_NAME = 'ASTRO_KEY' as const; + +/** + * Get the encoded value of the ASTRO_KEY env var. + */ +export function getEncodedEnvironmentKey(): string { + return process.env[ENVIRONMENT_KEY_NAME] || ''; +} + +/** + * See if the environment variable key ASTRO_KEY is set. + */ +export function hasEnvironmentKey(): boolean { + return getEncodedEnvironmentKey() !== ''; +} + +/** + * Get the environment variable key and decode it into a CryptoKey. + */ +export async function getEnvironmentKey(): Promise { + // This should never happen, because we always check `hasEnvironmentKey` before this is called. + if(!hasEnvironmentKey()) { + throw new Error(`There is no environment key defined. If you see this error there is a bug in Astro.`) + } + const encodedKey = getEncodedEnvironmentKey(); + return decodeKey(encodedKey); +} + /** * Takes a key that has been serialized to an array of bytes and returns a CryptoKey */ diff --git a/packages/astro/src/core/logger/core.ts b/packages/astro/src/core/logger/core.ts index c06866df5c1d..51ebd9325b06 100644 --- a/packages/astro/src/core/logger/core.ts +++ b/packages/astro/src/core/logger/core.ts @@ -18,6 +18,7 @@ export type LoggerLabel = | 'check' | 'config' | 'content' + | 'crypto' | 'deprecated' | 'markdown' | 'router' diff --git a/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs b/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs index 8eb474b04853..79ce4c497abb 100644 --- a/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs +++ b/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs @@ -1,7 +1,9 @@ import svelte from '@astrojs/svelte'; import { defineConfig } from 'astro/config'; +import testAdapter from '../../../test-adapter.js'; export default defineConfig({ + adapter: testAdapter(), output: 'server', integrations: [ svelte() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34b6143194d9..29ef628484f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1615,6 +1615,15 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) + packages/astro/e2e/fixtures/server-islands-key: + dependencies: + '@astrojs/node': + specifier: ^8.3.3 + version: 8.3.3(astro@packages+astro) + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/e2e/fixtures/solid-circular: dependencies: '@astrojs/solid-js': From c0c96452a26a2fb56acbc99cc67fd1e808e66d0e Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Fri, 6 Sep 2024 16:42:29 +0000 Subject: [PATCH 12/27] [ci] format --- packages/astro/e2e/test-utils.js | 2 +- packages/astro/src/cli/create-key/index.ts | 40 ++++++++++++---------- packages/astro/src/core/encryption.ts | 6 ++-- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/packages/astro/e2e/test-utils.js b/packages/astro/e2e/test-utils.js index 7ae2e552a571..a2728f9627c2 100644 --- a/packages/astro/e2e/test-utils.js +++ b/packages/astro/e2e/test-utils.js @@ -15,7 +15,7 @@ for (let i = 0; i < testFiles.length; i++) { const file = testFiles[i]; if (file.endsWith('.test.js')) { // Port 4045 is an unsafe port in Chrome, so skip it. - if((4000 + i) === 4045) { + if (4000 + i === 4045) { i++; } testFileToPort.set(file, 4000 + i); diff --git a/packages/astro/src/cli/create-key/index.ts b/packages/astro/src/cli/create-key/index.ts index 55091d5059f9..d9b9f08ffd52 100644 --- a/packages/astro/src/cli/create-key/index.ts +++ b/packages/astro/src/cli/create-key/index.ts @@ -1,31 +1,33 @@ -import { type Flags, flagsToAstroInlineConfig } from '../flags.js'; import { createNodeLogger } from '../../core/config/logging.js'; -import { createKey as createCryptoKey,encodeKey } from '../../core/encryption.js'; +import { createKey as createCryptoKey, encodeKey } from '../../core/encryption.js'; +import { type Flags, flagsToAstroInlineConfig } from '../flags.js'; interface CreateKeyOptions { flags: Flags; } export async function createKey({ flags }: CreateKeyOptions): Promise<0 | 1> { - try { - const inlineConfig = flagsToAstroInlineConfig(flags); - const logger = createNodeLogger(inlineConfig); + try { + const inlineConfig = flagsToAstroInlineConfig(flags); + const logger = createNodeLogger(inlineConfig); - const keyPromise = createCryptoKey(); - const key = await keyPromise; - const encoded = await encodeKey(key); + const keyPromise = createCryptoKey(); + const key = await keyPromise; + const encoded = await encodeKey(key); - logger.info('crypto', `Generated a key to encrypt props passed to Server islands. To reuse the same key across builds, set this value as ASTRO_KEY in an environment variable on your build server. + logger.info( + 'crypto', + `Generated a key to encrypt props passed to Server islands. To reuse the same key across builds, set this value as ASTRO_KEY in an environment variable on your build server. -ASTRO_KEY=${encoded}`); - } catch(err: unknown) { - if(err != null) { - // eslint-disable-next-line no-console - console.error(err.toString()); - } - return 1; - } - +ASTRO_KEY=${encoded}`, + ); + } catch (err: unknown) { + if (err != null) { + // eslint-disable-next-line no-console + console.error(err.toString()); + } + return 1; + } - return 0; + return 0; } diff --git a/packages/astro/src/core/encryption.ts b/packages/astro/src/core/encryption.ts index 7cfba99d94ff..253e5f3c97bd 100644 --- a/packages/astro/src/core/encryption.ts +++ b/packages/astro/src/core/encryption.ts @@ -42,8 +42,10 @@ export function hasEnvironmentKey(): boolean { */ export async function getEnvironmentKey(): Promise { // This should never happen, because we always check `hasEnvironmentKey` before this is called. - if(!hasEnvironmentKey()) { - throw new Error(`There is no environment key defined. If you see this error there is a bug in Astro.`) + if (!hasEnvironmentKey()) { + throw new Error( + `There is no environment key defined. If you see this error there is a bug in Astro.`, + ); } const encodedKey = getEncodedEnvironmentKey(); return decodeKey(encodedKey); From 0d50d7545eae102cadff80e4963ef9b27eabba6c Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Fri, 6 Sep 2024 09:47:30 -0700 Subject: [PATCH 13/27] [ci] release (#11936) Co-authored-by: github-actions[bot] --- .changeset/four-tips-accept.md | 23 ------- .changeset/green-bulldogs-shout.md | 5 -- .changeset/long-lemons-add.md | 5 -- .changeset/nasty-dogs-sort.md | 5 -- examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- examples/component/package.json | 2 +- examples/container-with-vitest/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-lit/package.json | 2 +- examples/framework-multiple/package.json | 4 +- examples/framework-preact/package.json | 4 +- examples/framework-react/package.json | 2 +- examples/framework-solid/package.json | 2 +- examples/framework-svelte/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/hackernews/package.json | 2 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 2 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/server-islands/package.json | 2 +- examples/ssr/package.json | 2 +- examples/starlog/package.json | 2 +- examples/toolbar-app/package.json | 2 +- examples/view-transitions/package.json | 2 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 4 +- examples/with-nanostores/package.json | 4 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 26 ++++++++ packages/astro/package.json | 2 +- packages/create-astro/CHANGELOG.md | 6 ++ packages/create-astro/package.json | 2 +- packages/integrations/preact/CHANGELOG.md | 6 ++ packages/integrations/preact/package.json | 2 +- pnpm-lock.yaml | 68 ++++++++++----------- 41 files changed, 109 insertions(+), 109 deletions(-) delete mode 100644 .changeset/four-tips-accept.md delete mode 100644 .changeset/green-bulldogs-shout.md delete mode 100644 .changeset/long-lemons-add.md delete mode 100644 .changeset/nasty-dogs-sort.md diff --git a/.changeset/four-tips-accept.md b/.changeset/four-tips-accept.md deleted file mode 100644 index bfab504736af..000000000000 --- a/.changeset/four-tips-accept.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -'astro': patch ---- - -Allow passing a cryptography key via ASTRO_KEY - -For Server islands Astro creates a cryptography key in order to hash props for the islands, preventing accidental leakage of secrets. - -If you deploy to an environment with rolling updates then there could be multiple instances of your app with different keys, causing potential key mismatches. - -To fix this you can now pass the `ASTRO_KEY` environment variable to your build in order to reuse the same key. - -To generate a key use: - -``` -astro create-key -``` - -This will print out an environment variable to set like: - -``` -ASTRO_KEY=PIAuyPNn2aKU/bviapEuc/nVzdzZPizKNo3OqF/5PmQ= -``` diff --git a/.changeset/green-bulldogs-shout.md b/.changeset/green-bulldogs-shout.md deleted file mode 100644 index c58892b6c1a2..000000000000 --- a/.changeset/green-bulldogs-shout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fixes `astro add` not using the proper export point when adding certain adapters diff --git a/.changeset/long-lemons-add.md b/.changeset/long-lemons-add.md deleted file mode 100644 index 2ad0ecd20c9d..000000000000 --- a/.changeset/long-lemons-add.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@astrojs/preact': patch ---- - -Preact components no longer throw an error if a property is null. diff --git a/.changeset/nasty-dogs-sort.md b/.changeset/nasty-dogs-sort.md deleted file mode 100644 index 792320403ed4..000000000000 --- a/.changeset/nasty-dogs-sort.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'create-astro': minor ---- - -Updates the default Astro config with `// @ts-check` if the Typescript preset is `strict` or `strictest` diff --git a/examples/basics/package.json b/examples/basics/package.json index 4e428a169b24..a6bbf72554da 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 5f74e00eff3f..2935f2ceed86 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^3.1.5", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/component/package.json b/examples/component/package.json index c0a820844c23..3f44cb9385fe 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json index e9ad07a456cd..6d5aea4c37fc 100644 --- a/examples/container-with-vitest/package.json +++ b/examples/container-with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest run" }, "dependencies": { - "astro": "^4.15.3", + "astro": "^4.15.4", "@astrojs/react": "^3.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index e65fd6a68df7..1d0b64c2c346 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.4.0", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index a3801d34d0b6..1aba743b6d54 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^4.3.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^4.15.3", + "astro": "^4.15.4", "lit": "^3.2.0" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 1b0f5c020587..015b84921a0f 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -11,14 +11,14 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.2", + "@astrojs/preact": "^3.5.3", "@astrojs/react": "^3.6.2", "@astrojs/solid-js": "^4.4.1", "@astrojs/svelte": "^5.7.0", "@astrojs/vue": "^4.5.0", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "preact": "^10.23.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index e79537b6dff9..2d2924649b4d 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.2", + "@astrojs/preact": "^3.5.3", "@preact/signals": "^1.3.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "preact": "^10.23.2" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index dff8d9ea71bf..97cb985ef9cc 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.2", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index 934115202180..8ccd47f5294f 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^4.4.1", - "astro": "^4.15.3", + "astro": "^4.15.4", "solid-js": "^1.8.22" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 638b4faf6a5d..eb29897a7c45 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^5.7.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "svelte": "^4.2.19" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 5fd11ed4b728..29d24f286921 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^4.5.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "vue": "^3.4.38" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 5bc45625cf8f..4115eb8014a7 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^8.3.3", - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index 0dbece71b5cc..3377faa51ecf 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index ef40f32714f4..a35011515d9d 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^8.3.3", - "astro": "^4.15.3", + "astro": "^4.15.4", "html-minifier": "^4.0.0" }, "devDependencies": { diff --git a/examples/minimal/package.json b/examples/minimal/package.json index a6d7a94f0a71..8a892c29f4d9 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 88254e77ed35..0106f522117f 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 398c2b253ccb..fb6256b22275 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json index f0fdc1c18d70..f3546ad4bb58 100644 --- a/examples/server-islands/package.json +++ b/examples/server-islands/package.json @@ -17,7 +17,7 @@ "@tailwindcss/forms": "^0.5.8", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "postcss": "^8.4.43", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/ssr/package.json b/examples/ssr/package.json index 9fde2d824412..652197543d6c 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^8.3.3", "@astrojs/svelte": "^5.7.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "svelte": "^4.2.19" } } diff --git a/examples/starlog/package.json b/examples/starlog/package.json index 44c9720bd1bc..76ec978fee20 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.3", + "astro": "^4.15.4", "sass": "^1.77.8", "sharp": "^0.33.3" } diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json index 1a494a716f29..6e452f1ada0a 100644 --- a/examples/toolbar-app/package.json +++ b/examples/toolbar-app/package.json @@ -15,6 +15,6 @@ "./app": "./dist/app.js" }, "devDependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index 08353d203ad7..1563b1cb9e23 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^5.1.0", "@astrojs/node": "^8.3.3", - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index d2d803acff25..94241cc27289 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^0.11.4", - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index d3957788b67b..fdc774ee1d26 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^5.2.0", - "astro": "^4.15.3", + "astro": "^4.15.4", "hast-util-select": "^6.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 51b0ed6832b4..420c6270d116 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.15.3" + "astro": "^4.15.4" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index ef86548e5295..1b4e7cd4f745 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "@astrojs/mdx": "^3.1.5", - "@astrojs/preact": "^3.5.2", - "astro": "^4.15.3", + "@astrojs/preact": "^3.5.3", + "astro": "^4.15.4", "preact": "^10.23.2" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index 95c46b50ad8c..8706fad193b6 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.2", + "@astrojs/preact": "^3.5.3", "@nanostores/preact": "^0.5.2", - "astro": "^4.15.3", + "astro": "^4.15.4", "nanostores": "^0.11.3", "preact": "^10.23.2" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 52da03b95b15..c3e3f8201ad2 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^3.1.5", "@astrojs/tailwind": "^5.1.0", "@types/canvas-confetti": "^1.6.4", - "astro": "^4.15.3", + "astro": "^4.15.4", "autoprefixer": "^10.4.20", "canvas-confetti": "^1.9.3", "postcss": "^8.4.43", diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 3ef191b18720..39f947259536 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^4.15.3", + "astro": "^4.15.4", "vitest": "^2.0.5" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index a5b6337cb6f2..7853efb1650e 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,31 @@ # astro +## 4.15.4 + +### Patch Changes + +- [#11879](https://github.com/withastro/astro/pull/11879) [`bd1d4aa`](https://github.com/withastro/astro/commit/bd1d4aaf8262187b4f132d7fe0365902131ddf1a) Thanks [@matthewp](https://github.com/matthewp)! - Allow passing a cryptography key via ASTRO_KEY + + For Server islands Astro creates a cryptography key in order to hash props for the islands, preventing accidental leakage of secrets. + + If you deploy to an environment with rolling updates then there could be multiple instances of your app with different keys, causing potential key mismatches. + + To fix this you can now pass the `ASTRO_KEY` environment variable to your build in order to reuse the same key. + + To generate a key use: + + ``` + astro create-key + ``` + + This will print out an environment variable to set like: + + ``` + ASTRO_KEY=PIAuyPNn2aKU/bviapEuc/nVzdzZPizKNo3OqF/5PmQ= + ``` + +- [#11935](https://github.com/withastro/astro/pull/11935) [`c58193a`](https://github.com/withastro/astro/commit/c58193a691775af5c568e461c63040a42e2471f7) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Fixes `astro add` not using the proper export point when adding certain adapters + ## 4.15.3 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 976b687e2721..d2117995f763 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "4.15.3", + "version": "4.15.4", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", diff --git a/packages/create-astro/CHANGELOG.md b/packages/create-astro/CHANGELOG.md index ebde2e51fa70..9d91eab2a6ce 100644 --- a/packages/create-astro/CHANGELOG.md +++ b/packages/create-astro/CHANGELOG.md @@ -1,5 +1,11 @@ # create-astro +## 4.9.0 + +### Minor Changes + +- [#11924](https://github.com/withastro/astro/pull/11924) [`7d70ba3`](https://github.com/withastro/astro/commit/7d70ba317889b9281c7891038779a68fcb8f0778) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Updates the default Astro config with `// @ts-check` if the Typescript preset is `strict` or `strictest` + ## 4.8.4 ### Patch Changes diff --git a/packages/create-astro/package.json b/packages/create-astro/package.json index b3bfd006f718..fcae9af3d07c 100644 --- a/packages/create-astro/package.json +++ b/packages/create-astro/package.json @@ -1,6 +1,6 @@ { "name": "create-astro", - "version": "4.8.4", + "version": "4.9.0", "type": "module", "author": "withastro", "license": "MIT", diff --git a/packages/integrations/preact/CHANGELOG.md b/packages/integrations/preact/CHANGELOG.md index 43330b468e84..b7138a78d25d 100644 --- a/packages/integrations/preact/CHANGELOG.md +++ b/packages/integrations/preact/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/preact +## 3.5.3 + +### Patch Changes + +- [#11930](https://github.com/withastro/astro/pull/11930) [`4a44e82`](https://github.com/withastro/astro/commit/4a44e82bbdf0572190618d8c5882c63a6525a198) Thanks [@lukasbachlechner](https://github.com/lukasbachlechner)! - Preact components no longer throw an error if a property is null. + ## 3.5.2 ### Patch Changes diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json index 31006ab707ea..5874d666d3fd 100644 --- a/packages/integrations/preact/package.json +++ b/packages/integrations/preact/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/preact", "description": "Use Preact components within Astro", - "version": "3.5.2", + "version": "3.5.3", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 29ef628484f1..e53be306e3f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,7 +116,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/blog: @@ -131,13 +131,13 @@ importers: specifier: ^3.1.6 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/container-with-vitest: @@ -146,7 +146,7 @@ importers: specifier: ^3.6.2 version: link:../../packages/integrations/react astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -177,7 +177,7 @@ importers: specifier: ^3.14.1 version: 3.14.1 astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/framework-lit: @@ -189,7 +189,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro lit: specifier: ^3.2.0 @@ -198,7 +198,7 @@ importers: examples/framework-multiple: dependencies: '@astrojs/preact': - specifier: ^3.5.2 + specifier: ^3.5.3 version: link:../../packages/integrations/preact '@astrojs/react': specifier: ^3.6.2 @@ -219,7 +219,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -243,13 +243,13 @@ importers: examples/framework-preact: dependencies: '@astrojs/preact': - specifier: ^3.5.2 + specifier: ^3.5.3 version: link:../../packages/integrations/preact '@preact/signals': specifier: ^1.3.0 version: 1.3.0(preact@10.23.2) astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -267,7 +267,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -282,7 +282,7 @@ importers: specifier: ^4.4.1 version: link:../../packages/integrations/solid astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro solid-js: specifier: ^1.8.22 @@ -294,7 +294,7 @@ importers: specifier: ^5.7.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -306,7 +306,7 @@ importers: specifier: ^4.5.0 version: link:../../packages/integrations/vue astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro vue: specifier: ^3.4.38 @@ -318,13 +318,13 @@ importers: specifier: ^8.3.3 version: 8.3.3(astro@packages+astro) astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/middleware: @@ -333,7 +333,7 @@ importers: specifier: ^8.3.3 version: 8.3.3(astro@packages+astro) astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -346,19 +346,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/server-islands: @@ -385,7 +385,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro postcss: specifier: ^8.4.43 @@ -409,7 +409,7 @@ importers: specifier: ^5.7.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -418,7 +418,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro sass: specifier: ^1.77.8 @@ -430,7 +430,7 @@ importers: examples/toolbar-app: devDependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/view-transitions: @@ -442,7 +442,7 @@ importers: specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/with-markdoc: @@ -451,7 +451,7 @@ importers: specifier: ^0.11.4 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/with-markdown-plugins: @@ -460,7 +460,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/markdown/remark astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -481,7 +481,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro examples/with-mdx: @@ -490,10 +490,10 @@ importers: specifier: ^3.1.5 version: link:../../packages/integrations/mdx '@astrojs/preact': - specifier: ^3.5.2 + specifier: ^3.5.3 version: link:../../packages/integrations/preact astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -502,13 +502,13 @@ importers: examples/with-nanostores: dependencies: '@astrojs/preact': - specifier: ^3.5.2 + specifier: ^3.5.3 version: link:../../packages/integrations/preact '@nanostores/preact': specifier: ^0.5.2 version: 0.5.2(nanostores@0.11.3)(preact@10.23.2) astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro nanostores: specifier: ^0.11.3 @@ -529,7 +529,7 @@ importers: specifier: ^1.6.4 version: 1.6.4 astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro autoprefixer: specifier: ^10.4.20 @@ -547,7 +547,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^4.15.3 + specifier: ^4.15.4 version: link:../../packages/astro vitest: specifier: ^2.0.5 From 7b09c62b565cd7b50c35fb68d390729f936a43fb Mon Sep 17 00:00:00 2001 From: Ben Holmes Date: Fri, 6 Sep 2024 16:41:51 -0400 Subject: [PATCH 14/27] Actions: add discriminated union support (#11939) * feat: discriminated union for form validators * chore: changeset --- .changeset/mighty-stingrays-press.md | 63 +++++++++++++++++++ .../src/actions/runtime/virtual/server.ts | 14 ++++- packages/astro/test/actions.test.js | 33 ++++++++++ .../fixtures/actions/src/actions/index.ts | 23 +++++++ 4 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 .changeset/mighty-stingrays-press.md diff --git a/.changeset/mighty-stingrays-press.md b/.changeset/mighty-stingrays-press.md new file mode 100644 index 000000000000..12c353dcd928 --- /dev/null +++ b/.changeset/mighty-stingrays-press.md @@ -0,0 +1,63 @@ +--- +'astro': patch +--- + +Adds support for Zod discriminated unions on Action form inputs. This allows forms with different inputs to be submitted to the same action, using a given input to decide which object should be used for validation. + +This example accepts either a `create` or `update` form submission, and uses the `type` field to determine which object to validate against. + +```ts +import { defineAction } from 'astro:actions'; +import { z } from 'astro:schema'; + +export const server = { + changeUser: defineAction({ + accept: 'form', + input: z.discriminatedUnion('type', [ + z.object({ + type: z.literal('create'), + name: z.string(), + email: z.string().email(), + }), + z.object({ + type: z.literal('update'), + id: z.number(), + name: z.string(), + email: z.string().email(), + }), + ]), + async handler(input) { + if (input.type === 'create') { + // input is { type: 'create', name: string, email: string } + } else { + // input is { type: 'update', id: number, name: string, email: string } + } + }, + }), +} +``` + +The corresponding `create` and `update` forms may look like this: + +```astro +--- +import { actions } from 'astro:actions'; +--- + + +
+ + + + +
+ + +
+ + + + + +
+``` diff --git a/packages/astro/src/actions/runtime/virtual/server.ts b/packages/astro/src/actions/runtime/virtual/server.ts index cd1b4269ed38..8e5e6bb4f1a5 100644 --- a/packages/astro/src/actions/runtime/virtual/server.ts +++ b/packages/astro/src/actions/runtime/virtual/server.ts @@ -92,7 +92,7 @@ function getFormServerHandler( if (!inputSchema) return await handler(unparsedInput, context); - const baseSchema = unwrapSchemaEffects(inputSchema); + const baseSchema = unwrapBaseObjectSchema(inputSchema, unparsedInput); const parsed = await inputSchema.safeParseAsync( baseSchema instanceof z.ZodObject ? formDataToObject(unparsedInput, baseSchema) @@ -191,7 +191,7 @@ function handleFormDataGet( return validator instanceof z.ZodNumber ? Number(value) : value; } -function unwrapSchemaEffects(schema: z.ZodType) { +function unwrapBaseObjectSchema(schema: z.ZodType, unparsedInput: FormData) { while (schema instanceof z.ZodEffects || schema instanceof z.ZodPipeline) { if (schema instanceof z.ZodEffects) { schema = schema._def.schema; @@ -200,5 +200,15 @@ function unwrapSchemaEffects(schema: z.ZodType) { schema = schema._def.in; } } + if (schema instanceof z.ZodDiscriminatedUnion) { + const typeKey = schema._def.discriminator; + const typeValue = unparsedInput.get(typeKey); + if (typeof typeValue !== 'string') return schema; + + const objSchema = schema._def.optionsMap.get(typeValue); + if (!objSchema) return schema; + + return objSchema; + } return schema; } diff --git a/packages/astro/test/actions.test.js b/packages/astro/test/actions.test.js index 334e07a173e2..17758e82c8f6 100644 --- a/packages/astro/test/actions.test.js +++ b/packages/astro/test/actions.test.js @@ -395,6 +395,39 @@ describe('Astro Actions', () => { assert.ok(value.date instanceof Date); assert.ok(value.set instanceof Set); }); + + it('Supports discriminated union for different form fields', async () => { + const formData = new FormData(); + formData.set('type', 'first-chunk'); + formData.set('alt', 'Cool image'); + formData.set('image', new File([''], 'chunk-1.png')); + const reqFirst = new Request('http://example.com/_actions/imageUploadInChunks', { + method: 'POST', + body: formData, + }); + + const resFirst = await app.render(reqFirst); + assert.equal(resFirst.status, 200); + assert.equal(resFirst.headers.get('Content-Type'), 'application/json+devalue'); + const data = devalue.parse(await resFirst.text()); + const uploadId = data?.uploadId; + assert.ok(uploadId); + + const formDataRest = new FormData(); + formDataRest.set('type', 'rest-chunk'); + formDataRest.set('uploadId', 'fake'); + formDataRest.set('image', new File([''], 'chunk-2.png')); + const reqRest = new Request('http://example.com/_actions/imageUploadInChunks', { + method: 'POST', + body: formDataRest, + }); + + const resRest = await app.render(reqRest); + assert.equal(resRest.status, 200); + assert.equal(resRest.headers.get('Content-Type'), 'application/json+devalue'); + const dataRest = devalue.parse(await resRest.text()); + assert.equal('fake', dataRest?.uploadId); + }); }); }); diff --git a/packages/astro/test/fixtures/actions/src/actions/index.ts b/packages/astro/test/fixtures/actions/src/actions/index.ts index ed7692799353..4e6120309fd6 100644 --- a/packages/astro/test/fixtures/actions/src/actions/index.ts +++ b/packages/astro/test/fixtures/actions/src/actions/index.ts @@ -7,6 +7,29 @@ const passwordSchema = z .max(128, 'Password length exceeded. Max 128 chars.'); export const server = { + imageUploadInChunks: defineAction({ + accept: 'form', + input: z.discriminatedUnion('type', [ + z.object({ + type: z.literal('first-chunk'), + image: z.instanceof(File), + alt: z.string(), + }), + z.object({ type: z.literal('rest-chunk'), image: z.instanceof(File), uploadId: z.string() }), + ]), + handler: async (data) => { + if (data.type === 'first-chunk') { + const uploadId = Math.random().toString(36).slice(2); + return { + uploadId, + }; + } else { + return { + uploadId: data.uploadId, + }; + } + }, + }), subscribe: defineAction({ input: z.object({ channel: z.string() }), handler: async ({ channel }) => { From fa4671ca283266092cf4f52357836d2f57817089 Mon Sep 17 00:00:00 2001 From: Sarah Rainsberger Date: Sat, 7 Sep 2024 16:14:22 -0300 Subject: [PATCH 15/27] [error docs] Update error messages that reference src/content/ (#11943) --- .changeset/sharp-worms-sniff.md | 5 +++++ packages/astro/src/core/errors/errors-data.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/sharp-worms-sniff.md diff --git a/.changeset/sharp-worms-sniff.md b/.changeset/sharp-worms-sniff.md new file mode 100644 index 000000000000..4cd7050b992b --- /dev/null +++ b/.changeset/sharp-worms-sniff.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Updates error messages that assume content collections are located in `src/content/` with more generic language diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index 8e189bfe462a..8c972a5fd81a 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1431,7 +1431,7 @@ export const GetEntryDeprecationError = { * "title" is required.
* "date" must be a valid date. * @description - * A Markdown or MDX entry in `src/content/` does not match its collection schema. + * A Markdown or MDX entry does not match its collection schema. * Make sure that all required fields are present, and that all fields are of the correct type. * You can check against the collection schema in your `src/content/config.*` file. * See the [Content collections documentation](https://docs.astro.build/en/guides/content-collections/) for more information. @@ -1455,7 +1455,7 @@ export const InvalidContentEntryFrontmatterError = { * @see * - [The reserved entry `slug` field](https://docs.astro.build/en/guides/content-collections/) * @description - * An entry in `src/content/` has an invalid `slug`. This field is reserved for generating entry slugs, and must be a string when present. + * A collection entry has an invalid `slug`. This field is reserved for generating entry slugs, and must be a string when present. */ export const InvalidContentEntrySlugError = { name: 'InvalidContentEntrySlugError', From b9394fa70c913f36e60034c0b84819d30edb4dec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:27:54 +0800 Subject: [PATCH 16/27] chore(deps): update all non-major dependencies (#11948) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/framework-multiple/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/server-islands/package.json | 4 +- examples/starlog/package.json | 2 +- examples/with-tailwindcss/package.json | 2 +- package.json | 6 +- packages/astro-rss/package.json | 2 +- .../e2e/fixtures/astro-envs/package.json | 2 +- .../e2e/fixtures/client-only/package.json | 2 +- .../e2e/fixtures/error-sass/package.json | 2 +- .../astro/e2e/fixtures/errors/package.json | 4 +- packages/astro/e2e/fixtures/hmr/package.json | 2 +- .../fixtures/multiple-frameworks/package.json | 2 +- .../fixtures/nested-in-preact/package.json | 2 +- .../e2e/fixtures/nested-in-react/package.json | 2 +- .../e2e/fixtures/nested-in-solid/package.json | 2 +- .../fixtures/nested-in-svelte/package.json | 2 +- .../e2e/fixtures/nested-in-vue/package.json | 2 +- .../fixtures/nested-recursive/package.json | 2 +- .../e2e/fixtures/tailwindcss/package.json | 2 +- .../fixtures/view-transitions/package.json | 2 +- .../e2e/fixtures/vue-component/package.json | 2 +- packages/astro/package.json | 10 +- .../astro/test/fixtures/0-css/package.json | 2 +- .../test/fixtures/astro-children/package.json | 2 +- .../test/fixtures/astro-envs/package.json | 2 +- .../fixtures/astro-slots-nested/package.json | 2 +- .../container-custom-renderers/package.json | 2 +- .../astro/test/fixtures/fetch/package.json | 2 +- .../fixtures/fontsource-package/package.json | 4 +- packages/astro/test/fixtures/jsx/package.json | 2 +- .../astro/test/fixtures/postcss/package.json | 4 +- .../test/fixtures/slots-vue/package.json | 2 +- .../test/fixtures/tailwindcss-ts/package.json | 2 +- .../test/fixtures/tailwindcss/package.json | 2 +- .../test/fixtures/vue-component/package.json | 2 +- .../astro/test/fixtures/vue-jsx/package.json | 2 +- .../vue-with-multi-renderer/package.json | 2 +- packages/db/package.json | 2 +- packages/integrations/alpinejs/package.json | 4 +- packages/integrations/lit/package.json | 2 +- packages/integrations/markdoc/package.json | 2 +- packages/integrations/mdx/package.json | 4 +- packages/integrations/react/package.json | 2 +- .../fixtures/react-component/package.json | 2 +- packages/integrations/solid/package.json | 2 +- packages/integrations/svelte/package.json | 4 +- packages/integrations/tailwind/package.json | 4 +- packages/integrations/vue/package.json | 8 +- .../app-entrypoint-async/package.json | 2 +- .../package.json | 2 +- .../test/fixtures/app-entrypoint/package.json | 2 +- packages/markdown/remark/package.json | 2 +- packages/studio/package.json | 2 +- packages/telemetry/package.json | 2 +- pnpm-lock.yaml | 1518 ++++++++--------- 56 files changed, 820 insertions(+), 842 deletions(-) diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 015b84921a0f..f459c4aeff2b 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -24,6 +24,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 29d24f286921..004b6ebac2a5 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -13,6 +13,6 @@ "dependencies": { "@astrojs/vue": "^4.5.0", "astro": "^4.15.4", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json index f3546ad4bb58..86f7acb1a216 100644 --- a/examples/server-islands/package.json +++ b/examples/server-islands/package.json @@ -14,11 +14,11 @@ "@astrojs/react": "^3.6.2", "@astrojs/tailwind": "^5.1.0", "@fortawesome/fontawesome-free": "^6.6.0", - "@tailwindcss/forms": "^0.5.8", + "@tailwindcss/forms": "^0.5.9", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "astro": "^4.15.4", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "react": "^18.3.1", "react-dom": "^18.3.1", "tailwindcss": "^3.4.10" diff --git a/examples/starlog/package.json b/examples/starlog/package.json index 76ec978fee20..2886d3cb5ec0 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "astro": "^4.15.4", - "sass": "^1.77.8", + "sass": "^1.78.0", "sharp": "^0.33.3" } } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index c3e3f8201ad2..8f7995b45dbe 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -17,7 +17,7 @@ "astro": "^4.15.4", "autoprefixer": "^10.4.20", "canvas-confetti": "^1.9.3", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "tailwindcss": "^3.4.10" } } diff --git a/package.json b/package.json index afdf3301518f..3248be8fd8ff 100644 --- a/package.json +++ b/package.json @@ -55,10 +55,10 @@ "@astrojs/check": "^0.9.3", "@biomejs/biome": "1.8.3", "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.7", + "@changesets/cli": "^2.27.8", "@types/node": "^18.17.8", "esbuild": "^0.21.5", - "eslint": "^9.9.1", + "eslint": "^9.10.0", "eslint-plugin-no-only-tests": "^3.3.0", "eslint-plugin-regexp": "^2.6.0", "globby": "^14.0.2", @@ -67,7 +67,7 @@ "prettier-plugin-astro": "^0.14.1", "turbo": "^2.1.1", "typescript": "~5.5.4", - "typescript-eslint": "^8.3.0" + "typescript-eslint": "^8.4.0" }, "pnpm": { "peerDependencyRules": { diff --git a/packages/astro-rss/package.json b/packages/astro-rss/package.json index ba07de25bc25..d65b71c6dc33 100644 --- a/packages/astro-rss/package.json +++ b/packages/astro-rss/package.json @@ -33,7 +33,7 @@ "xml2js": "0.6.2" }, "dependencies": { - "fast-xml-parser": "^4.4.1", + "fast-xml-parser": "^4.5.0", "kleur": "^4.1.5" } } diff --git a/packages/astro/e2e/fixtures/astro-envs/package.json b/packages/astro/e2e/fixtures/astro-envs/package.json index 7bb5ecfd0f3e..271277f785a6 100644 --- a/packages/astro/e2e/fixtures/astro-envs/package.json +++ b/packages/astro/e2e/fixtures/astro-envs/package.json @@ -5,6 +5,6 @@ "dependencies": { "@astrojs/vue": "workspace:*", "astro": "workspace:*", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/client-only/package.json b/packages/astro/e2e/fixtures/client-only/package.json index d89fe7898351..dc634e91f622 100644 --- a/packages/astro/e2e/fixtures/client-only/package.json +++ b/packages/astro/e2e/fixtures/client-only/package.json @@ -16,6 +16,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/error-sass/package.json b/packages/astro/e2e/fixtures/error-sass/package.json index 9658b550a1f6..d59b5322c4f8 100644 --- a/packages/astro/e2e/fixtures/error-sass/package.json +++ b/packages/astro/e2e/fixtures/error-sass/package.json @@ -4,6 +4,6 @@ "private": true, "dependencies": { "astro": "workspace:*", - "sass": "^1.77.8" + "sass": "^1.78.0" } } diff --git a/packages/astro/e2e/fixtures/errors/package.json b/packages/astro/e2e/fixtures/errors/package.json index ab47d7da80c4..e65edebd9bb6 100644 --- a/packages/astro/e2e/fixtures/errors/package.json +++ b/packages/astro/e2e/fixtures/errors/package.json @@ -12,9 +12,9 @@ "preact": "^10.23.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "sass": "^1.77.8", + "sass": "^1.78.0", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/hmr/package.json b/packages/astro/e2e/fixtures/hmr/package.json index 87d59ab7f6e2..ad1071383553 100644 --- a/packages/astro/e2e/fixtures/hmr/package.json +++ b/packages/astro/e2e/fixtures/hmr/package.json @@ -4,6 +4,6 @@ "private": true, "devDependencies": { "astro": "workspace:*", - "sass": "^1.77.8" + "sass": "^1.78.0" } } diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/package.json b/packages/astro/e2e/fixtures/multiple-frameworks/package.json index 709120423894..bdd2cfe17f7b 100644 --- a/packages/astro/e2e/fixtures/multiple-frameworks/package.json +++ b/packages/astro/e2e/fixtures/multiple-frameworks/package.json @@ -19,6 +19,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/nested-in-preact/package.json b/packages/astro/e2e/fixtures/nested-in-preact/package.json index c5f10cd437f8..e32875c4d7a8 100644 --- a/packages/astro/e2e/fixtures/nested-in-preact/package.json +++ b/packages/astro/e2e/fixtures/nested-in-preact/package.json @@ -16,6 +16,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/nested-in-react/package.json b/packages/astro/e2e/fixtures/nested-in-react/package.json index bac0d1bae491..146de6ea4dd7 100644 --- a/packages/astro/e2e/fixtures/nested-in-react/package.json +++ b/packages/astro/e2e/fixtures/nested-in-react/package.json @@ -16,6 +16,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/nested-in-solid/package.json b/packages/astro/e2e/fixtures/nested-in-solid/package.json index 4a2748eb52a2..9c47f29e6c22 100644 --- a/packages/astro/e2e/fixtures/nested-in-solid/package.json +++ b/packages/astro/e2e/fixtures/nested-in-solid/package.json @@ -16,6 +16,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/package.json b/packages/astro/e2e/fixtures/nested-in-svelte/package.json index a98e441f5328..58915a0d66a8 100644 --- a/packages/astro/e2e/fixtures/nested-in-svelte/package.json +++ b/packages/astro/e2e/fixtures/nested-in-svelte/package.json @@ -16,6 +16,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/nested-in-vue/package.json b/packages/astro/e2e/fixtures/nested-in-vue/package.json index 1702f98bf872..d41f8e86f7e0 100644 --- a/packages/astro/e2e/fixtures/nested-in-vue/package.json +++ b/packages/astro/e2e/fixtures/nested-in-vue/package.json @@ -16,6 +16,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/nested-recursive/package.json b/packages/astro/e2e/fixtures/nested-recursive/package.json index d35cf0eb5a22..d3d0cb6b576e 100644 --- a/packages/astro/e2e/fixtures/nested-recursive/package.json +++ b/packages/astro/e2e/fixtures/nested-recursive/package.json @@ -16,7 +16,7 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" }, "scripts": { "dev": "astro dev" diff --git a/packages/astro/e2e/fixtures/tailwindcss/package.json b/packages/astro/e2e/fixtures/tailwindcss/package.json index 14d4c210b203..1f856578131b 100644 --- a/packages/astro/e2e/fixtures/tailwindcss/package.json +++ b/packages/astro/e2e/fixtures/tailwindcss/package.json @@ -6,7 +6,7 @@ "@astrojs/tailwind": "workspace:*", "astro": "workspace:*", "autoprefixer": "^10.4.20", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "tailwindcss": "^3.4.10" } } diff --git a/packages/astro/e2e/fixtures/view-transitions/package.json b/packages/astro/e2e/fixtures/view-transitions/package.json index e40816ffd8fd..48cf30a9ae4b 100644 --- a/packages/astro/e2e/fixtures/view-transitions/package.json +++ b/packages/astro/e2e/fixtures/view-transitions/package.json @@ -11,6 +11,6 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/e2e/fixtures/vue-component/package.json b/packages/astro/e2e/fixtures/vue-component/package.json index 98e9e12394cd..f53a1479fc2f 100644 --- a/packages/astro/e2e/fixtures/vue-component/package.json +++ b/packages/astro/e2e/fixtures/vue-component/package.json @@ -6,6 +6,6 @@ "@astrojs/mdx": "workspace:*", "@astrojs/vue": "workspace:*", "astro": "workspace:*", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/package.json b/packages/astro/package.json index d2117995f763..11ad27c58c34 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -142,7 +142,7 @@ "common-ancestor-path": "^1.0.1", "cookie": "^0.6.0", "cssesc": "^3.0.0", - "debug": "^4.3.6", + "debug": "^4.3.7", "deterministic-object-hash": "^2.0.2", "devalue": "^5.0.0", "diff": "^5.2.0", @@ -173,14 +173,14 @@ "prompts": "^2.4.2", "rehype": "^13.0.1", "semver": "^7.6.3", - "shiki": "^1.16.1", + "shiki": "^1.16.2", "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "tinyexec": "^0.3.0", "tsconfck": "^3.1.3", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3", - "vite": "^5.4.2", + "vite": "^5.4.3", "vitefu": "^1.0.2", "which-pm": "^3.0.0", "xxhash-wasm": "^1.0.2", @@ -194,7 +194,7 @@ }, "devDependencies": { "@astrojs/check": "^0.9.3", - "@playwright/test": "^1.46.1", + "@playwright/test": "^1.47.0", "@types/aria-query": "^5.0.4", "@types/common-ancestor-path": "^1.0.2", "@types/cssesc": "^3.0.2", @@ -225,7 +225,7 @@ "rehype-toc": "^3.0.2", "remark-code-titles": "^0.1.2", "rollup": "^4.21.2", - "sass": "^1.77.8", + "sass": "^1.78.0", "undici": "^6.19.8", "unified": "^11.0.5" }, diff --git a/packages/astro/test/fixtures/0-css/package.json b/packages/astro/test/fixtures/0-css/package.json index 782bddc067af..a462c4eab66d 100644 --- a/packages/astro/test/fixtures/0-css/package.json +++ b/packages/astro/test/fixtures/0-css/package.json @@ -10,6 +10,6 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/astro-children/package.json b/packages/astro/test/fixtures/astro-children/package.json index 038487d67d08..1eca53bfa5f9 100644 --- a/packages/astro/test/fixtures/astro-children/package.json +++ b/packages/astro/test/fixtures/astro-children/package.json @@ -9,6 +9,6 @@ "astro": "workspace:*", "preact": "^10.23.2", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/astro-envs/package.json b/packages/astro/test/fixtures/astro-envs/package.json index ececd485cf31..264d4d23af19 100644 --- a/packages/astro/test/fixtures/astro-envs/package.json +++ b/packages/astro/test/fixtures/astro-envs/package.json @@ -5,6 +5,6 @@ "dependencies": { "@astrojs/vue": "workspace:*", "astro": "workspace:*", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/astro-slots-nested/package.json b/packages/astro/test/fixtures/astro-slots-nested/package.json index 4f3ed29e02f5..db5d8edd128a 100644 --- a/packages/astro/test/fixtures/astro-slots-nested/package.json +++ b/packages/astro/test/fixtures/astro-slots-nested/package.json @@ -14,6 +14,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/container-custom-renderers/package.json b/packages/astro/test/fixtures/container-custom-renderers/package.json index 6ffebecb957c..fd7740fd3e00 100644 --- a/packages/astro/test/fixtures/container-custom-renderers/package.json +++ b/packages/astro/test/fixtures/container-custom-renderers/package.json @@ -9,6 +9,6 @@ "astro": "workspace:*", "react": "^18.3.1", "react-dom": "^18.3.1", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/fetch/package.json b/packages/astro/test/fixtures/fetch/package.json index 97aa25a78396..8ef26a016997 100644 --- a/packages/astro/test/fixtures/fetch/package.json +++ b/packages/astro/test/fixtures/fetch/package.json @@ -9,6 +9,6 @@ "astro": "workspace:*", "preact": "^10.23.2", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/fontsource-package/package.json b/packages/astro/test/fixtures/fontsource-package/package.json index 558a54d16b51..14316760f6cb 100644 --- a/packages/astro/test/fixtures/fontsource-package/package.json +++ b/packages/astro/test/fixtures/fontsource-package/package.json @@ -3,8 +3,8 @@ "version": "0.0.0", "private": true, "dependencies": { - "@fontsource/monofett": "5.0.21", - "@fontsource/montserrat": "5.0.19", + "@fontsource/monofett": "5.0.22", + "@fontsource/montserrat": "5.0.20", "astro": "workspace:*" } } diff --git a/packages/astro/test/fixtures/jsx/package.json b/packages/astro/test/fixtures/jsx/package.json index 6d32dffe4d29..152caf935381 100644 --- a/packages/astro/test/fixtures/jsx/package.json +++ b/packages/astro/test/fixtures/jsx/package.json @@ -17,6 +17,6 @@ "react-dom": "^18.3.1", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/postcss/package.json b/packages/astro/test/fixtures/postcss/package.json index 45438302bd8f..1cd556f4c94b 100644 --- a/packages/astro/test/fixtures/postcss/package.json +++ b/packages/astro/test/fixtures/postcss/package.json @@ -8,10 +8,10 @@ "@astrojs/vue": "workspace:*", "astro": "workspace:*", "autoprefixer": "^10.4.20", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "solid-js": "^1.8.22", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" }, "devDependencies": { "postcss-preset-env": "^10.0.2" diff --git a/packages/astro/test/fixtures/slots-vue/package.json b/packages/astro/test/fixtures/slots-vue/package.json index da27c3cc4a31..58557e3755fd 100644 --- a/packages/astro/test/fixtures/slots-vue/package.json +++ b/packages/astro/test/fixtures/slots-vue/package.json @@ -6,6 +6,6 @@ "@astrojs/mdx": "workspace:*", "@astrojs/vue": "workspace:*", "astro": "workspace:*", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/tailwindcss-ts/package.json b/packages/astro/test/fixtures/tailwindcss-ts/package.json index f20ea92e9b71..8d707667ab12 100644 --- a/packages/astro/test/fixtures/tailwindcss-ts/package.json +++ b/packages/astro/test/fixtures/tailwindcss-ts/package.json @@ -5,7 +5,7 @@ "dependencies": { "@astrojs/tailwind": "workspace:*", "astro": "workspace:*", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "tailwindcss": "^3.4.10" } } diff --git a/packages/astro/test/fixtures/tailwindcss/package.json b/packages/astro/test/fixtures/tailwindcss/package.json index 6e175dff1abd..2b164bb44ed9 100644 --- a/packages/astro/test/fixtures/tailwindcss/package.json +++ b/packages/astro/test/fixtures/tailwindcss/package.json @@ -7,7 +7,7 @@ "@astrojs/tailwind": "workspace:*", "astro": "workspace:*", "autoprefixer": "^10.4.20", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "tailwindcss": "^3.4.10" } } diff --git a/packages/astro/test/fixtures/vue-component/package.json b/packages/astro/test/fixtures/vue-component/package.json index ad3d4af4825e..a9a47cf603a4 100644 --- a/packages/astro/test/fixtures/vue-component/package.json +++ b/packages/astro/test/fixtures/vue-component/package.json @@ -5,6 +5,6 @@ "dependencies": { "@astrojs/vue": "workspace:*", "astro": "workspace:*", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/vue-jsx/package.json b/packages/astro/test/fixtures/vue-jsx/package.json index c089466fa627..3ef40cd2941b 100644 --- a/packages/astro/test/fixtures/vue-jsx/package.json +++ b/packages/astro/test/fixtures/vue-jsx/package.json @@ -5,6 +5,6 @@ "dependencies": { "@astrojs/vue": "workspace:*", "astro": "workspace:*", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/astro/test/fixtures/vue-with-multi-renderer/package.json b/packages/astro/test/fixtures/vue-with-multi-renderer/package.json index f91b6a9c3050..52b4866fbfac 100644 --- a/packages/astro/test/fixtures/vue-with-multi-renderer/package.json +++ b/packages/astro/test/fixtures/vue-with-multi-renderer/package.json @@ -7,6 +7,6 @@ "@astrojs/vue": "workspace:*", "astro": "workspace:*", "svelte": "^4.2.19", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/db/package.json b/packages/db/package.json index bb2c1489d245..d9f6b406c773 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -92,6 +92,6 @@ "astro-scripts": "workspace:*", "cheerio": "1.0.0", "typescript": "^5.5.4", - "vite": "^5.4.2" + "vite": "^5.4.3" } } diff --git a/packages/integrations/alpinejs/package.json b/packages/integrations/alpinejs/package.json index acb14e240615..83264c6ce32f 100644 --- a/packages/integrations/alpinejs/package.json +++ b/packages/integrations/alpinejs/package.json @@ -38,10 +38,10 @@ "alpinejs": "^3.0.0" }, "devDependencies": { - "@playwright/test": "1.46.1", + "@playwright/test": "1.47.0", "astro": "workspace:*", "astro-scripts": "workspace:*", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "publishConfig": { "provenance": true diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json index 6f6bcacb34dc..3323aca394c9 100644 --- a/packages/integrations/lit/package.json +++ b/packages/integrations/lit/package.json @@ -61,7 +61,7 @@ "astro-scripts": "workspace:*", "cheerio": "1.0.0", "lit": "^3.2.0", - "sass": "^1.77.8" + "sass": "^1.78.0" }, "peerDependencies": { "@webcomponents/template-shadowroot": "^0.2.1", diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index 260480044c56..1e7a90f3999f 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -80,7 +80,7 @@ "astro-scripts": "workspace:*", "devalue": "^5.0.0", "linkedom": "^0.18.4", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "engines": { "node": "^18.17.1 || ^20.3.0 || >=21.0.0" diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 240ee74292fc..77a24527b0fc 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -68,9 +68,9 @@ "remark-rehype": "^11.1.0", "remark-shiki-twoslash": "^3.1.3", "remark-toc": "^9.0.0", - "shiki": "^1.16.1", + "shiki": "^1.16.2", "unified": "^11.0.5", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "engines": { "node": "^18.17.1 || ^20.3.0 || >=21.0.0" diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json index 4f45a472d1be..64e6c4d335b0 100644 --- a/packages/integrations/react/package.json +++ b/packages/integrations/react/package.json @@ -66,7 +66,7 @@ "cheerio": "1.0.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21", diff --git a/packages/integrations/react/test/fixtures/react-component/package.json b/packages/integrations/react/test/fixtures/react-component/package.json index 5e2149b65cbd..4002f7705e48 100644 --- a/packages/integrations/react/test/fixtures/react-component/package.json +++ b/packages/integrations/react/test/fixtures/react-component/package.json @@ -8,6 +8,6 @@ "astro": "workspace:*", "react": "^18.3.1", "react-dom": "^18.3.1", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json index 5219c3e0091d..5320cc57e879 100644 --- a/packages/integrations/solid/package.json +++ b/packages/integrations/solid/package.json @@ -41,7 +41,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "solid-js": "^1.8.22", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "peerDependencies": { "solid-devtools": "^0.30.1", diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index 85f0da9fddcb..a4139d1949d5 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -51,13 +51,13 @@ }, "dependencies": { "@sveltejs/vite-plugin-svelte": "^3.1.2", - "svelte2tsx": "^0.7.16" + "svelte2tsx": "^0.7.18" }, "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", "svelte": "^4.2.19", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "peerDependencies": { "astro": "^4.0.0", diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index fb0ee9182ee0..a9e16dd12491 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -34,14 +34,14 @@ }, "dependencies": { "autoprefixer": "^10.4.20", - "postcss": "^8.4.43", + "postcss": "^8.4.45", "postcss-load-config": "^4.0.2" }, "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", "tailwindcss": "^3.4.10", - "vite": "^5.4.2" + "vite": "^5.4.3" }, "peerDependencies": { "astro": "^3.0.0 || ^4.0.0", diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 8861fb38f156..c7e937e4ba96 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -46,16 +46,16 @@ "dependencies": { "@vitejs/plugin-vue": "^5.1.3", "@vitejs/plugin-vue-jsx": "^4.0.1", - "@vue/compiler-sfc": "^3.4.38", - "vite-plugin-vue-devtools": "^7.3.9" + "@vue/compiler-sfc": "^3.5.3", + "vite-plugin-vue-devtools": "^7.4.4" }, "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0", "linkedom": "^0.18.4", - "vite": "^5.4.2", - "vue": "^3.4.38" + "vite": "^5.4.3", + "vue": "^3.5.3" }, "peerDependencies": { "astro": "^4.0.0", diff --git a/packages/integrations/vue/test/fixtures/app-entrypoint-async/package.json b/packages/integrations/vue/test/fixtures/app-entrypoint-async/package.json index 12f40f78c37d..9acaf8f7a6ff 100644 --- a/packages/integrations/vue/test/fixtures/app-entrypoint-async/package.json +++ b/packages/integrations/vue/test/fixtures/app-entrypoint-async/package.json @@ -6,6 +6,6 @@ "@astrojs/vue": "workspace:*", "astro": "workspace:*", "vite-svg-loader": "5.1.0", - "vue": "^3.4.38" + "vue": "^3.5.3" } } \ No newline at end of file diff --git a/packages/integrations/vue/test/fixtures/app-entrypoint-no-export-default/package.json b/packages/integrations/vue/test/fixtures/app-entrypoint-no-export-default/package.json index 2c096c0c781d..109ec7d61f35 100644 --- a/packages/integrations/vue/test/fixtures/app-entrypoint-no-export-default/package.json +++ b/packages/integrations/vue/test/fixtures/app-entrypoint-no-export-default/package.json @@ -9,6 +9,6 @@ "@astrojs/vue": "workspace:*", "astro": "workspace:*", "vite-svg-loader": "5.1.0", - "vue": "^3.4.38" + "vue": "^3.5.3" } } diff --git a/packages/integrations/vue/test/fixtures/app-entrypoint/package.json b/packages/integrations/vue/test/fixtures/app-entrypoint/package.json index 137f724ace03..06def1ba60c7 100644 --- a/packages/integrations/vue/test/fixtures/app-entrypoint/package.json +++ b/packages/integrations/vue/test/fixtures/app-entrypoint/package.json @@ -6,6 +6,6 @@ "@astrojs/vue": "workspace:*", "astro": "workspace:*", "vite-svg-loader": "5.1.0", - "vue": "^3.4.38" + "vue": "^3.5.3" } } \ No newline at end of file diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json index 50e8ef1f27cb..9231d9afa4f4 100644 --- a/packages/markdown/remark/package.json +++ b/packages/markdown/remark/package.json @@ -45,7 +45,7 @@ "remark-parse": "^11.0.0", "remark-rehype": "^11.1.0", "remark-smartypants": "^3.0.2", - "shiki": "^1.16.1", + "shiki": "^1.16.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", diff --git a/packages/studio/package.json b/packages/studio/package.json index dccf824b9426..75c6c86974a2 100644 --- a/packages/studio/package.json +++ b/packages/studio/package.json @@ -42,6 +42,6 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "typescript": "^5.5.4", - "vite": "^5.4.2" + "vite": "^5.4.3" } } diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index 706aa2a53ace..064401ce8dfe 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -30,7 +30,7 @@ ], "dependencies": { "ci-info": "^4.0.0", - "debug": "^4.3.6", + "debug": "^4.3.7", "dlv": "^1.1.3", "dset": "^3.1.3", "is-docker": "^3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e53be306e3f7..9937787d9940 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,8 +22,8 @@ importers: specifier: ^0.5.0 version: 0.5.0 '@changesets/cli': - specifier: ^2.27.7 - version: 2.27.7 + specifier: ^2.27.8 + version: 2.27.8 '@types/node': specifier: ^18.17.8 version: 18.19.31 @@ -31,14 +31,14 @@ importers: specifier: ^0.21.5 version: 0.21.5 eslint: - specifier: ^9.9.1 - version: 9.9.1(jiti@1.21.0) + specifier: ^9.10.0 + version: 9.10.0(jiti@1.21.0) eslint-plugin-no-only-tests: specifier: ^3.3.0 version: 3.3.0 eslint-plugin-regexp: specifier: ^2.6.0 - version: 2.6.0(eslint@9.9.1(jiti@1.21.0)) + version: 2.6.0(eslint@9.10.0(jiti@1.21.0)) globby: specifier: ^14.0.2 version: 14.0.2 @@ -58,8 +58,8 @@ importers: specifier: ~5.5.4 version: 5.5.4 typescript-eslint: - specifier: ^8.3.0 - version: 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) + specifier: ^8.4.0 + version: 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) benchmark: dependencies: @@ -156,7 +156,7 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@18.19.31)(jsdom@23.2.0)(sass@1.77.8) + version: 2.0.5(@types/node@18.19.31)(jsdom@23.2.0)(sass@1.78.0) devDependencies: '@types/react': specifier: ^18.3.5 @@ -237,8 +237,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) examples/framework-preact: dependencies: @@ -309,8 +309,8 @@ importers: specifier: ^4.15.4 version: link:../../packages/astro vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) examples/hackernews: dependencies: @@ -376,8 +376,8 @@ importers: specifier: ^6.6.0 version: 6.6.0 '@tailwindcss/forms': - specifier: ^0.5.8 - version: 0.5.8(tailwindcss@3.4.10) + specifier: ^0.5.9 + version: 0.5.9(tailwindcss@3.4.10) '@types/react': specifier: ^18.3.5 version: 18.3.5 @@ -388,8 +388,8 @@ importers: specifier: ^4.15.4 version: link:../../packages/astro postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 react: specifier: ^18.3.1 version: 18.3.1 @@ -421,8 +421,8 @@ importers: specifier: ^4.15.4 version: link:../../packages/astro sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 sharp: specifier: ^0.33.3 version: 0.33.3 @@ -533,13 +533,13 @@ importers: version: link:../../packages/astro autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.43) + version: 10.4.20(postcss@8.4.45) canvas-confetti: specifier: ^1.9.3 version: 1.9.3 postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 tailwindcss: specifier: ^3.4.10 version: 3.4.10 @@ -551,7 +551,7 @@ importers: version: link:../../packages/astro vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@18.19.31)(jsdom@23.2.0)(sass@1.77.8) + version: 2.0.5(@types/node@18.19.31)(jsdom@23.2.0)(sass@1.78.0) packages/astro: dependencies: @@ -616,8 +616,8 @@ importers: specifier: ^3.0.0 version: 3.0.0 debug: - specifier: ^4.3.6 - version: 4.3.6 + specifier: ^4.3.7 + version: 4.3.7 deterministic-object-hash: specifier: ^2.0.2 version: 2.0.2 @@ -709,8 +709,8 @@ importers: specifier: ^7.6.3 version: 7.6.3 shiki: - specifier: ^1.16.1 - version: 1.16.1 + specifier: ^1.16.2 + version: 1.16.2 string-width: specifier: ^7.2.0 version: 7.2.0 @@ -730,11 +730,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) vitefu: specifier: ^1.0.2 - version: 1.0.2(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + version: 1.0.2(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) which-pm: specifier: ^3.0.0 version: 3.0.0 @@ -762,8 +762,8 @@ importers: specifier: ^0.9.3 version: 0.9.3(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.5.4) '@playwright/test': - specifier: ^1.46.1 - version: 1.46.1 + specifier: ^1.47.0 + version: 1.47.0 '@types/aria-query': specifier: ^5.0.4 version: 5.0.4 @@ -855,8 +855,8 @@ importers: specifier: ^4.21.2 version: 4.21.2 sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 undici: specifier: ^6.19.8 version: 6.19.8 @@ -880,8 +880,8 @@ importers: packages/astro-rss: dependencies: fast-xml-parser: - specifier: ^4.4.1 - version: 4.4.1 + specifier: ^4.5.0 + version: 4.5.0 kleur: specifier: ^4.1.5 version: 4.1.5 @@ -995,8 +995,8 @@ importers: specifier: workspace:* version: link:../../.. vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/e2e/fixtures/client-idle-timeout: dependencies: @@ -1032,8 +1032,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1114,8 +1114,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 packages/astro/e2e/fixtures/errors: dependencies: @@ -1147,8 +1147,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 solid-js: specifier: ^1.8.22 version: 1.8.22 @@ -1156,8 +1156,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/e2e/fixtures/hmr: devDependencies: @@ -1165,8 +1165,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -1225,8 +1225,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/lit': specifier: workspace:* @@ -1284,8 +1284,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1324,8 +1324,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1364,8 +1364,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1404,8 +1404,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1444,8 +1444,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1484,8 +1484,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1690,10 +1690,10 @@ importers: version: link:../../.. autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.43) + version: 10.4.20(postcss@8.4.45) postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 tailwindcss: specifier: ^3.4.10 version: 3.4.10 @@ -1740,8 +1740,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/e2e/fixtures/vue-component: dependencies: @@ -1755,8 +1755,8 @@ importers: specifier: workspace:* version: link:../../.. vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/performance: devDependencies: @@ -1878,8 +1878,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/actions: dependencies: @@ -2051,8 +2051,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/astro-class-list: dependencies: @@ -2215,8 +2215,8 @@ importers: specifier: workspace:* version: link:../../.. vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/astro-expr: dependencies: @@ -2506,8 +2506,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/before-hydration: dependencies: @@ -2645,8 +2645,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/content: dependencies: @@ -3145,17 +3145,17 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/fontsource-package: dependencies: '@fontsource/monofett': - specifier: 5.0.21 - version: 5.0.21 + specifier: 5.0.22 + version: 5.0.22 '@fontsource/montserrat': - specifier: 5.0.19 - version: 5.0.19 + specifier: 5.0.20 + version: 5.0.20 astro: specifier: workspace:* version: link:../../.. @@ -3343,8 +3343,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: '@astrojs/mdx': specifier: workspace:* @@ -3520,10 +3520,10 @@ importers: version: link:../../.. autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.43) + version: 10.4.20(postcss@8.4.45) postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 solid-js: specifier: ^1.8.22 version: 1.8.22 @@ -3531,12 +3531,12 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) devDependencies: postcss-preset-env: specifier: ^10.0.2 - version: 10.0.2(postcss@8.4.43) + version: 10.0.2(postcss@8.4.45) packages/astro/test/fixtures/preact-compat-component: dependencies: @@ -3818,8 +3818,8 @@ importers: specifier: workspace:* version: link:../../.. vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/solid-component: dependencies: @@ -4144,10 +4144,10 @@ importers: version: link:../../.. autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.43) + version: 10.4.20(postcss@8.4.45) postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 tailwindcss: specifier: ^3.4.10 version: 3.4.10 @@ -4161,8 +4161,8 @@ importers: specifier: workspace:* version: link:../../.. postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 tailwindcss: specifier: ^3.4.10 version: 3.4.10 @@ -4224,8 +4224,8 @@ importers: specifier: workspace:* version: link:../../.. vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/vue-jsx: dependencies: @@ -4236,8 +4236,8 @@ importers: specifier: workspace:* version: link:../../.. vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/vue-with-multi-renderer: dependencies: @@ -4254,8 +4254,8 @@ importers: specifier: ^4.2.19 version: 4.2.19 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/astro/test/fixtures/with-endpoint-routes: dependencies: @@ -4366,8 +4366,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/db/test/fixtures/basics: dependencies: @@ -4504,8 +4504,8 @@ importers: packages/integrations/alpinejs: devDependencies: '@playwright/test': - specifier: 1.46.1 - version: 1.46.1 + specifier: 1.47.0 + version: 1.47.0 astro: specifier: workspace:* version: link:../../astro @@ -4513,8 +4513,8 @@ importers: specifier: workspace:* version: link:../../../scripts vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4591,8 +4591,8 @@ importers: specifier: ^3.2.0 version: 3.2.0 sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 packages/integrations/markdoc: dependencies: @@ -4637,8 +4637,8 @@ importers: specifier: ^0.18.4 version: 0.18.4 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4870,7 +4870,7 @@ importers: version: 6.0.0 rehype-pretty-code: specifier: ^0.14.0 - version: 0.14.0(shiki@1.16.1) + version: 0.14.0(shiki@1.16.2) remark-math: specifier: ^6.0.0 version: 6.0.0 @@ -4884,14 +4884,14 @@ importers: specifier: ^9.0.0 version: 9.0.0 shiki: - specifier: ^1.16.1 - version: 1.16.1 + specifier: ^1.16.2 + version: 1.16.2 unified: specifier: ^11.0.5 version: 11.0.5 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -5079,7 +5079,7 @@ importers: version: 7.24.7(@babel/core@7.25.2) '@preact/preset-vite': specifier: 2.8.2 - version: 2.8.2(@babel/core@7.25.2)(preact@10.23.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + version: 2.8.2(@babel/core@7.25.2)(preact@10.23.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) '@preact/signals': specifier: ^1.3.0 version: 1.3.0(preact@10.23.2) @@ -5104,7 +5104,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + version: 4.3.1(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) ultrahtml: specifier: ^1.5.3 version: 1.5.3 @@ -5131,8 +5131,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -5152,8 +5152,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/integrations/sitemap: dependencies: @@ -5220,7 +5220,7 @@ importers: dependencies: vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.8.22)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + version: 2.10.2(solid-js@1.8.22)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) devDependencies: astro: specifier: workspace:* @@ -5232,17 +5232,17 @@ importers: specifier: ^1.8.22 version: 1.8.22 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/svelte: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.1.2 - version: 3.1.2(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) svelte2tsx: - specifier: ^0.7.16 - version: 0.7.16(svelte@4.2.19)(typescript@5.5.4) + specifier: ^0.7.18 + version: 0.7.18(svelte@4.2.19)(typescript@5.5.4) devDependencies: astro: specifier: workspace:* @@ -5254,20 +5254,20 @@ importers: specifier: ^4.2.19 version: 4.2.19 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/tailwind: dependencies: autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.43) + version: 10.4.20(postcss@8.4.45) postcss: - specifier: ^8.4.43 - version: 8.4.43 + specifier: ^8.4.45 + version: 8.4.45 postcss-load-config: specifier: ^4.0.2 - version: 4.0.2(postcss@8.4.43) + version: 4.0.2(postcss@8.4.45) devDependencies: astro: specifier: workspace:* @@ -5279,8 +5279,8 @@ importers: specifier: ^3.4.10 version: 3.4.10 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -5297,16 +5297,16 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.1.3 - version: 5.1.3(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + version: 5.1.3(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.1 - version: 4.0.1(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + version: 4.0.1(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4)) '@vue/compiler-sfc': - specifier: ^3.4.38 - version: 3.4.38 + specifier: ^3.5.3 + version: 3.5.3 vite-plugin-vue-devtools: - specifier: ^7.3.9 - version: 7.3.9(rollup@4.21.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + specifier: ^7.4.4 + version: 7.4.4(rollup@4.21.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4)) devDependencies: astro: specifier: workspace:* @@ -5321,11 +5321,11 @@ importers: specifier: ^0.18.4 version: 0.18.4 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/integrations/vue/test/fixtures/app-entrypoint: dependencies: @@ -5337,10 +5337,10 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.38(typescript@5.5.4)) + version: 5.1.0(vue@3.5.3(typescript@5.5.4)) vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/integrations/vue/test/fixtures/app-entrypoint-async: dependencies: @@ -5352,10 +5352,10 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.38(typescript@5.5.4)) + version: 5.1.0(vue@3.5.3(typescript@5.5.4)) vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/integrations/vue/test/fixtures/app-entrypoint-css: dependencies: @@ -5376,10 +5376,10 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.38(typescript@5.5.4)) + version: 5.1.0(vue@3.5.3(typescript@5.5.4)) vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.3 + version: 3.5.3(typescript@5.5.4) packages/integrations/vue/test/fixtures/app-entrypoint-relative: dependencies: @@ -5487,8 +5487,8 @@ importers: specifier: ^3.0.2 version: 3.0.2 shiki: - specifier: ^1.16.1 - version: 1.16.1 + specifier: ^1.16.2 + version: 1.16.2 unified: specifier: ^11.0.5 version: 11.0.5 @@ -5549,8 +5549,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@18.19.31)(sass@1.78.0) packages/telemetry: dependencies: @@ -5558,8 +5558,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 debug: - specifier: ^4.3.6 - version: 4.3.6 + specifier: ^4.3.7 + version: 4.3.7 dlv: specifier: ^1.1.3 version: 1.1.3 @@ -5985,11 +5985,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - '@changesets/apply-release-plan@7.0.4': - resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} + '@changesets/apply-release-plan@7.0.5': + resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} - '@changesets/assemble-release-plan@6.0.3': - resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} + '@changesets/assemble-release-plan@6.0.4': + resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} @@ -5997,45 +5997,45 @@ packages: '@changesets/changelog-github@0.5.0': resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - '@changesets/cli@2.27.7': - resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} + '@changesets/cli@2.27.8': + resolution: {integrity: sha512-gZNyh+LdSsI82wBSHLQ3QN5J30P4uHKJ4fXgoGwQxfXwYFTJzDdvIJasZn8rYQtmKhyQuiBj4SSnLuKlxKWq4w==} hasBin: true - '@changesets/config@3.0.2': - resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} + '@changesets/config@3.0.3': + resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.1': - resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.3': - resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} + '@changesets/get-release-plan@4.0.4': + resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - '@changesets/git@3.0.0': - resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} + '@changesets/git@3.0.1': + resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} - '@changesets/logger@0.1.0': - resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} '@changesets/parse@0.4.0': resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - '@changesets/pre@2.0.0': - resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - '@changesets/read@0.6.0': - resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} + '@changesets/read@0.6.1': + resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} - '@changesets/should-skip-package@0.1.0': - resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} @@ -6043,8 +6043,8 @@ packages: '@changesets/types@6.0.0': resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - '@changesets/write@0.3.1': - resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} '@clack/core@0.3.4': resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} @@ -6478,19 +6478,23 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.9.1': - resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} + '@eslint/js@9.10.0': + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fontsource/monofett@5.0.21': - resolution: {integrity: sha512-76KRexcr7hwI/GmegtV82MxD51cK7ZDxof8oZdiDqLGuXlgYdp5UYDp0097+gHWfZRD44TWG2khEH1F681f9aQ==} + '@eslint/plugin-kit@0.1.0': + resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fontsource/monofett@5.0.22': + resolution: {integrity: sha512-GzSuU+qHQ4A1AOu/5IH2DkBqLYSzj2T65o4hNNxgbtOgaJ8xuF9a4BcI1ei7BSOHgwENlhXMuHUR6ExCHVuwVA==} - '@fontsource/montserrat@5.0.19': - resolution: {integrity: sha512-d2JyNIE0i2FOqLFkaSrfsyDzFzkzdER7d3xeHqFOTK5OFE+yiFyvlIBMXg5q+nNpMmVoW+2Q182Csn28o+kijQ==} + '@fontsource/montserrat@5.0.20': + resolution: {integrity: sha512-9woBFkQBhhuEyeHyy6s9IKokjyC8NKuwv+yUw7dqOw2E0zRzD6pxk/KYt+SzKHz5B77AkGKu7swp4dI6mptQkw==} '@fortawesome/fontawesome-free@6.6.0': resolution: {integrity: sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==} @@ -6812,8 +6816,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.46.1': - resolution: {integrity: sha512-Fq6SwLujA/DOIvNC2EL/SojJnkKf/rAwJ//APpJJHRyMi1PdKrY3Az+4XNQ51N4RTbItbIByQ0jgd1tayq1aeA==} + '@playwright/test@1.47.0': + resolution: {integrity: sha512-SgAdlSwYVpToI4e/IH19IHHWvoijAYH5hu2MWSXptRypLSnzj51PcGD+rsOXFayde4P9ZLi+loXVwArg6IUkCA==} engines: {node: '>=18'} hasBin: true @@ -6944,8 +6948,8 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@1.16.1': - resolution: {integrity: sha512-aI0hBtw+a6KsJp2jcD4YuQqKpeCbURMZbhHVozDknJpm+KJqeMRkEnfBC8BaKE/5XC+uofPgCLsa/TkTk0Ba0w==} + '@shikijs/core@1.16.2': + resolution: {integrity: sha512-XSVH5OZCvE4WLMgdoBqfPMYmGHGmCC3OgZhw0S7KcSi2XKZ+5oHGe71GFnTljgdOxvxx5WrRks6QoTLKrl1eAA==} '@shikijs/vscode-textmate@9.2.0': resolution: {integrity: sha512-5FinaOp6Vdh/dl4/yaOTh0ZeKch+rYS8DUb38V3GMKYVkdqzxw53lViRKUYkVILRiVQT7dcPC7VvAKOR73zVtQ==} @@ -6974,8 +6978,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@tailwindcss/forms@0.5.8': - resolution: {integrity: sha512-DJs7B7NPD0JH7BVvdHWNviWmunlFhuEkz7FyFxE4japOWYMLl9b1D6+Z9mivJJPWr6AEbmlPqgiFRyLwFB1SgQ==} + '@tailwindcss/forms@0.5.9': + resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20' @@ -7187,8 +7191,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/eslint-plugin@8.3.0': - resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} + '@typescript-eslint/eslint-plugin@8.4.0': + resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -7198,8 +7202,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.3.0': - resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} + '@typescript-eslint/parser@8.4.0': + resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7208,12 +7212,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.3.0': - resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} + '@typescript-eslint/scope-manager@8.4.0': + resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.3.0': - resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} + '@typescript-eslint/type-utils@8.4.0': + resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -7221,12 +7225,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.3.0': - resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} + '@typescript-eslint/types@8.4.0': + resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.3.0': - resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} + '@typescript-eslint/typescript-estree@8.4.0': + resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -7234,14 +7238,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.3.0': - resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} + '@typescript-eslint/utils@8.4.0': + resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.3.0': - resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} + '@typescript-eslint/visitor-keys@8.4.0': + resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/twoslash@3.1.0': @@ -7336,51 +7340,51 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@vue/compiler-core@3.4.38': - resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} + '@vue/compiler-core@3.5.3': + resolution: {integrity: sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==} - '@vue/compiler-dom@3.4.38': - resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} + '@vue/compiler-dom@3.5.3': + resolution: {integrity: sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==} - '@vue/compiler-sfc@3.4.38': - resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} + '@vue/compiler-sfc@3.5.3': + resolution: {integrity: sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==} - '@vue/compiler-ssr@3.4.38': - resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} + '@vue/compiler-ssr@3.5.3': + resolution: {integrity: sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==} - '@vue/devtools-core@7.3.9': - resolution: {integrity: sha512-B5zAl9ulNjI6nknSnGNRzmP/ldR9ADUwwT8HkI8Hejo1W00uK9ABUahbfrXzME296rBfmwhQuCFwJ6t9KFdbXQ==} + '@vue/devtools-core@7.4.4': + resolution: {integrity: sha512-DLxgA3DfeADkRzhAfm3G2Rw/cWxub64SdP5b+s5dwL30+whOGj+QNhmyFpwZ8ZTrHDFRIPj0RqNzJ8IRR1pz7w==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.3.9': - resolution: {integrity: sha512-Gr17nA+DaQzqyhNx1DUJr1CJRzTRfbIuuC80ZgU8MD/qNO302tv9la+ROi+Uaw+ULVwU9T71GnwLy4n8m9Lspg==} + '@vue/devtools-kit@7.4.4': + resolution: {integrity: sha512-awK/4NfsUG0nQ7qnTM37m7ZkEUMREyPh8taFCX+uQYps/MTFEum0AD05VeGDRMXwWvMmGIcWX9xp8ZiBddY0jw==} - '@vue/devtools-shared@7.3.9': - resolution: {integrity: sha512-CdfMRZKXyI8vw+hqOcQIiLihB6Hbbi7WNZGp7LsuH1Qe4aYAFmTaKjSciRZ301oTnwmU/knC/s5OGuV6UNiNoA==} + '@vue/devtools-shared@7.4.4': + resolution: {integrity: sha512-yeJULXFHOKIm8yL2JFO050a9ztTVqOCKTqN9JHFxGTJN0b+gjtfn6zC+FfyHUgjwCwf6E3hfKrlohtthcqoYqw==} '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} - '@vue/reactivity@3.4.38': - resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + '@vue/reactivity@3.5.3': + resolution: {integrity: sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==} - '@vue/runtime-core@3.4.38': - resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + '@vue/runtime-core@3.5.3': + resolution: {integrity: sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==} - '@vue/runtime-dom@3.4.38': - resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} + '@vue/runtime-dom@3.5.3': + resolution: {integrity: sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==} - '@vue/server-renderer@3.4.38': - resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + '@vue/server-renderer@3.5.3': + resolution: {integrity: sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==} peerDependencies: - vue: 3.4.38 + vue: 3.5.3 '@vue/shared@3.1.5': resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==} - '@vue/shared@3.4.38': - resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + '@vue/shared@3.5.3': + resolution: {integrity: sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==} '@webcomponents/template-shadowroot@0.2.1': resolution: {integrity: sha512-fXL/vIUakyZL62hyvUh+EMwbVoTc0hksublmRz6ai6et8znHkJa6gtqMUZo1oc7dIz46exHSIImml9QTdknMHg==} @@ -7890,8 +7894,8 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -8207,8 +8211,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.9.1: - resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} + eslint@9.10.0: + resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -8312,8 +8316,8 @@ packages: fast-uri@3.0.1: resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} - fast-xml-parser@4.4.1: - resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==} + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} hasBin: true fastq@1.17.1: @@ -8861,10 +8865,12 @@ packages: libsql@0.3.19: resolution: {integrity: sha512-Aj5cQ5uk/6fHdmeW0TiXK42FqUlwx7ytmMLPSaUQPin5HKKKuUPD62MAbN4OEweGBBI7q1BekoEN4gPUEL6MZA==} + cpu: [x64, arm64, wasm32] os: [darwin, linux, win32] libsql@0.4.1: resolution: {integrity: sha512-qZlR9Yu1zMBeLChzkE/cKfoKV3Esp9cn9Vx5Zirn4AVhDWPcjYhKwbtJcMuHehgk3mH+fJr9qW+3vesBWbQpBg==} + cpu: [x64, arm64, wasm32] os: [darwin, linux, win32] lilconfig@2.1.0: @@ -9286,9 +9292,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -9482,6 +9485,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -9566,8 +9572,8 @@ packages: periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -9589,13 +9595,13 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - playwright-core@1.46.1: - resolution: {integrity: sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==} + playwright-core@1.47.0: + resolution: {integrity: sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==} engines: {node: '>=18'} hasBin: true - playwright@1.46.1: - resolution: {integrity: sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==} + playwright@1.47.0: + resolution: {integrity: sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==} engines: {node: '>=18'} hasBin: true @@ -9792,8 +9798,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.43: - resolution: {integrity: sha512-gJAQVYbh5R3gYm33FijzCZj7CHyQ3hWMgJMprLUlIYqCwTeZhBQ19wp0e9mA25BUbEvY5+EXuuaAjqQsrBxQBQ==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} preact-render-to-string@6.5.10: @@ -9804,10 +9810,6 @@ packages: preact@10.23.2: resolution: {integrity: sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA==} - preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} - engines: {node: '>=10'} - preferred-pm@4.0.0: resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} engines: {node: '>=18.12'} @@ -10088,8 +10090,8 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sass@1.77.8: - resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} + sass@1.78.0: + resolution: {integrity: sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -10171,8 +10173,8 @@ packages: shiki@0.10.1: resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} - shiki@1.16.1: - resolution: {integrity: sha512-tCJIMaxDVB1mEIJ5TvfZU7kCPB5eo9fli5+21Olc/bmyv+w8kye3JOp+LZRmGkAyT71hrkefQhTiY+o9mBikRQ==} + shiki@1.16.2: + resolution: {integrity: sha512-gSym0hZf5a1U0iDPsdoOAZbvoi+e0c6c3NKAi03FoSLTm7oG20tum29+gk0wzzivOasn3loxfGUPT+jZXIUbWg==} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -10369,8 +10371,8 @@ packages: peerDependencies: svelte: ^3.19.0 || ^4.0.0 - svelte2tsx@0.7.16: - resolution: {integrity: sha512-faI3t1N5I7RkrXGMLfUdfWg6DTPi8RisfES/00QzXh+faU2pQ3r/W2dUD0ENGh+qNzltIcjbfCW9PES9JkaSXg==} + svelte2tsx@0.7.18: + resolution: {integrity: sha512-PCOhH7uQaV472ZvNAcnkvShjFRMMkKUc/eNJImQMH9T4CyHeQpdatedFrEjaMCsweFb/oo3a6bv4qtdfaCPw8g==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 @@ -10579,8 +10581,8 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.3.0: - resolution: {integrity: sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==} + typescript-eslint@8.4.0: + resolution: {integrity: sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -10731,8 +10733,8 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-plugin-inspect@0.8.5: - resolution: {integrity: sha512-JvTUqsP1JNDw0lMZ5Z/r5cSj81VK2B7884LO1DC3GMBhdcjcsAnJjdWq7bzQL01Xbh+v60d3lju3g+z7eAtNew==} + vite-plugin-inspect@0.8.7: + resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' @@ -10751,14 +10753,14 @@ packages: '@testing-library/jest-dom': optional: true - vite-plugin-vue-devtools@7.3.9: - resolution: {integrity: sha512-ybDV2kepW0NpusvtfbRKHs0pvyrReNcFtL572gyZ6Alox6u5uebYefd2eAG/7mJSU3NPI5UxUH1e/Mof5exdlw==} + vite-plugin-vue-devtools@7.4.4: + resolution: {integrity: sha512-lJ7Vr6gznv1nf2S75XJTpXl4XcwnHfyvqJQ7szOvTUfumQALDGo772TEH69wx8gkY/ZWZQea4DZR5IQZMOZKUA==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 - vite-plugin-vue-inspector@5.1.3: - resolution: {integrity: sha512-pMrseXIDP1Gb38mOevY+BvtNGNqiqmqa2pKB99lnLsADQww9w9xMbAfT4GB6RUoaOkSPrtlXqpq2Fq+Dj2AgFg==} + vite-plugin-vue-inspector@5.2.0: + resolution: {integrity: sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 @@ -10767,8 +10769,8 @@ packages: peerDependencies: vue: '>=3.2.13' - vite@5.4.2: - resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -10954,8 +10956,8 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - vue@3.4.38: - resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + vue@3.5.3: + resolution: {integrity: sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -11002,10 +11004,6 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - which-pm@3.0.0: resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} engines: {node: '>=18.12'} @@ -11249,7 +11247,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/compat-data@7.25.2': {} @@ -11266,7 +11264,7 @@ snapshots: '@babel/traverse': 7.25.4 '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -11397,7 +11395,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/parser@7.25.4': dependencies: @@ -11492,7 +11490,7 @@ snapshots: '@babel/parser': 7.25.4 '@babel/template': 7.25.0 '@babel/types': 7.25.6 - debug: 4.3.6 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11540,13 +11538,12 @@ snapshots: '@builder.io/partytown@0.10.2': {} - '@changesets/apply-release-plan@7.0.4': + '@changesets/apply-release-plan@7.0.5': dependencies: - '@babel/runtime': 7.24.4 - '@changesets/config': 3.0.2 + '@changesets/config': 3.0.3 '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.0 - '@changesets/should-skip-package': 0.1.0 + '@changesets/git': 3.0.1 + '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 @@ -11557,12 +11554,11 @@ snapshots: resolve-from: 5.0.0 semver: 7.6.3 - '@changesets/assemble-release-plan@6.0.3': + '@changesets/assemble-release-plan@6.0.4': dependencies: - '@babel/runtime': 7.24.4 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/should-skip-package': 0.1.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 semver: 7.6.3 @@ -11579,46 +11575,44 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.27.7': + '@changesets/cli@2.27.8': dependencies: - '@babel/runtime': 7.24.4 - '@changesets/apply-release-plan': 7.0.4 - '@changesets/assemble-release-plan': 6.0.3 + '@changesets/apply-release-plan': 7.0.5 + '@changesets/assemble-release-plan': 6.0.4 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.2 + '@changesets/config': 3.0.3 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/get-release-plan': 4.0.3 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 - '@changesets/should-skip-package': 0.1.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.4 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 - '@changesets/write': 0.3.1 + '@changesets/write': 0.3.2 '@manypkg/get-packages': 1.1.3 '@types/semver': 7.5.8 ansi-colors: 4.1.3 - chalk: 2.4.2 ci-info: 3.9.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 - human-id: 1.0.2 mri: 1.2.0 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.3 + package-manager-detector: 0.2.0 + picocolors: 1.1.0 resolve-from: 5.0.0 semver: 7.6.3 spawndamnit: 2.0.0 term-size: 2.2.1 - '@changesets/config@3.0.2': + '@changesets/config@3.0.3': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/logger': 0.1.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 @@ -11628,12 +11622,11 @@ snapshots: dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.1': + '@changesets/get-dependents-graph@2.1.2': dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 + picocolors: 1.1.0 semver: 7.6.3 '@changesets/get-github-info@0.6.0': @@ -11643,59 +11636,53 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.3': + '@changesets/get-release-plan@4.0.4': dependencies: - '@babel/runtime': 7.24.4 - '@changesets/assemble-release-plan': 6.0.3 - '@changesets/config': 3.0.2 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/config': 3.0.3 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 '@changesets/get-version-range-type@0.4.0': {} - '@changesets/git@3.0.0': + '@changesets/git@3.0.1': dependencies: - '@babel/runtime': 7.24.4 '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.8 spawndamnit: 2.0.0 - '@changesets/logger@0.1.0': + '@changesets/logger@0.1.1': dependencies: - chalk: 2.4.2 + picocolors: 1.1.0 '@changesets/parse@0.4.0': dependencies: '@changesets/types': 6.0.0 js-yaml: 3.14.1 - '@changesets/pre@2.0.0': + '@changesets/pre@2.0.1': dependencies: - '@babel/runtime': 7.24.4 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.0': + '@changesets/read@0.6.1': dependencies: - '@babel/runtime': 7.24.4 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 '@changesets/parse': 0.4.0 '@changesets/types': 6.0.0 - chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 + picocolors: 1.1.0 - '@changesets/should-skip-package@0.1.0': + '@changesets/should-skip-package@0.1.1': dependencies: - '@babel/runtime': 7.24.4 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -11703,9 +11690,8 @@ snapshots: '@changesets/types@6.0.0': {} - '@changesets/write@0.3.1': + '@changesets/write@0.3.2': dependencies: - '@babel/runtime': 7.24.4 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -11713,13 +11699,13 @@ snapshots: '@clack/core@0.3.4': dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@clack/prompts@0.7.0': dependencies: '@clack/core': 0.3.4 - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@colors/colors@1.5.0': @@ -11755,201 +11741,201 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-cascade-layers@5.0.0(postcss@8.4.43)': + '@csstools/postcss-cascade-layers@5.0.0(postcss@8.4.45)': dependencies: '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.0) - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - '@csstools/postcss-color-function@4.0.2(postcss@8.4.43)': + '@csstools/postcss-color-function@4.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-color-mix-function@3.0.2(postcss@8.4.43)': + '@csstools/postcss-color-mix-function@3.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-content-alt-text@2.0.1(postcss@8.4.43)': + '@csstools/postcss-content-alt-text@2.0.1(postcss@8.4.45)': dependencies: '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-exponential-functions@2.0.1(postcss@8.4.43)': + '@csstools/postcss-exponential-functions@2.0.1(postcss@8.4.45)': dependencies: '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.43)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.45)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.2(postcss@8.4.43)': + '@csstools/postcss-gamut-mapping@2.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-gradients-interpolation-method@5.0.2(postcss@8.4.43)': + '@csstools/postcss-gradients-interpolation-method@5.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-hwb-function@4.0.2(postcss@8.4.43)': + '@csstools/postcss-hwb-function@4.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-ic-unit@4.0.0(postcss@8.4.43)': + '@csstools/postcss-ic-unit@4.0.0(postcss@8.4.45)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.0(postcss@8.4.43)': + '@csstools/postcss-initial@2.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-is-pseudo-class@5.0.0(postcss@8.4.43)': + '@csstools/postcss-is-pseudo-class@5.0.0(postcss@8.4.45)': dependencies: '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.0) - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - '@csstools/postcss-light-dark-function@2.0.2(postcss@8.4.43)': + '@csstools/postcss-light-dark-function@2.0.2(postcss@8.4.45)': dependencies: '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.43)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.43)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.43)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.4.43)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.1(postcss@8.4.43)': + '@csstools/postcss-logical-viewport-units@3.0.1(postcss@8.4.45)': dependencies: '@csstools/css-tokenizer': 3.0.1 - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-media-minmax@2.0.1(postcss@8.4.43)': + '@csstools/postcss-media-minmax@2.0.1(postcss@8.4.45)': dependencies: '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1(postcss@8.4.43)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.1(postcss@8.4.45)': dependencies: '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.4.43)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.4.45)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.43)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.2(postcss@8.4.43)': + '@csstools/postcss-oklab-function@4.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.43)': + '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@3.0.2(postcss@8.4.43)': + '@csstools/postcss-relative-color-syntax@3.0.2(postcss@8.4.45)': dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - '@csstools/postcss-scope-pseudo-class@4.0.0(postcss@8.4.43)': + '@csstools/postcss-scope-pseudo-class@4.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - '@csstools/postcss-stepped-value-functions@4.0.1(postcss@8.4.43)': + '@csstools/postcss-stepped-value-functions@4.0.1(postcss@8.4.45)': dependencies: '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.43)': + '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.45)': dependencies: '@csstools/color-helpers': 5.0.1 - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.1(postcss@8.4.43)': + '@csstools/postcss-trigonometric-functions@4.0.1(postcss@8.4.45)': dependencies: '@csstools/css-calc': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.43 + postcss: 8.4.45 - '@csstools/postcss-unset-value@4.0.0(postcss@8.4.43)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 '@csstools/selector-resolve-nested@2.0.0(postcss-selector-parser@6.1.0)': dependencies: @@ -11959,9 +11945,9 @@ snapshots: dependencies: postcss-selector-parser: 6.1.0 - '@csstools/utilities@2.0.0(postcss@8.4.43)': + '@csstools/utilities@2.0.0(postcss@8.4.45)': dependencies: - postcss: 8.4.43 + postcss: 8.4.45 '@emmetio/abbreviation@2.3.3': dependencies: @@ -12060,9 +12046,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.9.1(jiti@1.21.0))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0(jiti@1.21.0))': dependencies: - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.10.0(jiti@1.21.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} @@ -12070,7 +12056,7 @@ snapshots: '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 - debug: 4.3.6 + debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -12078,7 +12064,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.6 + debug: 4.3.7 espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -12089,13 +12075,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.9.1': {} + '@eslint/js@9.10.0': {} '@eslint/object-schema@2.1.4': {} - '@fontsource/monofett@5.0.21': {} + '@eslint/plugin-kit@0.1.0': + dependencies: + levn: 0.4.1 + + '@fontsource/monofett@5.0.22': {} - '@fontsource/montserrat@5.0.19': {} + '@fontsource/montserrat@5.0.20': {} '@fortawesome/fontawesome-free@6.6.0': {} @@ -12403,28 +12393,28 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.46.1': + '@playwright/test@1.47.0': dependencies: - playwright: 1.46.1 + playwright: 1.47.0 '@polka/url@1.0.0-next.25': {} - '@preact/preset-vite@2.8.2(@babel/core@7.25.2)(preact@10.23.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))': + '@preact/preset-vite@2.8.2(@babel/core@7.25.2)(preact@10.23.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2) - '@prefresh/vite': 2.4.5(preact@10.23.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + '@prefresh/vite': 2.4.5(preact@10.23.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.25.2) - debug: 4.3.6 + debug: 4.3.7 kolorist: 1.8.0 magic-string: 0.30.5 node-html-parser: 6.1.13 resolve: 1.22.8 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - preact - supports-color @@ -12444,7 +12434,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.5(preact@10.23.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))': + '@prefresh/vite@2.4.5(preact@10.23.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))': dependencies: '@babel/core': 7.25.2 '@prefresh/babel-plugin': 0.5.1 @@ -12452,7 +12442,7 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.23.2 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - supports-color @@ -12517,7 +12507,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.21.2': optional: true - '@shikijs/core@1.16.1': + '@shikijs/core@1.16.2': dependencies: '@shikijs/vscode-textmate': 9.2.0 '@types/hast': 3.0.4 @@ -12530,30 +12520,30 @@ snapshots: dependencies: solid-js: 1.8.22 - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)))(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) - debug: 4.3.6 + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) + debug: 4.3.7 svelte: 4.2.19 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)))(svelte@4.2.19)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) - debug: 4.3.6 + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)))(svelte@4.2.19)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) + debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.11 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) - vitefu: 0.2.5(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) + vitefu: 0.2.5(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) transitivePeerDependencies: - supports-color - '@tailwindcss/forms@0.5.8(tailwindcss@3.4.10)': + '@tailwindcss/forms@0.5.9(tailwindcss@3.4.10)': dependencies: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.10 @@ -12779,15 +12769,15 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.3.0 - eslint: 9.9.1(jiti@1.21.0) + '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/type-utils': 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 + eslint: 9.10.0(jiti@1.21.0) graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -12797,29 +12787,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4)': + '@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6 - eslint: 9.9.1(jiti@1.21.0) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 + debug: 4.3.7 + eslint: 9.10.0(jiti@1.21.0) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.3.0': + '@typescript-eslint/scope-manager@8.4.0': dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/visitor-keys': 8.3.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 - '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) - debug: 4.3.6 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) + debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 @@ -12827,13 +12817,13 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.3.0': {} + '@typescript-eslint/types@8.4.0': {} - '@typescript-eslint/typescript-estree@8.3.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 + debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.4 @@ -12844,69 +12834,69 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4)': + '@typescript-eslint/utils@8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) - eslint: 9.9.1(jiti@1.21.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.0)) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + eslint: 9.10.0(jiti@1.21.0) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.3.0': + '@typescript-eslint/visitor-keys@8.4.0': dependencies: - '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/types': 8.4.0 eslint-visitor-keys: 3.4.3 '@typescript/twoslash@3.1.0': dependencies: '@typescript/vfs': 1.3.5 - debug: 4.3.6 + debug: 4.3.7 lz-string: 1.5.0 transitivePeerDependencies: - supports-color '@typescript/vfs@1.3.4': dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color '@typescript/vfs@1.3.5': dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.1(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))': + '@vitejs/plugin-react@4.3.1(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.25.2) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) - vue: 3.4.38(typescript@5.5.4) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) + vue: 3.5.3(typescript@5.5.4) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.3(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + '@vitejs/plugin-vue@5.1.3(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4))': dependencies: - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) - vue: 3.4.38(typescript@5.5.4) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) + vue: 3.5.3(typescript@5.5.4) '@vitest/expect@2.0.5': dependencies: @@ -13018,53 +13008,53 @@ snapshots: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.8 '@babel/parser': 7.25.4 - '@vue/compiler-sfc': 3.4.38 + '@vue/compiler-sfc': 3.5.3 - '@vue/compiler-core@3.4.38': + '@vue/compiler-core@3.5.3': dependencies: '@babel/parser': 7.25.4 - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.3 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.38': + '@vue/compiler-dom@3.5.3': dependencies: - '@vue/compiler-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.3 + '@vue/shared': 3.5.3 - '@vue/compiler-sfc@3.4.38': + '@vue/compiler-sfc@3.5.3': dependencies: '@babel/parser': 7.25.4 - '@vue/compiler-core': 3.4.38 - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.3 + '@vue/compiler-dom': 3.5.3 + '@vue/compiler-ssr': 3.5.3 + '@vue/shared': 3.5.3 estree-walker: 2.0.2 magic-string: 0.30.11 - postcss: 8.4.43 + postcss: 8.4.45 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.38': + '@vue/compiler-ssr@3.5.3': dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.3 + '@vue/shared': 3.5.3 - '@vue/devtools-core@7.3.9(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + '@vue/devtools-core@7.4.4(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4))': dependencies: - '@vue/devtools-kit': 7.3.9 - '@vue/devtools-shared': 7.3.9 + '@vue/devtools-kit': 7.4.4 + '@vue/devtools-shared': 7.4.4 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) - vue: 3.4.38(typescript@5.5.4) + vite-hot-client: 0.2.3(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) + vue: 3.5.3(typescript@5.5.4) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.3.9': + '@vue/devtools-kit@7.4.4': dependencies: - '@vue/devtools-shared': 7.3.9 + '@vue/devtools-shared': 7.4.4 birpc: 0.2.17 hookable: 5.5.3 mitt: 3.0.1 @@ -13072,7 +13062,7 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.3.9': + '@vue/devtools-shared@7.4.4': dependencies: rfdc: 1.4.1 @@ -13080,31 +13070,31 @@ snapshots: dependencies: '@vue/shared': 3.1.5 - '@vue/reactivity@3.4.38': + '@vue/reactivity@3.5.3': dependencies: - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.3 - '@vue/runtime-core@3.4.38': + '@vue/runtime-core@3.5.3': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.3 + '@vue/shared': 3.5.3 - '@vue/runtime-dom@3.4.38': + '@vue/runtime-dom@3.5.3': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/runtime-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.3 + '@vue/runtime-core': 3.5.3 + '@vue/shared': 3.5.3 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': + '@vue/server-renderer@3.5.3(vue@3.5.3(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.3 + '@vue/shared': 3.5.3 + vue: 3.5.3(typescript@5.5.4) '@vue/shared@3.1.5': {} - '@vue/shared@3.4.38': {} + '@vue/shared@3.5.3': {} '@webcomponents/template-shadowroot@0.2.1': {} @@ -13121,7 +13111,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -13247,14 +13237,14 @@ snapshots: subarg: 1.0.0 timestring: 6.0.0 - autoprefixer@10.4.20(postcss@8.4.43): + autoprefixer@10.4.20(postcss@8.4.45): dependencies: browserslist: 4.23.3 caniuse-lite: 1.0.30001649 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.43 + picocolors: 1.1.0 + postcss: 8.4.45 postcss-value-parser: 4.2.0 axobject-query@4.1.0: {} @@ -13556,21 +13546,21 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-blank-pseudo@7.0.0(postcss@8.4.43): + css-blank-pseudo@7.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - css-has-pseudo@7.0.0(postcss@8.4.43): + css-has-pseudo@7.0.0(postcss@8.4.45): dependencies: '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.0) - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.4.43): + css-prefers-color-scheme@10.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 css-select@5.1.0: dependencies: @@ -13625,9 +13615,9 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.3.6: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 decimal.js@10.4.3: {} @@ -13810,12 +13800,12 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-regexp@2.6.0(eslint@9.9.1(jiti@1.21.0)): + eslint-plugin-regexp@2.6.0(eslint@9.10.0(jiti@1.21.0)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.0)) '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: 9.9.1(jiti@1.21.0) + eslint: 9.10.0(jiti@1.21.0) jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -13830,20 +13820,21 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.9.1(jiti@1.21.0): + eslint@9.10.0(jiti@1.21.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(jiti@1.21.0)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0(jiti@1.21.0)) '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.18.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.9.1 + '@eslint/js': 9.10.0 + '@eslint/plugin-kit': 0.1.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 @@ -13859,7 +13850,6 @@ snapshots: is-glob: 4.0.3 is-path-inside: 3.0.3 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 @@ -13971,7 +13961,7 @@ snapshots: fast-uri@3.0.1: {} - fast-xml-parser@4.4.1: + fast-xml-parser@4.5.0: dependencies: strnum: 1.0.5 @@ -14385,14 +14375,14 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -15258,7 +15248,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.6 + debug: 4.3.7 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -15333,8 +15323,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} muggle-string@0.4.1: {} @@ -15525,6 +15513,8 @@ snapshots: p-try@2.2.0: {} + package-manager-detector@0.2.0: {} + pako@1.0.11: {} param-case@2.1.1: @@ -15612,7 +15602,7 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -15626,248 +15616,248 @@ snapshots: dependencies: find-up: 4.1.0 - playwright-core@1.46.1: {} + playwright-core@1.47.0: {} - playwright@1.46.1: + playwright@1.47.0: dependencies: - playwright-core: 1.46.1 + playwright-core: 1.47.0 optionalDependencies: fsevents: 2.3.2 port-authority@2.0.1: {} - postcss-attribute-case-insensitive@7.0.0(postcss@8.4.43): + postcss-attribute-case-insensitive@7.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-clamp@4.1.0(postcss@8.4.43): + postcss-clamp@4.1.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.2(postcss@8.4.43): + postcss-color-functional-notation@7.0.2(postcss@8.4.45): dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - postcss-color-hex-alpha@10.0.0(postcss@8.4.43): + postcss-color-hex-alpha@10.0.0(postcss@8.4.45): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.4.43): + postcss-color-rebeccapurple@10.0.0(postcss@8.4.45): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.1(postcss@8.4.43): + postcss-custom-media@11.0.1(postcss@8.4.45): dependencies: '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) - postcss: 8.4.43 + postcss: 8.4.45 - postcss-custom-properties@14.0.1(postcss@8.4.43): + postcss-custom-properties@14.0.1(postcss@8.4.45): dependencies: '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.1(postcss@8.4.43): + postcss-custom-selectors@8.0.1(postcss@8.4.45): dependencies: '@csstools/cascade-layer-name-parser': 2.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-dir-pseudo-class@9.0.0(postcss@8.4.43): + postcss-dir-pseudo-class@9.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-double-position-gradients@6.0.0(postcss@8.4.43): + postcss-double-position-gradients@6.0.0(postcss@8.4.45): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.0(postcss@8.4.43): + postcss-focus-visible@10.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-focus-within@9.0.0(postcss@8.4.43): + postcss-focus-within@9.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-font-variant@5.0.0(postcss@8.4.43): + postcss-font-variant@5.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-gap-properties@6.0.0(postcss@8.4.43): + postcss-gap-properties@6.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-image-set-function@7.0.0(postcss@8.4.43): + postcss-image-set-function@7.0.0(postcss@8.4.45): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-import@15.1.0(postcss@8.4.43): + postcss-import@15.1.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.43): + postcss-js@4.0.1(postcss@8.4.45): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.43 + postcss: 8.4.45 - postcss-lab-function@7.0.2(postcss@8.4.43): + postcss-lab-function@7.0.2(postcss@8.4.45): dependencies: '@csstools/css-color-parser': 3.0.2(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) '@csstools/css-tokenizer': 3.0.1 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/utilities': 2.0.0(postcss@8.4.43) - postcss: 8.4.43 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/utilities': 2.0.0(postcss@8.4.45) + postcss: 8.4.45 - postcss-load-config@4.0.2(postcss@8.4.43): + postcss-load-config@4.0.2(postcss@8.4.45): dependencies: lilconfig: 3.1.1 yaml: 2.5.0 optionalDependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-logical@8.0.0(postcss@8.4.43): + postcss-logical@8.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-nested@6.0.1(postcss@8.4.43): + postcss-nested@6.0.1(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-nesting@13.0.0(postcss@8.4.43): + postcss-nesting@13.0.0(postcss@8.4.45): dependencies: '@csstools/selector-resolve-nested': 2.0.0(postcss-selector-parser@6.1.0) '@csstools/selector-specificity': 4.0.0(postcss-selector-parser@6.1.0) - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-opacity-percentage@2.0.0(postcss@8.4.43): + postcss-opacity-percentage@2.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-overflow-shorthand@6.0.0(postcss@8.4.43): + postcss-overflow-shorthand@6.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.4.43): + postcss-page-break@3.0.4(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-place@10.0.0(postcss@8.4.43): + postcss-place@10.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-value-parser: 4.2.0 - postcss-preset-env@10.0.2(postcss@8.4.43): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.0(postcss@8.4.43) - '@csstools/postcss-color-function': 4.0.2(postcss@8.4.43) - '@csstools/postcss-color-mix-function': 3.0.2(postcss@8.4.43) - '@csstools/postcss-content-alt-text': 2.0.1(postcss@8.4.43) - '@csstools/postcss-exponential-functions': 2.0.1(postcss@8.4.43) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.43) - '@csstools/postcss-gamut-mapping': 2.0.2(postcss@8.4.43) - '@csstools/postcss-gradients-interpolation-method': 5.0.2(postcss@8.4.43) - '@csstools/postcss-hwb-function': 4.0.2(postcss@8.4.43) - '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.43) - '@csstools/postcss-initial': 2.0.0(postcss@8.4.43) - '@csstools/postcss-is-pseudo-class': 5.0.0(postcss@8.4.43) - '@csstools/postcss-light-dark-function': 2.0.2(postcss@8.4.43) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.43) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.43) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.43) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.43) - '@csstools/postcss-logical-viewport-units': 3.0.1(postcss@8.4.43) - '@csstools/postcss-media-minmax': 2.0.1(postcss@8.4.43) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.1(postcss@8.4.43) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.43) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.43) - '@csstools/postcss-oklab-function': 4.0.2(postcss@8.4.43) - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.43) - '@csstools/postcss-relative-color-syntax': 3.0.2(postcss@8.4.43) - '@csstools/postcss-scope-pseudo-class': 4.0.0(postcss@8.4.43) - '@csstools/postcss-stepped-value-functions': 4.0.1(postcss@8.4.43) - '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.43) - '@csstools/postcss-trigonometric-functions': 4.0.1(postcss@8.4.43) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.43) - autoprefixer: 10.4.20(postcss@8.4.43) + postcss-preset-env@10.0.2(postcss@8.4.45): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.0(postcss@8.4.45) + '@csstools/postcss-color-function': 4.0.2(postcss@8.4.45) + '@csstools/postcss-color-mix-function': 3.0.2(postcss@8.4.45) + '@csstools/postcss-content-alt-text': 2.0.1(postcss@8.4.45) + '@csstools/postcss-exponential-functions': 2.0.1(postcss@8.4.45) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.45) + '@csstools/postcss-gamut-mapping': 2.0.2(postcss@8.4.45) + '@csstools/postcss-gradients-interpolation-method': 5.0.2(postcss@8.4.45) + '@csstools/postcss-hwb-function': 4.0.2(postcss@8.4.45) + '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.45) + '@csstools/postcss-initial': 2.0.0(postcss@8.4.45) + '@csstools/postcss-is-pseudo-class': 5.0.0(postcss@8.4.45) + '@csstools/postcss-light-dark-function': 2.0.2(postcss@8.4.45) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.45) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.45) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.45) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.45) + '@csstools/postcss-logical-viewport-units': 3.0.1(postcss@8.4.45) + '@csstools/postcss-media-minmax': 2.0.1(postcss@8.4.45) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.1(postcss@8.4.45) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.45) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.45) + '@csstools/postcss-oklab-function': 4.0.2(postcss@8.4.45) + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.45) + '@csstools/postcss-relative-color-syntax': 3.0.2(postcss@8.4.45) + '@csstools/postcss-scope-pseudo-class': 4.0.0(postcss@8.4.45) + '@csstools/postcss-stepped-value-functions': 4.0.1(postcss@8.4.45) + '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.45) + '@csstools/postcss-trigonometric-functions': 4.0.1(postcss@8.4.45) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.45) + autoprefixer: 10.4.20(postcss@8.4.45) browserslist: 4.23.3 - css-blank-pseudo: 7.0.0(postcss@8.4.43) - css-has-pseudo: 7.0.0(postcss@8.4.43) - css-prefers-color-scheme: 10.0.0(postcss@8.4.43) + css-blank-pseudo: 7.0.0(postcss@8.4.45) + css-has-pseudo: 7.0.0(postcss@8.4.45) + css-prefers-color-scheme: 10.0.0(postcss@8.4.45) cssdb: 8.1.0 - postcss: 8.4.43 - postcss-attribute-case-insensitive: 7.0.0(postcss@8.4.43) - postcss-clamp: 4.1.0(postcss@8.4.43) - postcss-color-functional-notation: 7.0.2(postcss@8.4.43) - postcss-color-hex-alpha: 10.0.0(postcss@8.4.43) - postcss-color-rebeccapurple: 10.0.0(postcss@8.4.43) - postcss-custom-media: 11.0.1(postcss@8.4.43) - postcss-custom-properties: 14.0.1(postcss@8.4.43) - postcss-custom-selectors: 8.0.1(postcss@8.4.43) - postcss-dir-pseudo-class: 9.0.0(postcss@8.4.43) - postcss-double-position-gradients: 6.0.0(postcss@8.4.43) - postcss-focus-visible: 10.0.0(postcss@8.4.43) - postcss-focus-within: 9.0.0(postcss@8.4.43) - postcss-font-variant: 5.0.0(postcss@8.4.43) - postcss-gap-properties: 6.0.0(postcss@8.4.43) - postcss-image-set-function: 7.0.0(postcss@8.4.43) - postcss-lab-function: 7.0.2(postcss@8.4.43) - postcss-logical: 8.0.0(postcss@8.4.43) - postcss-nesting: 13.0.0(postcss@8.4.43) - postcss-opacity-percentage: 2.0.0(postcss@8.4.43) - postcss-overflow-shorthand: 6.0.0(postcss@8.4.43) - postcss-page-break: 3.0.4(postcss@8.4.43) - postcss-place: 10.0.0(postcss@8.4.43) - postcss-pseudo-class-any-link: 10.0.0(postcss@8.4.43) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.43) - postcss-selector-not: 8.0.0(postcss@8.4.43) - - postcss-pseudo-class-any-link@10.0.0(postcss@8.4.43): - dependencies: - postcss: 8.4.43 + postcss: 8.4.45 + postcss-attribute-case-insensitive: 7.0.0(postcss@8.4.45) + postcss-clamp: 4.1.0(postcss@8.4.45) + postcss-color-functional-notation: 7.0.2(postcss@8.4.45) + postcss-color-hex-alpha: 10.0.0(postcss@8.4.45) + postcss-color-rebeccapurple: 10.0.0(postcss@8.4.45) + postcss-custom-media: 11.0.1(postcss@8.4.45) + postcss-custom-properties: 14.0.1(postcss@8.4.45) + postcss-custom-selectors: 8.0.1(postcss@8.4.45) + postcss-dir-pseudo-class: 9.0.0(postcss@8.4.45) + postcss-double-position-gradients: 6.0.0(postcss@8.4.45) + postcss-focus-visible: 10.0.0(postcss@8.4.45) + postcss-focus-within: 9.0.0(postcss@8.4.45) + postcss-font-variant: 5.0.0(postcss@8.4.45) + postcss-gap-properties: 6.0.0(postcss@8.4.45) + postcss-image-set-function: 7.0.0(postcss@8.4.45) + postcss-lab-function: 7.0.2(postcss@8.4.45) + postcss-logical: 8.0.0(postcss@8.4.45) + postcss-nesting: 13.0.0(postcss@8.4.45) + postcss-opacity-percentage: 2.0.0(postcss@8.4.45) + postcss-overflow-shorthand: 6.0.0(postcss@8.4.45) + postcss-page-break: 3.0.4(postcss@8.4.45) + postcss-place: 10.0.0(postcss@8.4.45) + postcss-pseudo-class-any-link: 10.0.0(postcss@8.4.45) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.45) + postcss-selector-not: 8.0.0(postcss@8.4.45) + + postcss-pseudo-class-any-link@10.0.0(postcss@8.4.45): + dependencies: + postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.4.43): + postcss-replace-overflow-wrap@4.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 - postcss-selector-not@8.0.0(postcss@8.4.43): + postcss-selector-not@8.0.0(postcss@8.4.45): dependencies: - postcss: 8.4.43 + postcss: 8.4.45 postcss-selector-parser: 6.1.0 postcss-selector-parser@6.1.0: @@ -15877,10 +15867,10 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.4.43: + postcss@8.4.45: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 + picocolors: 1.1.0 source-map-js: 1.2.0 preact-render-to-string@6.5.10(preact@10.23.2): @@ -15889,13 +15879,6 @@ snapshots: preact@10.23.2: {} - preferred-pm@3.1.3: - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.0.0 - preferred-pm@4.0.0: dependencies: find-up-simple: 1.0.0 @@ -16026,13 +16009,13 @@ snapshots: hast-util-from-html: 2.0.2 unified: 11.0.5 - rehype-pretty-code@0.14.0(shiki@1.16.1): + rehype-pretty-code@0.14.0(shiki@1.16.2): dependencies: '@types/hast': 3.0.4 hast-util-to-string: 3.0.0 parse-numeric-range: 1.3.0 rehype-parse: 9.0.0 - shiki: 1.16.1 + shiki: 1.16.2 unified: 11.0.5 unist-util-visit: 5.0.0 @@ -16253,7 +16236,7 @@ snapshots: dependencies: suf-log: 2.5.3 - sass@1.77.8: + sass@1.78.0: dependencies: chokidar: 3.6.0 immutable: 4.3.5 @@ -16368,9 +16351,9 @@ snapshots: vscode-oniguruma: 1.7.0 vscode-textmate: 5.2.0 - shiki@1.16.1: + shiki@1.16.2: dependencies: - '@shikijs/core': 1.16.1 + '@shikijs/core': 1.16.2 '@shikijs/vscode-textmate': 9.2.0 '@types/hast': 3.0.4 @@ -16561,7 +16544,7 @@ snapshots: dependencies: svelte: 4.2.19 - svelte2tsx@0.7.16(svelte@4.2.19)(typescript@5.5.4): + svelte2tsx@0.7.18(svelte@4.2.19)(typescript@5.5.4): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 @@ -16595,7 +16578,7 @@ snapshots: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.1 + picocolors: 1.1.0 symbol-tree@3.2.4: {} @@ -16614,12 +16597,12 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.43 - postcss-import: 15.1.0(postcss@8.4.43) - postcss-js: 4.0.1(postcss@8.4.43) - postcss-load-config: 4.0.2(postcss@8.4.43) - postcss-nested: 6.0.1(postcss@8.4.43) + picocolors: 1.1.0 + postcss: 8.4.45 + postcss-import: 15.1.0(postcss@8.4.45) + postcss-js: 4.0.1(postcss@8.4.45) + postcss-load-config: 4.0.2(postcss@8.4.45) + postcss-nested: 6.0.1(postcss@8.4.45) postcss-selector-parser: 6.1.0 resolve: 1.22.8 sucrase: 3.35.0 @@ -16773,11 +16756,11 @@ snapshots: dependencies: semver: 7.6.3 - typescript-eslint@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4): + typescript-eslint@8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4))(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) - '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(jiti@1.21.0))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4))(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.10.0(jiti@1.21.0))(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -16896,7 +16879,7 @@ snapshots: dependencies: browserslist: 4.23.3 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 upper-case@1.1.3: {} @@ -16932,17 +16915,17 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)): + vite-hot-client@0.2.3(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)): dependencies: - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) - vite-node@2.0.5(@types/node@18.19.31)(sass@1.77.8): + vite-node@2.0.5(@types/node@18.19.31)(sass@1.78.0): dependencies: cac: 6.7.14 - debug: 4.3.6 + debug: 4.3.7 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - '@types/node' - less @@ -16954,23 +16937,23 @@ snapshots: - supports-color - terser - vite-plugin-inspect@0.8.5(rollup@4.21.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)): + vite-plugin-inspect@0.8.7(rollup@4.21.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.0(rollup@4.21.2) - debug: 4.3.6 + debug: 4.3.7 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0 open: 10.1.0 perfect-debounce: 1.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 sirv: 2.0.4 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(solid-js@1.8.22)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)): + vite-plugin-solid@2.10.2(solid-js@1.8.22)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)): dependencies: '@babel/core': 7.25.2 '@types/babel__core': 7.20.5 @@ -16978,28 +16961,28 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.8.22 solid-refresh: 0.6.3(solid-js@1.8.22) - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) - vitefu: 0.2.5(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) + vitefu: 0.2.5(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.3.9(rollup@4.21.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)): + vite-plugin-vue-devtools@7.4.4(rollup@4.21.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4)): dependencies: - '@vue/devtools-core': 7.3.9(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) - '@vue/devtools-kit': 7.3.9 - '@vue/devtools-shared': 7.3.9 + '@vue/devtools-core': 7.4.4(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0))(vue@3.5.3(typescript@5.5.4)) + '@vue/devtools-kit': 7.4.4 + '@vue/devtools-shared': 7.4.4 execa: 8.0.1 sirv: 2.0.4 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) - vite-plugin-inspect: 0.8.5(rollup@4.21.2)(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) - vite-plugin-vue-inspector: 5.1.3(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) + vite-plugin-inspect: 0.8.7(rollup@4.21.2)(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) + vite-plugin-vue-inspector: 5.2.0(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.1.3(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)): + vite-plugin-vue-inspector@5.2.0(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)): dependencies: '@babel/core': 7.25.2 '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.25.2) @@ -17007,37 +16990,37 @@ snapshots: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.25.2) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) - '@vue/compiler-dom': 3.4.38 + '@vue/compiler-dom': 3.5.3 kolorist: 1.8.0 magic-string: 0.30.11 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) transitivePeerDependencies: - supports-color - vite-svg-loader@5.1.0(vue@3.4.38(typescript@5.5.4)): + vite-svg-loader@5.1.0(vue@3.5.3(typescript@5.5.4)): dependencies: svgo: 3.2.0 - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.3(typescript@5.5.4) - vite@5.4.2(@types/node@18.19.31)(sass@1.77.8): + vite@5.4.3(@types/node@18.19.31)(sass@1.78.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.43 + postcss: 8.4.45 rollup: 4.21.2 optionalDependencies: '@types/node': 18.19.31 fsevents: 2.3.3 - sass: 1.77.8 + sass: 1.78.0 - vitefu@0.2.5(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)): + vitefu@0.2.5(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)): optionalDependencies: - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) - vitefu@1.0.2(vite@5.4.2(@types/node@18.19.31)(sass@1.77.8)): + vitefu@1.0.2(vite@5.4.3(@types/node@18.19.31)(sass@1.78.0)): optionalDependencies: - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) - vitest@2.0.5(@types/node@18.19.31)(jsdom@23.2.0)(sass@1.77.8): + vitest@2.0.5(@types/node@18.19.31)(jsdom@23.2.0)(sass@1.78.0): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -17047,7 +17030,7 @@ snapshots: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 chai: 5.1.1 - debug: 4.3.6 + debug: 4.3.7 execa: 8.0.1 magic-string: 0.30.11 pathe: 1.1.2 @@ -17055,8 +17038,8 @@ snapshots: tinybench: 2.8.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.4.2(@types/node@18.19.31)(sass@1.77.8) - vite-node: 2.0.5(@types/node@18.19.31)(sass@1.77.8) + vite: 5.4.3(@types/node@18.19.31)(sass@1.78.0) + vite-node: 2.0.5(@types/node@18.19.31)(sass@1.78.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.19.31 @@ -17187,13 +17170,13 @@ snapshots: vscode-uri@3.0.8: {} - vue@3.4.38(typescript@5.5.4): + vue@3.5.3(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-sfc': 3.4.38 - '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.3 + '@vue/compiler-sfc': 3.5.3 + '@vue/runtime-dom': 3.5.3 + '@vue/server-renderer': 3.5.3(vue@3.5.3(typescript@5.5.4)) + '@vue/shared': 3.5.3 optionalDependencies: typescript: 5.5.4 @@ -17229,11 +17212,6 @@ snapshots: which-pm-runs@1.1.0: {} - which-pm@2.0.0: - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - which-pm@3.0.0: dependencies: load-yaml-file: 0.2.0 From 46ea29f91df83ea638ecbc544ce99375538636d4 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Mon, 9 Sep 2024 22:35:34 +0800 Subject: [PATCH 17/27] Fix `build.client` and `build.server` resolve behaviour (#11916) Co-authored-by: Florian Lefebvre Co-authored-by: Sarah Rainsberger --- .changeset/chilly-terms-know.md | 15 +++++++ packages/astro/src/core/config/schema.ts | 45 ++++++++++++------- packages/astro/src/types/public/config.ts | 4 +- .../astro/test/astro-assets-prefix.test.js | 12 ----- packages/astro/test/before-hydration.test.js | 16 ------- packages/astro/test/core-image.test.js | 12 ----- .../astro/test/css-inline-stylesheets.test.js | 12 ----- ...collections-css-inline-stylesheets.test.js | 6 --- packages/astro/test/i18n-routing.test.js | 16 ------- packages/astro/test/ssr-prerender.test.js | 8 ---- packages/astro/test/ssr-script.test.js | 28 ------------ 11 files changed, 46 insertions(+), 128 deletions(-) create mode 100644 .changeset/chilly-terms-know.md diff --git a/.changeset/chilly-terms-know.md b/.changeset/chilly-terms-know.md new file mode 100644 index 000000000000..ea5de66029dc --- /dev/null +++ b/.changeset/chilly-terms-know.md @@ -0,0 +1,15 @@ +--- +'astro': major +--- + +Updates how the `build.client` and `build.server` option values get resolved to match existing documentation. With this fix, the option values will now correctly resolve relative to the `outDir` option. So if `outDir` is set to `./dist/nested/`, then by default: + +- `build.client` will resolve to `/dist/nested/client/` +- `build.server` will resolve to `/dist/nested/server/` + +Previously the values were incorrectly resolved: + +- `build.client` was resolved to `/dist/nested/dist/client/` +- `build.server` was resolved to `/dist/nested/dist/server/` + +If you were relying on the previous build paths, make sure that your project code is updated to the new build paths. diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index f2a397030112..60427a19e8f0 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -9,7 +9,7 @@ import { type BuiltinTheme, bundledThemes } from 'shiki'; import type { OutgoingHttpHeaders } from 'node:http'; import path from 'node:path'; -import { pathToFileURL } from 'node:url'; +import { fileURLToPath, pathToFileURL } from 'node:url'; import { z } from 'zod'; import { EnvSchema } from '../../env/schema.js'; import type { AstroUserConfig, ViteUserConfig } from '../../types/public/config.js'; @@ -57,8 +57,8 @@ export const ASTRO_CONFIG_DEFAULTS = { trailingSlash: 'ignore', build: { format: 'directory', - client: './dist/client/', - server: './dist/server/', + client: './client/', + server: './server/', assets: '_astro', serverEntry: 'entry.mjs', redirects: true, @@ -540,6 +540,9 @@ export const AstroConfigSchema = z.object({ export type AstroConfigType = z.infer; export function createRelativeSchema(cmd: string, fileProtocolRoot: string) { + let originalBuildClient: string; + let originalBuildServer: string; + // We need to extend the global schema to add transforms that are relative to root. // This is type checked against the global schema to make sure we still match. const AstroConfigRelativeSchema = AstroConfigSchema.extend({ @@ -570,16 +573,30 @@ export function createRelativeSchema(cmd: string, fileProtocolRoot: string) { .union([z.literal('file'), z.literal('directory'), z.literal('preserve')]) .optional() .default(ASTRO_CONFIG_DEFAULTS.build.format), + // NOTE: `client` and `server` are transformed relative to the default outDir first, + // later we'll fix this to be relative to the actual `outDir` client: z .string() .optional() .default(ASTRO_CONFIG_DEFAULTS.build.client) - .transform((val) => resolveDirAsUrl(val, fileProtocolRoot)), + .transform((val) => { + originalBuildClient = val; + return resolveDirAsUrl( + val, + path.resolve(fileProtocolRoot, ASTRO_CONFIG_DEFAULTS.outDir), + ); + }), server: z .string() .optional() .default(ASTRO_CONFIG_DEFAULTS.build.server) - .transform((val) => resolveDirAsUrl(val, fileProtocolRoot)), + .transform((val) => { + originalBuildServer = val; + return resolveDirAsUrl( + val, + path.resolve(fileProtocolRoot, ASTRO_CONFIG_DEFAULTS.outDir), + ); + }), assets: z.string().optional().default(ASTRO_CONFIG_DEFAULTS.build.assets), assetsPrefix: z .string() @@ -636,19 +653,15 @@ export function createRelativeSchema(cmd: string, fileProtocolRoot: string) { ), }) .transform((config) => { - // If the user changed outDir but not build.server, build.config, adjust so those - // are relative to the outDir, as is the expected default. - if ( - !config.build.server.toString().startsWith(config.outDir.toString()) && - config.build.server.toString().endsWith('dist/server/') - ) { - config.build.server = new URL('./dist/server/', config.outDir); - } + // If the user changed `outDir`, we need to also update `build.client` and `build.server` + // the be based on the correct `outDir` if ( - !config.build.client.toString().startsWith(config.outDir.toString()) && - config.build.client.toString().endsWith('dist/client/') + config.outDir.toString() !== + resolveDirAsUrl(ASTRO_CONFIG_DEFAULTS.outDir, fileProtocolRoot).toString() ) { - config.build.client = new URL('./dist/client/', config.outDir); + const outDirPath = fileURLToPath(config.outDir); + config.build.client = resolveDirAsUrl(originalBuildClient, outDirPath); + config.build.server = resolveDirAsUrl(originalBuildServer, outDirPath); } // Handle `base` trailing slash based on `trailingSlash` config diff --git a/packages/astro/src/types/public/config.ts b/packages/astro/src/types/public/config.ts index b75cf027b16c..81496adec9dc 100644 --- a/packages/astro/src/types/public/config.ts +++ b/packages/astro/src/types/public/config.ts @@ -560,7 +560,7 @@ export interface AstroUserConfig { * @docs * @name build.client * @type {string} - * @default `'./dist/client'` + * @default `'./client'` * @description * Controls the output directory of your client-side CSS and JavaScript when building a website with server-rendered pages. * `outDir` controls where the code is built to. @@ -581,7 +581,7 @@ export interface AstroUserConfig { * @docs * @name build.server * @type {string} - * @default `'./dist/server'` + * @default `'./server'` * @description * Controls the output directory of server JavaScript when building to SSR. * diff --git a/packages/astro/test/astro-assets-prefix.test.js b/packages/astro/test/astro-assets-prefix.test.js index 4987c64e19ba..141adf1c14db 100644 --- a/packages/astro/test/astro-assets-prefix.test.js +++ b/packages/astro/test/astro-assets-prefix.test.js @@ -15,10 +15,6 @@ describe('Assets Prefix - Static', () => { fixture = await loadFixture({ root: './fixtures/astro-assets-prefix/', outDir: './dist/static', - build: { - client: './dist/static/client', - server: './dist/static/server', - }, }); await fixture.build(); }); @@ -79,8 +75,6 @@ describe('Assets Prefix - with path prefix', () => { root: './fixtures/astro-assets-prefix/', outDir: './dist/server', build: { - client: './dist/server/client', - server: './dist/server/server', assetsPrefix: '/starting-slash', }, }); @@ -106,10 +100,6 @@ describe('Assets Prefix, server', () => { output: 'server', adapter: testAdapter(), outDir: './dist/server', - build: { - client: './dist/server/client', - server: './dist/server/server', - }, }); await fixture.build(); app = await fixture.loadTestAdapterApp(); @@ -169,8 +159,6 @@ describe('Assets Prefix, with path prefix', () => { adapter: testAdapter(), outDir: './dist/server-path-prefix', build: { - client: './dist/server-path-prefix/client', - server: './dist/server-path-prefix/server', assetsPrefix: '/starting-slash', }, }); diff --git a/packages/astro/test/before-hydration.test.js b/packages/astro/test/before-hydration.test.js index 75acafa00e45..117fdeedddc9 100644 --- a/packages/astro/test/before-hydration.test.js +++ b/packages/astro/test/before-hydration.test.js @@ -15,10 +15,6 @@ describe('Astro Scripts before-hydration', () => { fixture = await loadFixture({ root: './fixtures/before-hydration/', outDir: './dist/static-integration', - build: { - client: './dist/static-integration/client', - server: './dist/static-integration/server', - }, integrations: [ preact(), { @@ -74,10 +70,6 @@ describe('Astro Scripts before-hydration', () => { fixture = await loadFixture({ root: './fixtures/before-hydration/', outDir: './dist/static-no-integration', - build: { - client: './dist/static-no-integration/client', - server: './dist/static-no-integration/server', - }, }); }); @@ -126,10 +118,6 @@ describe('Astro Scripts before-hydration', () => { output: 'server', adapter: testAdapter(), outDir: './dist/server-integration', - build: { - client: './dist/server-integration/client', - server: './dist/server-integration/server', - }, integrations: [ preact(), { @@ -169,10 +157,6 @@ describe('Astro Scripts before-hydration', () => { root: './fixtures/before-hydration/', output: 'server', outDir: './dist/static-no-integration', - build: { - client: './dist/static-no-integration/client', - server: './dist/static-no-integration/server', - }, adapter: testAdapter(), }); }); diff --git a/packages/astro/test/core-image.test.js b/packages/astro/test/core-image.test.js index 9c62a679ef80..303bcc7f0d95 100644 --- a/packages/astro/test/core-image.test.js +++ b/packages/astro/test/core-image.test.js @@ -814,10 +814,6 @@ describe('astro:image', () => { root: './fixtures/core-image-ssr/', output: 'server', outDir: './dist/server-base-path', - build: { - client: './dist/server-base-path/client', - server: './dist/server-base-path/server', - }, adapter: testAdapter(), image: { service: testImageService(), @@ -1100,10 +1096,6 @@ describe('astro:image', () => { root: './fixtures/core-image-ssr/', output: 'server', outDir: './dist/server-dev', - build: { - client: './dist/server-dev/client', - server: './dist/server-dev/server', - }, adapter: testAdapter(), base: 'some-base', image: { @@ -1139,10 +1131,6 @@ describe('astro:image', () => { root: './fixtures/core-image-ssr/', output: 'server', outDir: './dist/server-prod', - build: { - client: './dist/server-prod/client', - server: './dist/server-prod/server', - }, adapter: testAdapter(), image: { endpoint: 'astro/assets/endpoint/node', diff --git a/packages/astro/test/css-inline-stylesheets.test.js b/packages/astro/test/css-inline-stylesheets.test.js index 3ccc97a7224c..7bae334e14cc 100644 --- a/packages/astro/test/css-inline-stylesheets.test.js +++ b/packages/astro/test/css-inline-stylesheets.test.js @@ -17,8 +17,6 @@ describe('Setting inlineStylesheets to never in static output', () => { output: 'static', outDir: './dist/static-inline-stylesheets-never', build: { - client: './dist/static-inline-stylesheets-never/client', - server: './dist/static-inline-stylesheets-never/server', inlineStylesheets: 'never', }, }); @@ -58,8 +56,6 @@ describe('Setting inlineStylesheets to never in server output', () => { adapter: testAdapter(), outDir: './dist/server-inline-stylesheets-never', build: { - client: './dist/server-inline-stylesheets-never/client', - server: './dist/server-inline-stylesheets-never/server', inlineStylesheets: 'never', }, }); @@ -100,8 +96,6 @@ describe('Setting inlineStylesheets to auto in static output', () => { output: 'static', outDir: './dist/static-inline-stylesheets-auto', build: { - client: './dist/static-inline-stylesheets-auto/client', - server: './dist/static-inline-stylesheets-auto/server', inlineStylesheets: 'auto', }, vite: { @@ -148,8 +142,6 @@ describe('Setting inlineStylesheets to auto in server output', () => { adapter: testAdapter(), outDir: './dist/server-inline-stylesheets-auto', build: { - client: './dist/server-inline-stylesheets-auto/client', - server: './dist/server-inline-stylesheets-auto/server', inlineStylesheets: 'auto', }, vite: { @@ -198,8 +190,6 @@ describe('Setting inlineStylesheets to always in static output', () => { output: 'static', outDir: './dist/static-inline-stylesheets-always', build: { - client: './dist/static-inline-stylesheets-always/client', - server: './dist/static-inline-stylesheets-always/server', inlineStylesheets: 'always', }, }); @@ -238,8 +228,6 @@ describe('Setting inlineStylesheets to always in server output', () => { adapter: testAdapter(), outDir: './dist/server-inline-stylesheets-always', build: { - client: './dist/server-inline-stylesheets-always/client', - server: './dist/server-inline-stylesheets-always/server', inlineStylesheets: 'always', }, }); diff --git a/packages/astro/test/experimental-content-collections-css-inline-stylesheets.test.js b/packages/astro/test/experimental-content-collections-css-inline-stylesheets.test.js index 656a380933f2..2c61563c6834 100644 --- a/packages/astro/test/experimental-content-collections-css-inline-stylesheets.test.js +++ b/packages/astro/test/experimental-content-collections-css-inline-stylesheets.test.js @@ -61,8 +61,6 @@ describe('Experimental Content Collections cache - inlineStylesheets to never in adapter: testAdapter(), outDir: './dist/inline-stylesheets-never', build: { - client: './dist/inline-stylesheets-never/client', - server: './dist/inline-stylesheets-never/server', inlineStylesheets: 'never', }, experimental: { @@ -108,8 +106,6 @@ describe('Experimental Content Collections cache - inlineStylesheets to auto in output: 'static', outDir: './dist/inline-stylesheets-auto', build: { - client: './dist/inline-stylesheets-auto/client', - server: './dist/inline-stylesheets-auto/server', inlineStylesheets: 'auto', }, vite: { @@ -210,8 +206,6 @@ describe('Setting inlineStylesheets to always in server output', () => { adapter: testAdapter(), outDir: './dist/inline-stylesheets-always', build: { - client: './dist/inline-stylesheets-always/client', - server: './dist/inline-stylesheets-always/server', inlineStylesheets: 'always', }, experimental: { diff --git a/packages/astro/test/i18n-routing.test.js b/packages/astro/test/i18n-routing.test.js index e0413377d9f7..9b642f342a1d 100644 --- a/packages/astro/test/i18n-routing.test.js +++ b/packages/astro/test/i18n-routing.test.js @@ -1337,10 +1337,6 @@ describe('[SSR] i18n routing', () => { root: './fixtures/i18n-routing-prefix-always/', output: 'server', outDir: './dist/pathname-prefix-always-no-redirect', - build: { - client: './dist/pathname-prefix-always-no-redirect/client', - server: './dist/pathname-prefix-always-no-redirect/server', - }, adapter: testAdapter(), i18n: { routing: { @@ -1628,10 +1624,6 @@ describe('[SSR] i18n routing', () => { root: './fixtures/i18n-routing/', output: 'server', outDir: './dist/locales-underscore', - build: { - client: './dist/locales-underscore/client', - server: './dist/locales-underscore/server', - }, adapter: testAdapter(), i18n: { defaultLocale: 'en', @@ -1902,10 +1894,6 @@ describe('SSR fallback from missing locale index to default locale index', () => root: './fixtures/i18n-routing-prefix-other-locales/', output: 'server', outDir: './dist/missing-locale-to-default', - build: { - client: './dist/missing-locale-to-default/client', - server: './dist/missing-locale-to-default/server', - }, adapter: testAdapter(), i18n: { defaultLocale: 'en', @@ -2003,10 +1991,6 @@ describe('Fallback rewrite SSR', () => { root: './fixtures/i18n-routing-fallback/', output: 'server', outDir: './dist/i18n-routing-fallback', - build: { - client: './dist/i18n-routing-fallback/client', - server: './dist/i18n-routing-fallback/server', - }, adapter: testAdapter(), i18n: { defaultLocale: 'en', diff --git a/packages/astro/test/ssr-prerender.test.js b/packages/astro/test/ssr-prerender.test.js index a1620d752d60..7cd445024767 100644 --- a/packages/astro/test/ssr-prerender.test.js +++ b/packages/astro/test/ssr-prerender.test.js @@ -13,10 +13,6 @@ describe('SSR: prerender', () => { root: './fixtures/ssr-prerender/', output: 'server', outDir: './dist/normal', - build: { - client: './dist/normal/client', - server: './dist/normal/server', - }, adapter: testAdapter(), }); await fixture.build(); @@ -93,10 +89,6 @@ describe.skip('Integrations can hook into the prerendering decision', () => { root: './fixtures/ssr-prerender/', output: 'server', outDir: './dist/integration-prerender', - build: { - client: './dist/integration-prerender/client', - server: './dist/integration-prerender/server', - }, integrations: [testIntegration], adapter: testAdapter(), }); diff --git a/packages/astro/test/ssr-script.test.js b/packages/astro/test/ssr-script.test.js index 7426bed8e6f7..2ccf86492a0b 100644 --- a/packages/astro/test/ssr-script.test.js +++ b/packages/astro/test/ssr-script.test.js @@ -28,10 +28,6 @@ describe('Inline scripts in SSR', () => { fixture = await loadFixture({ ...defaultFixtureOptions, outDir: './dist/inline-scripts-without-base-path', - build: { - client: './dist/inline-scripts-without-base-path/client', - server: './dist/inline-scripts-without-base-path/server', - }, }); await fixture.build(); }); @@ -50,10 +46,6 @@ describe('Inline scripts in SSR', () => { fixture = await loadFixture({ ...defaultFixtureOptions, outDir: './dist/inline-scripts-with-base-path', - build: { - client: './dist/inline-scripts-with-base-path/client', - server: './dist/inline-scripts-with-base-path/server', - }, base, }); await fixture.build(); @@ -76,10 +68,6 @@ describe('External scripts in SSR', () => { fixture = await loadFixture({ ...defaultFixtureOptions, outDir: './dist/external-scripts-without-base-path', - build: { - client: './dist/external-scripts-without-base-path/client', - server: './dist/external-scripts-without-base-path/server', - }, vite: { build: { assetsInlineLimit: 0, @@ -101,10 +89,6 @@ describe('External scripts in SSR', () => { fixture = await loadFixture({ ...defaultFixtureOptions, outDir: './dist/external-scripts-with-base-path', - build: { - client: './dist/external-scripts-with-base-path/client', - server: './dist/external-scripts-with-base-path/server', - }, vite: { build: { assetsInlineLimit: 0, @@ -128,8 +112,6 @@ describe('External scripts in SSR', () => { ...defaultFixtureOptions, outDir: './dist/with-assets-prefix', build: { - client: './dist/with-assets-prefix/client', - server: './dist/with-assets-prefix/server', assetsPrefix: 'https://cdn.example.com', }, vite: { @@ -153,10 +135,6 @@ describe('External scripts in SSR', () => { fixture = await loadFixture({ ...defaultFixtureOptions, outDir: './dist/with-rollup-output-file-names', - build: { - client: './dist/with-rollup-output-file-names/client', - server: './dist/with-rollup-output-file-names/server', - }, vite: { build: { assetsInlineLimit: 0, @@ -185,10 +163,6 @@ describe('External scripts in SSR', () => { fixture = await loadFixture({ ...defaultFixtureOptions, outDir: './dist/with-rollup-output-file-names-and-base', - build: { - client: './dist/with-rollup-output-file-names-and-base/client', - server: './dist/with-rollup-output-file-names-and-base/server', - }, vite: { build: { assetsInlineLimit: 0, @@ -219,8 +193,6 @@ describe('External scripts in SSR', () => { ...defaultFixtureOptions, outDir: './dist/with-rollup-output-file-names-and-assets-prefix', build: { - client: './dist/with-rollup-output-file-names-and-assets-prefix/client', - server: './dist/with-rollup-output-file-names-and-assets-prefix/server', assetsPrefix: 'https://cdn.example.com', }, vite: { From 0a269b63e5cf54d7939424cbecbb97f85eef486a Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Mon, 9 Sep 2024 16:43:51 +0200 Subject: [PATCH 18/27] fix: changelog --- .changeset/long-lions-do.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/long-lions-do.md b/.changeset/long-lions-do.md index 4fd5e2c70fe6..b9fc3515a111 100644 --- a/.changeset/long-lions-do.md +++ b/.changeset/long-lions-do.md @@ -16,7 +16,7 @@ export const prerender = true // src/middleware.js export const onRequest = (ctx, next) => { - console.log(ctx.prerender) // it will log true + console.log(ctx.isPrerendered) // it will log true return next() } ``` From 26dc381f712eb4229b1abb723384bcfbcfb277f0 Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Mon, 9 Sep 2024 08:09:25 -0700 Subject: [PATCH 19/27] [ci] release (alpha) (#11926) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 4 ++ examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- examples/component/package.json | 2 +- examples/container-with-vitest/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-multiple/package.json | 2 +- examples/framework-preact/package.json | 2 +- examples/framework-react/package.json | 2 +- examples/framework-solid/package.json | 2 +- examples/framework-svelte/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/hackernews/package.json | 2 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 2 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/server-islands/package.json | 2 +- examples/ssr/package.json | 2 +- examples/starlog/package.json | 2 +- examples/toolbar-app/package.json | 2 +- examples/view-transitions/package.json | 2 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 2 +- examples/with-nanostores/package.json | 2 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 43 +++++++++++++++ packages/astro/package.json | 2 +- packages/astro/src/types/public/config.ts | 6 +-- packages/astro/test/build-assets.test.js | 12 +++-- pnpm-lock.yaml | 58 ++++++++++----------- 35 files changed, 116 insertions(+), 67 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index e2b7c8f8ea45..672862bf9d21 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -35,6 +35,7 @@ "blue-boats-relax", "breezy-colts-promise", "chatty-teachers-sit", + "chilly-terms-know", "clean-donuts-walk", "curvy-walls-kneel", "eighty-boxes-applaud", @@ -46,6 +47,7 @@ "hungry-jokes-try", "itchy-toys-march", "large-zebras-sniff", + "long-lions-do", "long-months-rule", "many-garlics-lick", "mean-donkeys-switch", @@ -55,10 +57,12 @@ "neat-dots-hear", "old-zebras-teach", "perfect-fans-fly", + "pink-yaks-exercise", "poor-frogs-dream", "quick-ads-exercise", "selfish-cats-crash", "selfish-impalas-grin", + "sharp-worms-sniff", "small-ties-sort", "spotty-garlics-cheat", "ten-students-repair", diff --git a/examples/basics/package.json b/examples/basics/package.json index 98f7915169bb..ee4004b97d59 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 617bc0a1b5c4..5a7db865bed8 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^4.0.0-alpha.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/component/package.json b/examples/component/package.json index d2fe05fcc214..0f97544400e6 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json index f2e9903bf1ef..bb4876972ab0 100644 --- a/examples/container-with-vitest/package.json +++ b/examples/container-with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest run" }, "dependencies": { - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "@astrojs/react": "^3.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index cdc31e7038f3..8f8f6cde27fd 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.4.0", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index b9ef823e3fbc..89f09fc02b50 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -18,7 +18,7 @@ "@astrojs/vue": "^5.0.0-alpha.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "preact": "^10.23.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index 35ec7ed361a3..841e66c48231 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.5.2", "@preact/signals": "^1.3.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "preact": "^10.23.2" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index 4d1c9dd95b90..6880c17f5768 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.2", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index 76d347e1ff56..4449ce11966d 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^4.4.1", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "solid-js": "^1.8.22" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 33847b3ed7d5..88e2a71d6e50 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^6.0.0-alpha.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "svelte": "^4.2.19" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 949f9e97bcc3..915e8db4e50d 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^5.0.0-alpha.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "vue": "^3.4.38" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 453971d8bb79..68aef5e34f0b 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^9.0.0-alpha.1", - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index b243c736312d..69e0db7b2aa1 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index 7c7142ef3969..1620e2bc3d38 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^9.0.0-alpha.1", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "html-minifier": "^4.0.0" }, "devDependencies": { diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 206c05e71f97..53fbb893c96a 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 26d119d9c218..65d583b4bd4b 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 637c2f4ed22e..52955987b3d6 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json index a81582468c45..28a84d92dc9e 100644 --- a/examples/server-islands/package.json +++ b/examples/server-islands/package.json @@ -17,7 +17,7 @@ "@tailwindcss/forms": "^0.5.8", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "postcss": "^8.4.43", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/ssr/package.json b/examples/ssr/package.json index 043c65cded31..e63a7bec4c5c 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^9.0.0-alpha.1", "@astrojs/svelte": "^6.0.0-alpha.0", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "svelte": "^4.2.19" } } diff --git a/examples/starlog/package.json b/examples/starlog/package.json index 30355fe25481..911cbf0c3268 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "sass": "^1.77.8", "sharp": "^0.33.3" } diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json index abdeff5d5eb5..1646c3dd9cbd 100644 --- a/examples/toolbar-app/package.json +++ b/examples/toolbar-app/package.json @@ -15,6 +15,6 @@ "./app": "./dist/app.js" }, "devDependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index e1f22ea17612..df7405143616 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^6.0.0-alpha.0", "@astrojs/node": "^9.0.0-alpha.1", - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 4632e24b684c..0d41596196b5 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^1.0.0-alpha.1", - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index 5deb9d47591d..c253791118ec 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^6.0.0-alpha.1", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "hast-util-select": "^6.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 5d08bb9363cc..682060e6b385 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.4" + "astro": "^5.0.0-alpha.5" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index b2cf0bce4723..5c7a1f80255d 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/mdx": "^4.0.0-alpha.2", "@astrojs/preact": "^3.5.2", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "preact": "^10.23.2" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index ce5786d902df..6761471d3199 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.5.2", "@nanostores/preact": "^0.5.2", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "nanostores": "^0.11.3", "preact": "^10.23.2" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index e03f36106997..68bc3347dc53 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^4.0.0-alpha.2", "@astrojs/tailwind": "^6.0.0-alpha.0", "@types/canvas-confetti": "^1.6.4", - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "autoprefixer": "^10.4.20", "canvas-confetti": "^1.9.3", "postcss": "^8.4.43", diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index a8d9fc350045..08e00af172b4 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^5.0.0-alpha.4", + "astro": "^5.0.0-alpha.5", "vitest": "^2.0.5" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 77cc66503fe5..28e5f1c32a86 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,48 @@ # astro +## 5.0.0-alpha.5 + +### Major Changes + +- [#11916](https://github.com/withastro/astro/pull/11916) [`46ea29f`](https://github.com/withastro/astro/commit/46ea29f91df83ea638ecbc544ce99375538636d4) Thanks [@bluwy](https://github.com/bluwy)! - Updates how the `build.client` and `build.server` option values get resolved to match existing documentation. With this fix, the option values will now correctly resolve relative to the `outDir` option. So if `outDir` is set to `./dist/nested/`, then by default: + + - `build.client` will resolve to `/dist/nested/client/` + - `build.server` will resolve to `/dist/nested/server/` + + Previously the values were incorrectly resolved: + + - `build.client` was resolved to `/dist/nested/dist/client/` + - `build.server` was resolved to `/dist/nested/dist/server/` + + If you were relying on the previous build paths, make sure that your project code is updated to the new build paths. + +### Minor Changes + +- [#11875](https://github.com/withastro/astro/pull/11875) [`a8a3d2c`](https://github.com/withastro/astro/commit/a8a3d2cde813d891dd9c63f07f91ce4e77d4f93b) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Adds a new property `isPrerendered` to the globals `Astro` and `APIContext` . This boolean value represents whether or not the current page is prerendered: + + ```astro + --- + // src/pages/index.astro + + export const prerender = true; + --- + ``` + + ```js + // src/middleware.js + + export const onRequest = (ctx, next) => { + console.log(ctx.isPrerendered); // it will log true + return next(); + }; + ``` + +### Patch Changes + +- [#11927](https://github.com/withastro/astro/pull/11927) [`5b4e3ab`](https://github.com/withastro/astro/commit/5b4e3abbb152146b71c1af05d33c96211000b2a6) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Updates the `env` configuration reference docs to include a full API reference for `envField`. + +- [#11943](https://github.com/withastro/astro/pull/11943) [`fa4671c`](https://github.com/withastro/astro/commit/fa4671ca283266092cf4f52357836d2f57817089) Thanks [@sarah11918](https://github.com/sarah11918)! - Updates error messages that assume content collections are located in `src/content/` with more generic language + ## 5.0.0-alpha.4 ### Major Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 2b425894e9dd..e2cf4037bd62 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "5.0.0-alpha.4", + "version": "5.0.0-alpha.5", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", diff --git a/packages/astro/src/types/public/config.ts b/packages/astro/src/types/public/config.ts index 81496adec9dc..365b3a75d6c2 100644 --- a/packages/astro/src/types/public/config.ts +++ b/packages/astro/src/types/public/config.ts @@ -1452,12 +1452,12 @@ export interface AstroUserConfig { * } * }) * ``` - * + * * `envField` supports four data types: string, number, enum, and boolean. `context` and `access` are required properties for all data types. The following shows the complete list of properties available for each data type: - * + * * ```js * import { envField } from "astro/config" - * + * * envField.string({ * // context & access * optional: true, diff --git a/packages/astro/test/build-assets.test.js b/packages/astro/test/build-assets.test.js index 4507345da427..75abfd2f02fa 100644 --- a/packages/astro/test/build-assets.test.js +++ b/packages/astro/test/build-assets.test.js @@ -148,11 +148,13 @@ describe('build assets (server)', () => { assets: 'custom-assets', inlineStylesheets: 'never', }, - adapter: testAdapter({extendAdapter: { - adapterFeatures: { - forceServerOutput: false, - } - }}), + adapter: testAdapter({ + extendAdapter: { + adapterFeatures: { + forceServerOutput: false, + }, + }, + }), }); await fixture.build(); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc6a790465d9..ff3bdc3488ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,7 +116,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/blog: @@ -131,13 +131,13 @@ importers: specifier: ^3.1.6 version: link:../../packages/integrations/sitemap astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/container-with-vitest: @@ -146,7 +146,7 @@ importers: specifier: ^3.6.2 version: link:../../packages/integrations/react astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -177,7 +177,7 @@ importers: specifier: ^3.14.1 version: 3.14.1 astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/framework-multiple: @@ -204,7 +204,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -234,7 +234,7 @@ importers: specifier: ^1.3.0 version: 1.3.0(preact@10.23.2) astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -252,7 +252,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -267,7 +267,7 @@ importers: specifier: ^4.4.1 version: link:../../packages/integrations/solid astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro solid-js: specifier: ^1.8.22 @@ -279,7 +279,7 @@ importers: specifier: ^6.0.0-alpha.0 version: link:../../packages/integrations/svelte astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -291,7 +291,7 @@ importers: specifier: ^5.0.0-alpha.0 version: link:../../packages/integrations/vue astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro vue: specifier: ^3.4.38 @@ -303,13 +303,13 @@ importers: specifier: ^9.0.0-alpha.1 version: 9.0.0-alpha.1(astro@packages+astro) astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/middleware: @@ -318,7 +318,7 @@ importers: specifier: ^9.0.0-alpha.1 version: 9.0.0-alpha.1(astro@packages+astro) astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -331,19 +331,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/server-islands: @@ -370,7 +370,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro postcss: specifier: ^8.4.43 @@ -394,7 +394,7 @@ importers: specifier: ^6.0.0-alpha.0 version: link:../../packages/integrations/svelte astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -403,7 +403,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro sass: specifier: ^1.77.8 @@ -415,7 +415,7 @@ importers: examples/toolbar-app: devDependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/view-transitions: @@ -427,7 +427,7 @@ importers: specifier: ^6.0.0-alpha.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/with-markdoc: @@ -436,7 +436,7 @@ importers: specifier: ^1.0.0-alpha.1 version: link:../../packages/integrations/markdoc astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/with-markdown-plugins: @@ -445,7 +445,7 @@ importers: specifier: ^6.0.0-alpha.1 version: link:../../packages/markdown/remark astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -466,7 +466,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro examples/with-mdx: @@ -478,7 +478,7 @@ importers: specifier: ^3.5.2 version: link:../../packages/integrations/preact astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -493,7 +493,7 @@ importers: specifier: ^0.5.2 version: 0.5.2(nanostores@0.11.3)(preact@10.23.2) astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro nanostores: specifier: ^0.11.3 @@ -514,7 +514,7 @@ importers: specifier: ^1.6.4 version: 1.6.4 astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro autoprefixer: specifier: ^10.4.20 @@ -532,7 +532,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^5.0.0-alpha.4 + specifier: ^5.0.0-alpha.5 version: link:../../packages/astro vitest: specifier: ^2.0.5 From 50a0146e9aff78a245914125f34719cfb32c585f Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Mon, 9 Sep 2024 17:32:46 +0100 Subject: [PATCH 20/27] feat: allow arrays of patterns for glob loader (#11952) * feat: support pattern arrays with glob * feat: allow arrays of patterns for content layer * Apply suggestions from code review Co-authored-by: Sarah Rainsberger --------- Co-authored-by: Sarah Rainsberger --- .changeset/honest-dingos-add.md | 23 ++++++++ packages/astro/src/content/loaders/glob.ts | 26 +++++++--- packages/astro/test/content-layer.test.js | 7 +++ .../space}/columbia-copy.md | 0 .../space}/columbia.md | 0 .../space}/endeavour.md | 0 .../space}/enterprise.md | 0 .../space}/index.md | 0 .../space}/shuttle.jpg | Bin .../content-layer/src/content/config.ts | 49 ++++++++++++------ .../src/data/space-probes/cassini.md | 14 +++++ .../src/data/space-probes/curiosity-rover.md | 14 +++++ .../src/data/space-probes/juno.md | 14 +++++ .../src/data/space-probes/new-horizons.md | 14 +++++ .../src/data/space-probes/philae-lander.md | 14 +++++ .../src/data/space-probes/voyager-1.md | 14 +++++ .../src/data/space-probes/voyager-2.md | 16 ++++++ .../src/pages/collections.json.js | 5 +- 18 files changed, 185 insertions(+), 25 deletions(-) create mode 100644 .changeset/honest-dingos-add.md rename packages/astro/test/fixtures/content-layer/{content-outside-src => content/space}/columbia-copy.md (100%) rename packages/astro/test/fixtures/content-layer/{content-outside-src => content/space}/columbia.md (100%) rename packages/astro/test/fixtures/content-layer/{content-outside-src => content/space}/endeavour.md (100%) rename packages/astro/test/fixtures/content-layer/{content-outside-src => content/space}/enterprise.md (100%) rename packages/astro/test/fixtures/content-layer/{content-outside-src => content/space}/index.md (100%) rename packages/astro/test/fixtures/content-layer/{content-outside-src => content/space}/shuttle.jpg (100%) create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/cassini.md create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/curiosity-rover.md create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/juno.md create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/new-horizons.md create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/philae-lander.md create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-1.md create mode 100644 packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-2.md diff --git a/.changeset/honest-dingos-add.md b/.changeset/honest-dingos-add.md new file mode 100644 index 000000000000..c1eb73c9f035 --- /dev/null +++ b/.changeset/honest-dingos-add.md @@ -0,0 +1,23 @@ +--- +'astro': patch +--- + +Adds support for array patterns in the built-in `glob()` content collections loader + +The glob loader can now accept an array of multiple patterns as well as string patterns. This allows you to more easily combine multiple patterns into a single collection, and also means you can use negative matches to exclude files from the collection. + +```ts +const probes = defineCollection({ + // Load all markdown files in the space-probes directory, except for those that start with "voyager-" + loader: glob({ pattern: ['*.md', '!voyager-*'], base: 'src/data/space-probes' }), + schema: z.object({ + name: z.string(), + type: z.enum(['Space Probe', 'Mars Rover', 'Comet Lander']), + launch_date: z.date(), + status: z.enum(['Active', 'Inactive', 'Decommissioned']), + destination: z.string(), + operator: z.string(), + notable_discoveries: z.array(z.string()), + }), +}); +``` diff --git a/packages/astro/src/content/loaders/glob.ts b/packages/astro/src/content/loaders/glob.ts index 9c3475f34d2e..b47e63f20b7b 100644 --- a/packages/astro/src/content/loaders/glob.ts +++ b/packages/astro/src/content/loaders/glob.ts @@ -21,7 +21,7 @@ export interface GenerateIdOptions { export interface GlobOptions { /** The glob pattern to match files, relative to the base directory */ - pattern: string; + pattern: string | Array; /** The base directory to resolve the glob pattern from. Relative to the root directory, or an absolute file URL. Defaults to `.` */ base?: string | URL; /** @@ -44,17 +44,24 @@ function generateIdDefault({ entry, base, data }: GenerateIdOptions): string { return slug; } +function checkPrefix(pattern: string | Array, prefix: string) { + if (Array.isArray(pattern)) { + return pattern.some((p) => p.startsWith(prefix)); + } + return pattern.startsWith(prefix); +} + /** * Loads multiple entries, using a glob pattern to match files. * @param pattern A glob pattern to match files, relative to the content directory. */ export function glob(globOptions: GlobOptions): Loader { - if (globOptions.pattern.startsWith('../')) { + if (checkPrefix(globOptions.pattern, '../')) { throw new Error( 'Glob patterns cannot start with `../`. Set the `base` option to a parent directory instead.', ); } - if (globOptions.pattern.startsWith('/')) { + if (checkPrefix(globOptions.pattern, '/')) { throw new Error( 'Glob patterns cannot start with `/`. Set the `base` option to a parent directory or use a relative path instead.', ); @@ -229,13 +236,17 @@ export function glob(globOptions: GlobOptions): Loader { const skipCount = skippedFiles.length; if (skipCount > 0) { + const patternList = Array.isArray(globOptions.pattern) + ? globOptions.pattern.join(', ') + : globOptions.pattern; + logger.warn(`The glob() loader cannot be used for files in ${bold('src/content')}.`); if (skipCount > 10) { logger.warn( - `Skipped ${green(skippedFiles.length)} files that matched ${green(globOptions.pattern)}.`, + `Skipped ${green(skippedFiles.length)} files that matched ${green(patternList)}.`, ); } else { - logger.warn(`Skipped the following files that matched ${green(globOptions.pattern)}:`); + logger.warn(`Skipped the following files that matched ${green(patternList)}:`); skippedFiles.forEach((file) => logger.warn(`• ${green(file)}`)); } } @@ -247,9 +258,8 @@ export function glob(globOptions: GlobOptions): Loader { return; } - const matcher: RegExp = micromatch.makeRe(globOptions.pattern); - - const matchesGlob = (entry: string) => !entry.startsWith('../') && matcher.test(entry); + const matchesGlob = (entry: string) => + !entry.startsWith('../') && micromatch.isMatch(entry, globOptions.pattern); const basePath = fileURLToPath(baseDir); diff --git a/packages/astro/test/content-layer.test.js b/packages/astro/test/content-layer.test.js index d61d3045046e..2692c8913b87 100644 --- a/packages/astro/test/content-layer.test.js +++ b/packages/astro/test/content-layer.test.js @@ -83,6 +83,13 @@ describe('Content Layer', () => { ]); }); + it('handles negative matches in glob() loader', async () => { + assert.ok(json.hasOwnProperty('probes')); + assert.ok(Array.isArray(json.probes)); + assert.equal(json.probes.length, 5); + assert.equal(json.probes.at(-1).id, 'philae-lander', 'Voyager probes should not be included'); + }); + it('Returns data entry by id', async () => { assert.ok(json.hasOwnProperty('dataEntry')); assert.equal(json.dataEntry.filePath?.split(sep).join(posixSep), 'src/data/dogs.json'); diff --git a/packages/astro/test/fixtures/content-layer/content-outside-src/columbia-copy.md b/packages/astro/test/fixtures/content-layer/content/space/columbia-copy.md similarity index 100% rename from packages/astro/test/fixtures/content-layer/content-outside-src/columbia-copy.md rename to packages/astro/test/fixtures/content-layer/content/space/columbia-copy.md diff --git a/packages/astro/test/fixtures/content-layer/content-outside-src/columbia.md b/packages/astro/test/fixtures/content-layer/content/space/columbia.md similarity index 100% rename from packages/astro/test/fixtures/content-layer/content-outside-src/columbia.md rename to packages/astro/test/fixtures/content-layer/content/space/columbia.md diff --git a/packages/astro/test/fixtures/content-layer/content-outside-src/endeavour.md b/packages/astro/test/fixtures/content-layer/content/space/endeavour.md similarity index 100% rename from packages/astro/test/fixtures/content-layer/content-outside-src/endeavour.md rename to packages/astro/test/fixtures/content-layer/content/space/endeavour.md diff --git a/packages/astro/test/fixtures/content-layer/content-outside-src/enterprise.md b/packages/astro/test/fixtures/content-layer/content/space/enterprise.md similarity index 100% rename from packages/astro/test/fixtures/content-layer/content-outside-src/enterprise.md rename to packages/astro/test/fixtures/content-layer/content/space/enterprise.md diff --git a/packages/astro/test/fixtures/content-layer/content-outside-src/index.md b/packages/astro/test/fixtures/content-layer/content/space/index.md similarity index 100% rename from packages/astro/test/fixtures/content-layer/content-outside-src/index.md rename to packages/astro/test/fixtures/content-layer/content/space/index.md diff --git a/packages/astro/test/fixtures/content-layer/content-outside-src/shuttle.jpg b/packages/astro/test/fixtures/content-layer/content/space/shuttle.jpg similarity index 100% rename from packages/astro/test/fixtures/content-layer/content-outside-src/shuttle.jpg rename to packages/astro/test/fixtures/content-layer/content/space/shuttle.jpg diff --git a/packages/astro/test/fixtures/content-layer/src/content/config.ts b/packages/astro/test/fixtures/content-layer/src/content/config.ts index 8f06b4362909..a12a36e3092f 100644 --- a/packages/astro/test/fixtures/content-layer/src/content/config.ts +++ b/packages/astro/test/fixtures/content-layer/src/content/config.ts @@ -66,7 +66,7 @@ const cats = defineCollection({ }); // Absolute paths should also work -const absoluteRoot = new URL('../../content-outside-src', import.meta.url); +const absoluteRoot = new URL('../../content/space', import.meta.url); const spacecraft = defineCollection({ loader: glob({ pattern: '*.md', base: absoluteRoot }), @@ -78,10 +78,26 @@ const spacecraft = defineCollection({ tags: z.array(z.string()), heroImage: image().optional(), cat: reference('cats').optional(), - something: z.string().optional().transform(str => ({ type: 'test', content: str })) + something: z + .string() + .optional() + .transform((str) => ({ type: 'test', content: str })), }), }); +const probes = defineCollection({ + loader: glob({ pattern: ['*.md', '!voyager-*'], base: 'src/data/space-probes' }), + schema: z.object({ + name: z.string(), + type: z.enum(['Space Probe', 'Mars Rover', 'Comet Lander']), + launch_date: z.date(), + status: z.enum(['Active', 'Inactive', 'Decommissioned']), + destination: z.string(), + operator: z.string(), + notable_discoveries: z.array(z.string()), + }), +}); + const numbers = defineCollection({ loader: glob({ pattern: 'src/data/glob-data/*', base: '.' }), }); @@ -90,24 +106,25 @@ const images = defineCollection({ loader: () => [ { id: '1', - image: '@images/shuttle.jpg' + image: '@images/shuttle.jpg', }, { id: '2', - image: 'https://images.unsplash.com/photo-1457364887197-9150188c107b?w=800&fm=jpg&fit=crop' - } + image: 'https://images.unsplash.com/photo-1457364887197-9150188c107b?w=800&fm=jpg&fit=crop', + }, ], - schema: ({image}) => z.object({ - id: z.string(), - image: image() - }) + schema: ({ image }) => + z.object({ + id: z.string(), + image: image(), + }), }); const increment = defineCollection({ loader: { name: 'increment-loader', load: async ({ store }) => { - const entry = store.get<{lastValue: number}>('value'); + const entry = store.get<{ lastValue: number }>('value'); const lastValue = entry?.data.lastValue ?? 0; store.set({ id: 'value', @@ -118,12 +135,12 @@ const increment = defineCollection({ }); }, // Example of a loader that returns an async schema function - schema: async () => z.object({ - lastValue: z.number(), - lastUpdated: z.date(), - - }), + schema: async () => + z.object({ + lastValue: z.number(), + lastUpdated: z.date(), + }), }, }); -export const collections = { blog, dogs, cats, numbers, spacecraft, increment, images }; +export const collections = { blog, dogs, cats, numbers, spacecraft, increment, images, probes }; diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/cassini.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/cassini.md new file mode 100644 index 000000000000..cb4eee96d9d0 --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/cassini.md @@ -0,0 +1,14 @@ +--- +name: Cassini +type: Space Probe +launch_date: 1997-10-15 +status: Decommissioned +destination: Saturn +operator: NASA/ESA/ASI +notable_discoveries: + - Liquid methane seas on Titan + - Enceladus' subsurface ocean + - New Saturn rings and moons +--- + +The Cassini-Huygens mission was a collaboration between NASA, ESA, and ASI to study Saturn and its system. Launched in 1997, it arrived at Saturn in 2004 and operated until 2017. The mission dramatically improved our understanding of Saturn, its rings, and its moons, particularly Titan and Enceladus. diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/curiosity-rover.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/curiosity-rover.md new file mode 100644 index 000000000000..8a9e94f2615f --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/curiosity-rover.md @@ -0,0 +1,14 @@ +--- +name: Curiosity Rover +type: Mars Rover +launch_date: 2011-11-26 +status: Active +destination: Mars +operator: NASA +notable_discoveries: + - Evidence of ancient streambeds + - Organic molecules in rocks + - Methane fluctuations in atmosphere +--- + +The Curiosity rover, part of NASA's Mars Science Laboratory mission, landed on Mars in 2012. Its primary goal is to determine if Mars could have supported microbial life. The rover has made significant discoveries about Mars' geology and climate, and continues to explore the Gale crater. diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/juno.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/juno.md new file mode 100644 index 000000000000..4aeab957bba4 --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/juno.md @@ -0,0 +1,14 @@ +--- +name: Juno +type: Space Probe +launch_date: 2011-08-05 +status: Active +destination: Jupiter +operator: NASA +notable_discoveries: + - Jupiter's deep atmospheric dynamics + - Complex magnetic field structure + - Insights into Jupiter's core structure +--- + +Juno is a NASA space probe orbiting Jupiter. It was launched in 2011 and entered Jupiter's orbit in 2016. The spacecraft's mission is to measure Jupiter's composition, gravity field, magnetic field, and polar magnetosphere. Juno has provided new insights into Jupiter's interior structure and the processes that drive its intense magnetic fields and aurorae. diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/new-horizons.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/new-horizons.md new file mode 100644 index 000000000000..06bf23c9cd76 --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/new-horizons.md @@ -0,0 +1,14 @@ +--- +name: New Horizons +type: Space Probe +launch_date: 2006-01-19 +status: Active +destination: Pluto and Kuiper Belt +operator: NASA +notable_discoveries: + - Pluto's heart-shaped glacier + - Pluto's thin atmosphere + - Kuiper Belt Object Arrokoth's unusual shape +--- + +New Horizons is an interplanetary space probe launched as part of NASA's New Frontiers program. It performed the first flyby of Pluto in 2015, providing unprecedented data about the dwarf planet. After its Pluto mission, New Horizons continued into the Kuiper Belt, where it encountered the object Arrokoth in 2019, the most distant object in the Solar System visited by a spacecraft. diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/philae-lander.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/philae-lander.md new file mode 100644 index 000000000000..10a394239dbe --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/philae-lander.md @@ -0,0 +1,14 @@ +--- +name: Philae Lander +type: Comet Lander +launch_date: 2004-03-02 +status: Inactive +destination: Comet 67P/Churyumov-Gerasimenko +operator: ESA +notable_discoveries: + - Organic molecules on the comet's surface + - Comet's surface hardness + - Presence of water ice +--- + +Philae was a robotic European Space Agency lander that accompanied the Rosetta spacecraft. It achieved the first-ever soft landing on a comet nucleus when it touched down on comet 67P/Churyumov-Gerasimenko in November 2014. Despite its short operational life, Philae provided unique data about the comet's composition and structure. diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-1.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-1.md new file mode 100644 index 000000000000..7a7fa88c8e45 --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-1.md @@ -0,0 +1,14 @@ +--- +name: Voyager 1 +type: Space Probe +launch_date: 1977-09-05 +status: Active +destination: Interstellar space +operator: NASA +notable_discoveries: + - Jupiter's complex cloud structures + - Active volcanoes on Io + - Saturn's ring structure +--- + +Voyager 1 is NASA's farthest and fastest-traveling space probe. Launched in 1977, it has been operating for over 45 years and entered interstellar space in 2012. The probe has provided invaluable data about the outer planets and the boundary between the Sun's influence and interstellar space. diff --git a/packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-2.md b/packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-2.md new file mode 100644 index 000000000000..c5d405aa07b3 --- /dev/null +++ b/packages/astro/test/fixtures/content-layer/src/data/space-probes/voyager-2.md @@ -0,0 +1,16 @@ +--- +name: Voyager 2 +type: Space Probe +launch_date: 1977-08-20 +status: Active +destination: Interstellar space +operator: NASA +notable_discoveries: + - Neptune's Great Dark Spot + - Uranus' tilted magnetic field + - Active geysers on Neptune's moon Triton + - Jupiter's complex storm systems + - Saturn's intricate ring structure +--- + +Voyager 2 is a space probe launched by NASA as part of the Voyager program to study the outer Solar System and interstellar space. Despite being launched 16 days before Voyager 1, it's named Voyager 2 due to its slower trajectory. It's the only spacecraft to have visited all four gas giant planets: Jupiter, Saturn, Uranus, and Neptune. After completing its planetary mission, Voyager 2 continued on to study the outer reaches of the Solar System and entered interstellar space in 2018, becoming the second human-made object to do so after Voyager 1. diff --git a/packages/astro/test/fixtures/content-layer/src/pages/collections.json.js b/packages/astro/test/fixtures/content-layer/src/pages/collections.json.js index 87c8cc052680..572998b4fd99 100644 --- a/packages/astro/test/fixtures/content-layer/src/pages/collections.json.js +++ b/packages/astro/test/fixtures/content-layer/src/pages/collections.json.js @@ -17,6 +17,8 @@ export async function GET() { const increment = await getEntry('increment', 'value'); const images = await getCollection('images'); + + const probes = await getCollection('probes'); return new Response( devalue.stringify({ customLoader, @@ -26,7 +28,8 @@ export async function GET() { entryWithReference, referencedEntry, increment, - images + images, + probes }) ); } From d7e950f35f9138b7a19754b6a0a5f73e810c22e5 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:18:32 +0200 Subject: [PATCH 21/27] feat(hybrid): Clean logging and misc tweaks for hybrid removal (#11942) * feat(hybrid): Properly warn on every feature when used in wrong contexts * fix: smoke tests * fix: tests --- .../e2e/custom-client-directives.test.js | 2 +- packages/astro/src/core/build/generate.ts | 3 +- packages/astro/src/core/build/index.ts | 6 ++- packages/astro/src/core/build/static-build.ts | 5 +- .../astro/src/core/dev/adapter-validation.ts | 50 +++++++++++++++++++ packages/astro/src/core/dev/container.ts | 6 ++- packages/astro/src/core/errors/errors-data.ts | 24 +++++++-- packages/astro/src/core/preview/index.ts | 2 +- packages/astro/src/core/render-context.ts | 18 +++---- packages/astro/src/core/request.ts | 17 ++++--- .../astro/src/core/routing/manifest/create.ts | 42 ++++------------ .../src/core/routing/manifest/prerender.ts | 29 +++++++++++ packages/astro/src/core/sync/index.ts | 2 +- .../src/integrations/features-validation.ts | 7 +++ packages/astro/src/integrations/hooks.ts | 11 ++-- .../astro/src/types/public/integrations.ts | 6 +-- .../src/vite-plugin-astro-server/plugin.ts | 2 + .../src/vite-plugin-astro-server/route.ts | 2 +- .../astro/src/vite-plugin-scanner/index.ts | 30 +++++++++++ packages/astro/test/build-assets.test.js | 4 +- packages/astro/test/static-build.test.js | 2 +- packages/astro/test/test-adapter.js | 2 +- 22 files changed, 194 insertions(+), 78 deletions(-) create mode 100644 packages/astro/src/core/dev/adapter-validation.ts create mode 100644 packages/astro/src/core/routing/manifest/prerender.ts diff --git a/packages/astro/e2e/custom-client-directives.test.js b/packages/astro/e2e/custom-client-directives.test.js index e0787109ef83..2766ff205de6 100644 --- a/packages/astro/e2e/custom-client-directives.test.js +++ b/packages/astro/e2e/custom-client-directives.test.js @@ -43,7 +43,7 @@ test.describe('Custom Client Directives - build server', () => { adapter: testAdapter({ extendAdapter: { adapterFeatures: { - forceServerOutput: false, + buildOutput: 'static', }, }, }), diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index fc96184c09b6..d59e9966e99f 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -80,7 +80,6 @@ export async function generatePages(options: StaticBuildOptions, internals: Buil // If we don't delete it here, it's technically not impossible (albeit improbable) for it to leak if (ssr && !hasPrerenderedPages(internals)) { delete globalThis?.astroAsset?.addStaticImage; - return; } const verb = ssr ? 'prerendering' : 'generating'; @@ -417,7 +416,7 @@ async function generatePath( url, headers: new Headers(), logger, - staticLike: true, + isPrerendered: true, }); const renderContext = RenderContext.create({ pipeline, pathname, request, routeData: route }); diff --git a/packages/astro/src/core/build/index.ts b/packages/astro/src/core/build/index.ts index 2cc37f5fd2c5..e93bb36eae88 100644 --- a/packages/astro/src/core/build/index.ts +++ b/packages/astro/src/core/build/index.ts @@ -125,7 +125,10 @@ class AstroBuilder { injectImageEndpoint(this.settings, this.manifest, 'build'); } + await runHookConfigDone({ settings: this.settings, logger: logger, command: 'build' }); + // If we're building for the server, we need to ensure that an adapter is installed. + // If the adapter installed does not support a server output, an error will be thrown when the adapter is added, so no need to check here. if (!this.settings.config.adapter && this.settings.buildOutput === 'server') { throw new AstroError(AstroErrorData.NoAdapterInstalled); } @@ -147,7 +150,6 @@ class AstroBuilder { manifest: this.manifest, }, ); - await runHookConfigDone({ settings: this.settings, logger: logger }); const { syncInternal } = await import('../sync/index.js'); await syncInternal({ @@ -239,7 +241,7 @@ class AstroBuilder { logger: this.logger, timeStart: this.timer.init, pageCount: pageNames.length, - buildMode: this.settings.config.output, + buildMode: this.settings.buildOutput!, // buildOutput is always set at this point }); } } diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts index 3fffe9626424..20daa6e7b85e 100644 --- a/packages/astro/src/core/build/static-build.ts +++ b/packages/astro/src/core/build/static-build.ts @@ -3,7 +3,7 @@ import path from 'node:path'; import { fileURLToPath, pathToFileURL } from 'node:url'; import { teardown } from '@astrojs/compiler'; import glob from 'fast-glob'; -import { bgGreen, bgMagenta, black, green } from 'kleur/colors'; +import { bgGreen, black, green } from 'kleur/colors'; import * as vite from 'vite'; import { PROPAGATED_ASSET_FLAG } from '../../content/consts.js'; import { @@ -150,12 +150,11 @@ export async function staticBuild( settings.timer.start('Server generate'); await generatePages(opts, internals); await cleanStaticOutput(opts, internals); - opts.logger.info(null, `\n${bgMagenta(black(' finalizing server assets '))}\n`); await ssrMoveAssets(opts); settings.timer.end('Server generate'); return; } - default: // `settings.buildOutput` will always be one of the above, but TS doesn't know that + default: // `settings.buildOutput` will always be one of the above at this point, but TS doesn't know that return; } } diff --git a/packages/astro/src/core/dev/adapter-validation.ts b/packages/astro/src/core/dev/adapter-validation.ts new file mode 100644 index 000000000000..43471d24870c --- /dev/null +++ b/packages/astro/src/core/dev/adapter-validation.ts @@ -0,0 +1,50 @@ +import { getAdapterStaticRecommendation } from '../../integrations/features-validation.js'; +import type { AstroSettings } from '../../types/astro.js'; +import type { AstroAdapter } from '../../types/public/integrations.js'; +import { AstroError, AstroErrorData } from '../errors/index.js'; +import type { Logger } from '../logger/core.js'; + +let hasWarnedMissingAdapter = false; + +export function warnMissingAdapter(logger: Logger, settings: AstroSettings) { + if (hasWarnedMissingAdapter) return; + if (settings.buildOutput === 'server' && !settings.config.adapter) { + logger.warn( + 'config', + 'This project contains server-rendered routes, but no adapter is installed. This is fine for development, but an adapter will be required to build your site for production.', + ); + hasWarnedMissingAdapter = true; + } +} + +export function validateSetAdapter( + logger: Logger, + settings: AstroSettings, + adapter: AstroAdapter, + maybeConflictingIntegration: string, + command?: 'dev' | 'build' | string, +) { + if (settings.adapter && settings.adapter.name !== adapter.name) { + throw new Error( + `Integration "${maybeConflictingIntegration}" conflicts with "${settings.adapter.name}". You can only configure one deployment integration.`, + ); + } + + if (settings.buildOutput === 'server' && adapter.adapterFeatures?.buildOutput === 'static') { + // If the adapter is not compatible with the build output, throw an error + if (command === 'build') { + const adapterRecommendation = getAdapterStaticRecommendation(adapter.name); + + throw new AstroError({ + ...AstroErrorData.AdapterSupportOutputMismatch, + message: AstroErrorData.AdapterSupportOutputMismatch.message(adapter.name), + hint: adapterRecommendation ? adapterRecommendation : undefined, + }); + } else if (command === 'dev') { + logger.warn( + null, + `The adapter ${adapter.name} does not support emitting a server output, but the project contain server-rendered pages. Your project will not build correctly.`, + ); + } + } +} diff --git a/packages/astro/src/core/dev/container.ts b/packages/astro/src/core/dev/container.ts index 1fea20620b0a..c1c13e0c70ab 100644 --- a/packages/astro/src/core/dev/container.ts +++ b/packages/astro/src/core/dev/container.ts @@ -18,6 +18,7 @@ import { apply as applyPolyfill } from '../polyfill.js'; import { injectDefaultDevRoutes } from '../routing/dev-default.js'; import { createRouteManifest } from '../routing/index.js'; import { syncInternal } from '../sync/index.js'; +import { warnMissingAdapter } from './adapter-validation.js'; export interface Container { fs: typeof nodeFs; @@ -87,6 +88,10 @@ export async function createContainer({ manifest = injectDefaultDevRoutes(settings, devSSRManifest, manifest); + await runHookConfigDone({ settings, logger, command: 'dev' }); + + warnMissingAdapter(logger, settings); + const viteConfig = await createVite( { mode: 'development', @@ -107,7 +112,6 @@ export async function createContainer({ }, ); - await runHookConfigDone({ settings, logger }); await syncInternal({ settings, logger, diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index 8c972a5fd81a..cc8b1023c9b5 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -73,10 +73,8 @@ export const PrerenderClientAddressNotAvailable = { */ export const StaticClientAddressNotAvailable = { name: 'StaticClientAddressNotAvailable', - title: '`Astro.clientAddress` is not available in static mode.', - // TODO: Update this for the new static mode? I'm not sure this error can even still happen. - message: - "`Astro.clientAddress` is only available when using `output: 'server'` or `output: 'hybrid'`. Update your Astro config if you need SSR features.", + title: '`Astro.clientAddress` is not available in prerendered pages.', + message: '`Astro.clientAddress` is only available on pages that are server-rendered.', hint: 'See https://docs.astro.build/en/guides/server-side-rendering/ for more information on how to enable SSR.', } satisfies ErrorData; /** @@ -396,6 +394,24 @@ export const NoAdapterInstalled = { message: `Cannot use server-rendered pages without an adapter. Please install and configure the appropriate server adapter for your final deployment.`, hint: 'See https://docs.astro.build/en/guides/server-side-rendering/ for more information.', } satisfies ErrorData; + +/** + * @docs + * @see + * - [Server-side Rendering](https://docs.astro.build/en/guides/server-side-rendering/) + * @description + * The currently configured adapter does not support server-side rendering, which is required for the current project setup. + * + * Depending on your adapter, there may be a different entrypoint to use for server-side rendering. For example, the `@astrojs/vercel` adapter has a `@astrojs/vercel/static` entrypoint for static rendering, and a `@astrojs/vercel/serverless` entrypoint for server-side rendering. + * + */ +export const AdapterSupportOutputMismatch = { + name: 'AdapterSupportOutputMismatch', + title: 'Adapter does not support server output.', + message: (adapterName: string) => + `The \`${adapterName}\` adapter is configured to output a static website, but the project contains server-rendered pages. Please install and configure the appropriate server adapter for your final deployment.`, +} satisfies ErrorData; + /** * @docs * @description diff --git a/packages/astro/src/core/preview/index.ts b/packages/astro/src/core/preview/index.ts index 88338c606353..4d1aaba98906 100644 --- a/packages/astro/src/core/preview/index.ts +++ b/packages/astro/src/core/preview/index.ts @@ -40,7 +40,7 @@ export default async function preview(inlineConfig: AstroInlineConfig): Promise< // Create a route manifest so we can know if the build output is a static site or not await createRouteManifest({ settings: settings, cwd: inlineConfig.root }, logger); - await runHookConfigDone({ settings: settings, logger: logger }); + await runHookConfigDone({ settings: settings, logger: logger, command: 'preview' }); if (settings.buildOutput === 'static') { if (!fs.existsSync(settings.config.outDir)) { diff --git a/packages/astro/src/core/render-context.ts b/packages/astro/src/core/render-context.ts index 1e353394362d..7ef7a0767d94 100644 --- a/packages/astro/src/core/render-context.ts +++ b/packages/astro/src/core/render-context.ts @@ -480,17 +480,15 @@ export class RenderContext { return Reflect.get(request, clientAddressSymbol) as string; } - if (pipeline.serverLike) { - if (request.body === null) { - throw new AstroError(AstroErrorData.PrerenderClientAddressNotAvailable); - } + if (request.body === null) { + throw new AstroError(AstroErrorData.PrerenderClientAddressNotAvailable); + } - if (pipeline.adapterName) { - throw new AstroError({ - ...AstroErrorData.ClientAddressNotAvailable, - message: AstroErrorData.ClientAddressNotAvailable.message(pipeline.adapterName), - }); - } + if (pipeline.adapterName) { + throw new AstroError({ + ...AstroErrorData.ClientAddressNotAvailable, + message: AstroErrorData.ClientAddressNotAvailable.message(pipeline.adapterName), + }); } throw new AstroError(AstroErrorData.StaticClientAddressNotAvailable); diff --git a/packages/astro/src/core/request.ts b/packages/astro/src/core/request.ts index 9b2dc07ca0fe..78d2979b5f90 100644 --- a/packages/astro/src/core/request.ts +++ b/packages/astro/src/core/request.ts @@ -20,7 +20,7 @@ export interface CreateRequestOptions { * * @default false */ - staticLike?: boolean; + isPrerendered?: boolean; } const clientAddressSymbol = Symbol.for('astro.clientAddress'); @@ -41,10 +41,10 @@ export function createRequest({ body = undefined, logger, locals, - staticLike = false, + isPrerendered = false, }: CreateRequestOptions): Request { // headers are made available on the created request only if the request is for a page that will be on-demand rendered - const headersObj = staticLike + const headersObj = isPrerendered ? undefined : headers instanceof Headers ? headers @@ -58,7 +58,8 @@ export function createRequest({ if (typeof url === 'string') url = new URL(url); - if (staticLike) { + // Remove search parameters if the request is for a page that will be on-demand rendered + if (isPrerendered) { url.search = ''; } @@ -66,11 +67,11 @@ export function createRequest({ method: method, headers: headersObj, // body is made available only if the request is for a page that will be on-demand rendered - body: staticLike ? null : body, + body: isPrerendered ? null : body, }); - if (staticLike) { - // Warn when accessing headers in SSG mode + if (isPrerendered) { + // Warn when accessing headers in prerendered pages const _headers = request.headers; const headersDesc = Object.getOwnPropertyDescriptor(request, 'headers') || {}; Object.defineProperty(request, 'headers', { @@ -78,7 +79,7 @@ export function createRequest({ get() { logger.warn( null, - `\`Astro.request.headers\` is unavailable in "static" output mode, and in prerendered pages within "hybrid" and "server" output modes. If you need access to request headers, make sure that \`output\` is configured as either \`"server"\` or \`output: "hybrid"\` in your config file, and that the page accessing the headers is rendered on-demand.`, + `\`Astro.request.headers\` is not available on prerendered pages. If you need access to request headers, make sure that the page is server rendered using \`export const prerender = false;\` or by setting \`output\` to \`"server"\` in your Astro config to make all your pages server rendered.`, ); return _headers; }, diff --git a/packages/astro/src/core/routing/manifest/create.ts b/packages/astro/src/core/routing/manifest/create.ts index e22eb8de1189..834c37efe226 100644 --- a/packages/astro/src/core/routing/manifest/create.ts +++ b/packages/astro/src/core/routing/manifest/create.ts @@ -8,7 +8,6 @@ import { fileURLToPath } from 'node:url'; import { bold } from 'kleur/colors'; import pLimit from 'p-limit'; import { toRoutingStrategy } from '../../../i18n/utils.js'; -import { runHookRouteSetup } from '../../../integrations/hooks.js'; import { getPrerenderDefault } from '../../../prerender/utils.js'; import type { AstroConfig } from '../../../types/public/config.js'; import type { RouteData, RoutePart } from '../../../types/public/internal.js'; @@ -20,6 +19,7 @@ import { resolvePages } from '../../util.js'; import { routeComparator } from '../priority.js'; import { getRouteGenerator } from './generator.js'; import { getPattern } from './pattern.js'; +import { getRoutePrerenderOption } from './prerender.js'; const require = createRequire(import.meta.url); interface Item { @@ -506,7 +506,16 @@ export async function createRouteManifest( let promises = []; for (const route of routes) { promises.push( - limit(async () => await getRoutePrerenderOption(route, settings, params.fsMod, logger)), + limit(async () => { + if (route.type !== 'page' && route.type !== 'endpoint') return; + const localFs = params.fsMod ?? nodeFs; + const content = await localFs.promises.readFile( + fileURLToPath(new URL(route.component, settings.config.root)), + 'utf-8', + ); + + await getRoutePrerenderOption(content, route, settings, logger); + }), ); } await Promise.all(promises); @@ -714,35 +723,6 @@ export async function createRouteManifest( }; } -async function getRoutePrerenderOption( - route: RouteData, - settings: AstroSettings, - fsMod: typeof nodeFs | undefined, - logger: Logger, -) { - if (route.type !== 'page' && route.type !== 'endpoint') return; - const localFs = fsMod ?? nodeFs; - const content = await localFs.promises.readFile( - fileURLToPath(new URL(route.component, settings.config.root)), - 'utf-8', - ); - - // Check if the route is pre-rendered or not - const match = /^\s*export\s+const\s+prerender\s*=\s*(true|false);?/m.exec(content); - if (match) { - route.prerender = match[1] === 'true'; - } - - await runHookRouteSetup({ route, settings, logger }); - - // If not explicitly set, default to the global setting - if (typeof route.prerender === undefined) { - route.prerender = getPrerenderDefault(settings.config); - } - - if (!route.prerender) settings.buildOutput = 'server'; -} - export function resolveInjectedRoute(entrypoint: string, root: URL, cwd?: string) { let resolved; try { diff --git a/packages/astro/src/core/routing/manifest/prerender.ts b/packages/astro/src/core/routing/manifest/prerender.ts new file mode 100644 index 000000000000..98321d18c608 --- /dev/null +++ b/packages/astro/src/core/routing/manifest/prerender.ts @@ -0,0 +1,29 @@ +import { runHookRouteSetup } from '../../../integrations/hooks.js'; +import { getPrerenderDefault } from '../../../prerender/utils.js'; +import type { AstroSettings } from '../../../types/astro.js'; +import type { RouteData } from '../../../types/public/internal.js'; +import type { Logger } from '../../logger/core.js'; + +const PRERENDER_REGEX = /^\s*export\s+const\s+prerender\s*=\s*(true|false);?/m; + +export async function getRoutePrerenderOption( + content: string, + route: RouteData, + settings: AstroSettings, + logger: Logger, +) { + // Check if the route is pre-rendered or not + const match = PRERENDER_REGEX.exec(content); + if (match) { + route.prerender = match[1] === 'true'; + } + + await runHookRouteSetup({ route, settings, logger }); + + // If not explicitly set, default to the global setting + if (typeof route.prerender === undefined) { + route.prerender = getPrerenderDefault(settings.config); + } + + if (!route.prerender) settings.buildOutput = 'server'; +} diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index 436598dce477..f50bea9d062b 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -66,7 +66,7 @@ export default async function sync( logger, }); const manifest = await createRouteManifest({ settings, fsMod: fs }, logger); - await runHookConfigDone({ settings, logger }); + await runHookConfigDone({ settings, logger, command: 'sync' }); return await syncInternal({ settings, logger, fs, force: inlineConfig.force, manifest }); } diff --git a/packages/astro/src/integrations/features-validation.ts b/packages/astro/src/integrations/features-validation.ts index 0d4d081c4e90..77db47e0a2ed 100644 --- a/packages/astro/src/integrations/features-validation.ts +++ b/packages/astro/src/integrations/features-validation.ts @@ -157,3 +157,10 @@ function validateAssetsFeature( return validateSupportKind(supportKind, adapterName, logger, 'assets', () => true); } + +export function getAdapterStaticRecommendation(adapterName: string): string | undefined { + return { + '@astrojs/vercel/static': + 'Update your configuration to use `@astrojs/vercel/serverless` to unlock server-side rendering capabilities.', + }[adapterName]; +} diff --git a/packages/astro/src/integrations/hooks.ts b/packages/astro/src/integrations/hooks.ts index e8828fac9c8b..0c40e60cdb96 100644 --- a/packages/astro/src/integrations/hooks.ts +++ b/packages/astro/src/integrations/hooks.ts @@ -12,6 +12,7 @@ import type { SerializedSSRManifest } from '../core/app/types.js'; import type { PageBuildData } from '../core/build/types.js'; import { buildClientDirectiveEntrypoint } from '../core/client-directive/index.js'; import { mergeConfig } from '../core/config/index.js'; +import { validateSetAdapter } from '../core/dev/adapter-validation.js'; import type { AstroIntegrationLogger, Logger } from '../core/logger/core.js'; import type { AstroSettings } from '../types/astro.js'; import type { AstroConfig } from '../types/public/config.js'; @@ -296,9 +297,11 @@ export async function runHookConfigSetup({ export async function runHookConfigDone({ settings, logger, + command, }: { settings: AstroSettings; logger: Logger; + command?: 'dev' | 'build' | 'preview' | 'sync'; }) { for (const integration of settings.config.integrations) { if (integration?.hooks?.['astro:config:done']) { @@ -308,13 +311,9 @@ export async function runHookConfigDone({ hookResult: integration.hooks['astro:config:done']({ config: settings.config, setAdapter(adapter) { - if (settings.adapter && settings.adapter.name !== adapter.name) { - throw new Error( - `Integration "${integration.name}" conflicts with "${settings.adapter.name}". You can only configure one deployment integration.`, - ); - } + validateSetAdapter(logger, settings, adapter, integration.name, command); - if (adapter.adapterFeatures?.forceServerOutput) { + if (adapter.adapterFeatures?.buildOutput !== 'static') { settings.buildOutput = 'server'; } diff --git a/packages/astro/src/types/public/integrations.ts b/packages/astro/src/types/public/integrations.ts index eaa84f27978a..0836bdc9e9bb 100644 --- a/packages/astro/src/types/public/integrations.ts +++ b/packages/astro/src/types/public/integrations.ts @@ -64,13 +64,13 @@ export type AdapterSupportsKind = 'unsupported' | 'stable' | 'experimental' | 'd export interface AstroAdapterFeatures { /** - * Creates an edge function that will communiate with the Astro middleware + * Creates an edge function that will communicate with the Astro middleware */ edgeMiddleware: boolean; /** - * Force Astro to output a server output, even if all the pages are prerendered + * Determine the type of build output the adapter is intended for. Defaults to `server`; */ - forceServerOutput?: boolean; + buildOutput?: 'static' | 'server'; } export interface AstroAdapter { diff --git a/packages/astro/src/vite-plugin-astro-server/plugin.ts b/packages/astro/src/vite-plugin-astro-server/plugin.ts index 20020559e8f5..ff67f487a650 100644 --- a/packages/astro/src/vite-plugin-astro-server/plugin.ts +++ b/packages/astro/src/vite-plugin-astro-server/plugin.ts @@ -3,6 +3,7 @@ import type fs from 'node:fs'; import { IncomingMessage } from 'node:http'; import type * as vite from 'vite'; import type { SSRManifest, SSRManifestI18n } from '../core/app/types.js'; +import { warnMissingAdapter } from '../core/dev/adapter-validation.js'; import { createKey } from '../core/encryption.js'; import { getViteErrorPayload } from '../core/errors/dev/index.js'; import { AstroError, AstroErrorData } from '../core/errors/index.js'; @@ -57,6 +58,7 @@ export default function createVitePluginAstroServer({ devSSRManifest, await createRouteManifest({ settings, fsMod }, logger), // TODO: Handle partial updates to the manifest ); + warnMissingAdapter(logger, settings); pipeline.setManifestData(routeManifest); } } diff --git a/packages/astro/src/vite-plugin-astro-server/route.ts b/packages/astro/src/vite-plugin-astro-server/route.ts index 5fb3c326594c..2bf5a31e491e 100644 --- a/packages/astro/src/vite-plugin-astro-server/route.ts +++ b/packages/astro/src/vite-plugin-astro-server/route.ts @@ -175,7 +175,7 @@ export async function handleRoute({ body, logger, clientAddress: incomingRequest.socket.remoteAddress, - staticLike: route.prerender, + isPrerendered: route.prerender, }); // Set user specified headers to response object. diff --git a/packages/astro/src/vite-plugin-scanner/index.ts b/packages/astro/src/vite-plugin-scanner/index.ts index b53decd2d6f2..44d56270ad97 100644 --- a/packages/astro/src/vite-plugin-scanner/index.ts +++ b/packages/astro/src/vite-plugin-scanner/index.ts @@ -3,7 +3,9 @@ import { fileURLToPath } from 'node:url'; import { bold } from 'kleur/colors'; import type { Plugin as VitePlugin } from 'vite'; import { normalizePath } from 'vite'; +import { warnMissingAdapter } from '../core/dev/adapter-validation.js'; import type { Logger } from '../core/logger/core.js'; +import { getRoutePrerenderOption } from '../core/routing/manifest/prerender.js'; import { isEndpoint, isPage } from '../core/util.js'; import { rootRelativePath } from '../core/viteUtils.js'; import type { AstroSettings, ManifestData } from '../types/astro.js'; @@ -80,5 +82,33 @@ export default function astroScannerPlugin({ }, }; }, + + // Handle hot updates to update the prerender option + async handleHotUpdate(ctx) { + const filename = normalizePath(ctx.file); + let fileURL: URL; + try { + fileURL = new URL(`file://${filename}`); + } catch { + // If we can't construct a valid URL, exit early + return; + } + + const fileIsPage = isPage(fileURL, settings); + const fileIsEndpoint = isEndpoint(fileURL, settings); + if (!(fileIsPage || fileIsEndpoint)) return; + + const route = manifest.routes.find((r) => { + const filePath = new URL(`./${r.component}`, settings.config.root); + return normalizePath(fileURLToPath(filePath)) === filename; + }); + + if (!route) { + return; + } + + await getRoutePrerenderOption(await ctx.read(), route, settings, logger); + warnMissingAdapter(logger, settings); + }, }; } diff --git a/packages/astro/test/build-assets.test.js b/packages/astro/test/build-assets.test.js index 75abfd2f02fa..63849e6118e0 100644 --- a/packages/astro/test/build-assets.test.js +++ b/packages/astro/test/build-assets.test.js @@ -99,7 +99,7 @@ describe('build assets (server)', () => { fixture = await loadFixture({ root: './fixtures/build-assets/', integrations: [preact()], - adapter: testAdapter({ extendAdapter: { adapterFeatures: { forceServerOutput: false } } }), + adapter: testAdapter({ extendAdapter: { adapterFeatures: { buildOutput: 'static' } } }), // test suite was authored when inlineStylesheets defaulted to never build: { inlineStylesheets: 'never' }, }); @@ -151,7 +151,7 @@ describe('build assets (server)', () => { adapter: testAdapter({ extendAdapter: { adapterFeatures: { - forceServerOutput: false, + buildOutput: 'static', }, }, }), diff --git a/packages/astro/test/static-build.test.js b/packages/astro/test/static-build.test.js index c16563ac83f7..544b5b31503b 100644 --- a/packages/astro/test/static-build.test.js +++ b/packages/astro/test/static-build.test.js @@ -186,7 +186,7 @@ describe('Static build', () => { it('warns when accessing headers', async () => { let found = false; for (const log of logs) { - if (/`Astro\.request\.headers` is unavailable in "static" output mode/.test(log.message)) { + if (/`Astro\.request\.headers` is not available on prerendered pages./.test(log.message)) { found = true; } } diff --git a/packages/astro/test/test-adapter.js b/packages/astro/test/test-adapter.js index fc39237199d9..b8655a9d6458 100644 --- a/packages/astro/test/test-adapter.js +++ b/packages/astro/test/test-adapter.js @@ -114,7 +114,7 @@ export default function ({ i18nDomains: 'stable', }, adapterFeatures: { - forceServerOutput: true, + buildOutput: 'server', }, ...extendAdapter, }); From 8329d17968ada1ac966121da607e3351af924af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 10 Sep 2024 12:11:57 +0900 Subject: [PATCH 22/27] fix(css): fix inline query injection for CSS inlining (#11917) --- .../astro/src/vite-plugin-astro-server/css.ts | 19 ++++++++++--------- packages/astro/test/0-css.test.js | 9 ++------- .../0-css/src/components/VueModules.vue | 4 ++-- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/packages/astro/src/vite-plugin-astro-server/css.ts b/packages/astro/src/vite-plugin-astro-server/css.ts index c2dd5f6d7a6b..9a4133f3d1bf 100644 --- a/packages/astro/src/vite-plugin-astro-server/css.ts +++ b/packages/astro/src/vite-plugin-astro-server/css.ts @@ -9,6 +9,8 @@ interface ImportedStyle { content: string; } +const inlineQueryRE = /(?:\?|&)inline(?:$|&)/ + /** Given a filePath URL, crawl Vite’s module graph to find all style imports. */ export async function getStylesForURL( filePath: URL, @@ -32,21 +34,20 @@ export async function getStylesForURL( } // Else try to load it else { - const url = new URL(importedModule.url, 'http://localhost'); + let modId = importedModule.url // Mark url with ?inline so Vite will return the CSS as plain string, even for CSS modules - url.searchParams.set('inline', ''); - const modId = `${decodeURI(url.pathname)}${url.search}`; - + if (!inlineQueryRE.test(importedModule.url)) { + if (importedModule.url.includes('?')) { + modId = importedModule.url.replace('?', '?inline&'); + } else { + modId += '?inline'; + } + } try { // The SSR module is possibly not loaded. Load it if it's null. const ssrModule = await loader.import(modId); css = ssrModule.default; } catch { - // Some CSS modules, e.g. from Vue files, may not work with the ?inline query. - // If so, we fallback to a url instead - if (modId.includes('.module.')) { - importedCssUrls.add(importedModule.url); - } // The module may not be inline-able, e.g. SCSS partials. Skip it as it may already // be inlined into other modules if it happens to be in the graph. continue; diff --git a/packages/astro/test/0-css.test.js b/packages/astro/test/0-css.test.js index 6c2ee0966cdc..a582f9e7196d 100644 --- a/packages/astro/test/0-css.test.js +++ b/packages/astro/test/0-css.test.js @@ -225,7 +225,7 @@ describe('CSS', function () { it(' From 1c64ae304d3c008a776e98e48fd3ece8be7b1fb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Tue, 10 Sep 2024 03:12:50 +0000 Subject: [PATCH 23/27] [ci] format --- packages/astro/src/vite-plugin-astro-server/css.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/astro/src/vite-plugin-astro-server/css.ts b/packages/astro/src/vite-plugin-astro-server/css.ts index 9a4133f3d1bf..af147048a0b9 100644 --- a/packages/astro/src/vite-plugin-astro-server/css.ts +++ b/packages/astro/src/vite-plugin-astro-server/css.ts @@ -9,7 +9,7 @@ interface ImportedStyle { content: string; } -const inlineQueryRE = /(?:\?|&)inline(?:$|&)/ +const inlineQueryRE = /(?:\?|&)inline(?:$|&)/; /** Given a filePath URL, crawl Vite’s module graph to find all style imports. */ export async function getStylesForURL( @@ -34,7 +34,7 @@ export async function getStylesForURL( } // Else try to load it else { - let modId = importedModule.url + let modId = importedModule.url; // Mark url with ?inline so Vite will return the CSS as plain string, even for CSS modules if (!inlineQueryRE.test(importedModule.url)) { if (importedModule.url.includes('?')) { From b6a5f39846581d0e9cfd7ae6f056c8d1209f71bd Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Tue, 10 Sep 2024 11:14:03 +0200 Subject: [PATCH 24/27] feat: changesets for the hybrid removal (#11941) * feat: changesets for the hybrid removal * Update .changeset/afraid-apricots-buy.md Co-authored-by: Sarah Rainsberger * Apply suggestions from code review Co-authored-by: Sarah Rainsberger --------- Co-authored-by: Sarah Rainsberger --- .changeset/afraid-apricots-buy.md | 20 ++++++++++++++++++++ .changeset/giant-rocks-thank.md | 21 +++++++++++++++++++++ .changeset/poor-dots-add.md | 7 +++++++ 3 files changed, 48 insertions(+) create mode 100644 .changeset/afraid-apricots-buy.md create mode 100644 .changeset/giant-rocks-thank.md create mode 100644 .changeset/poor-dots-add.md diff --git a/.changeset/afraid-apricots-buy.md b/.changeset/afraid-apricots-buy.md new file mode 100644 index 000000000000..8be7e9db8110 --- /dev/null +++ b/.changeset/afraid-apricots-buy.md @@ -0,0 +1,20 @@ +--- +'astro': minor +--- + +Adapters can now specify the build output type they're intended for using the `adapterFeatures.buildOutput` property. This property can be used to always generate a server output, even if the project doesn't have any server-rendered pages. + +```ts +{ + 'astro:config:done': ({ setAdapter, config }) => { + setAdapter({ + name: 'my-adapter', + adapterFeatures: { + buildOutput: 'server', + }, + }); + }, +} +``` + +If your adapter specifies `buildOutput: 'static'`, and the user's project contains server-rendered pages, Astro will warn in development and error at build time. Note that a hybrid output, containing both static and server-rendered pages, is considered to be a `server` output, as a server is required to serve the server-rendered pages. diff --git a/.changeset/giant-rocks-thank.md b/.changeset/giant-rocks-thank.md new file mode 100644 index 000000000000..920933351aa7 --- /dev/null +++ b/.changeset/giant-rocks-thank.md @@ -0,0 +1,21 @@ +--- +'astro': major +--- + +Merges the `output: 'hybrid'` and `output: 'static'` configurations into one single configuration (now called `'static'`) that works the same way as the previous `hybrid` option. + +It is no longer necessary to specify `output: 'hybrid'` in your Astro config to use server-rendered pages. The new `output: 'static'` has this capability included. Astro will now automatically provide the ability to opt out of prerendering in your static site with no change to your `output` configuration required. Any page route or endpoint can include `export const prerender = false` to be server-rendered, while the rest of your site is statically-generated. + +If your project used hybrid rendering, you must now remove the `output: 'hybrid'` option from your Astro config as it no longer exists. However, no other changes to your project are required, and you should have no breaking changes. The previous `'hybrid'` behavior is now the default, under a new name `'static'`. + +If you were using the `output: 'static'` (default) option, you can continue to use it as before. By default, all of your pages will continue to be prerendered and you will have a completely static site. You should have no breaking changes to your project. + +```diff +import { defineConfig } from "astro/config"; + +export default defineConfig({ +- output: 'hybrid', +}); +``` + +An adapter is still required to deploy an Astro project with any server-rendered pages. Failure to include an adapter will result in a warning in development and an error at build time. diff --git a/.changeset/poor-dots-add.md b/.changeset/poor-dots-add.md new file mode 100644 index 000000000000..088498eeed92 --- /dev/null +++ b/.changeset/poor-dots-add.md @@ -0,0 +1,7 @@ +--- +'astro': minor +--- + +Adds a new `buildOutput` property to the `astro:config:done` hook returning the build output type. + +This can be used to know if the user's project will be built as a static site (HTML files), or a server-rendered site (whose exact output depends on the adapter). From f13c3577530e841a9a78bfb2b47448fad3f9bbc6 Mon Sep 17 00:00:00 2001 From: Sarah Rainsberger Date: Tue, 10 Sep 2024 09:09:43 -0300 Subject: [PATCH 25/27] [docs] update legacy collections error messages (#11961) --- packages/astro/src/core/errors/errors-data.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index cc8b1023c9b5..39aa06417341 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1486,9 +1486,9 @@ export const InvalidContentEntrySlugError = { /** * @docs * @see - * - [The reserved entry `slug` field](https://docs.astro.build/en/guides/content-collections/#defining-custom-slugs) + * - [Legacy content collections](https://docs.astro.build/en/guides/content-collections/#collections-using-the-previous-api) * @description - * A content collection schema should not contain the `slug` field. This is reserved by Astro for generating entry slugs. Remove `slug` from your schema. You can still use custom slugs in your frontmatter. + * A legacy content collection schema should not contain the `slug` field. This is reserved by Astro for generating entry slugs. Remove `slug` from your schema. You can still use custom slugs in your frontmatter. */ export const ContentSchemaContainsSlugError = { name: 'ContentSchemaContainsSlugError', @@ -1501,9 +1501,9 @@ export const ContentSchemaContainsSlugError = { /** * @docs * @see - * - [Defining content collections](https://docs.astro.build/en/guides/content-collections/#defining-collections) + * - [Legacy content collections](https://docs.astro.build/en/guides/content-collections/#collections-using-the-previous-api) * @description - * A content collection cannot contain a mix of content and data entries. You must store entries in separate collections by type. + * A legacy content collection cannot contain a mix of content and data entries. You must store entries in separate collections by type. */ export const MixedContentDataCollectionError = { name: 'MixedContentDataCollectionError', @@ -1515,9 +1515,9 @@ export const MixedContentDataCollectionError = { /** * @docs * @see - * - [Defining content collections](https://docs.astro.build/en/guides/content-collections/#defining-collections) + * - [Legacy content collections](https://docs.astro.build/en/guides/content-collections/#collections-using-the-previous-api) * @description - * Content collections must contain entries of the type configured. Collections are `type: 'content'` by default. Try adding `type: 'data'` to your collection config for data collections. + * Legacy content collections must contain entries of the type configured. Collections are `type: 'content'` by default. Try adding `type: 'data'` to your collection config for data collections. */ export const ContentCollectionTypeMismatchError = { name: 'ContentCollectionTypeMismatchError', From 4410130df722eae494caaa46b17c8eeb6223f160 Mon Sep 17 00:00:00 2001 From: Matt Kane Date: Tue, 10 Sep 2024 13:18:18 +0100 Subject: [PATCH 26/27] fix: add refresh context to schema for loader args (#11960) * fix: add refresh context to schema for loader args * fix negative match test --- .changeset/cuddly-shoes-press.md | 5 +++++ packages/astro/src/content/utils.ts | 1 + packages/astro/test/content-layer.test.js | 9 +++++++-- .../test/fixtures/content-layer/src/content/config.ts | 4 +++- 4 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 .changeset/cuddly-shoes-press.md diff --git a/.changeset/cuddly-shoes-press.md b/.changeset/cuddly-shoes-press.md new file mode 100644 index 000000000000..65f9fe7ef4bf --- /dev/null +++ b/.changeset/cuddly-shoes-press.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes an issue where the refresh context data was not passed correctly to content layer loaders diff --git a/packages/astro/src/content/utils.ts b/packages/astro/src/content/utils.ts index 65e4551df335..1dd1a457fdd7 100644 --- a/packages/astro/src/content/utils.ts +++ b/packages/astro/src/content/utils.ts @@ -80,6 +80,7 @@ const collectionConfigParser = z.union([ parseData: z.any(), generateDigest: z.function(z.tuple([z.any()], z.string())), watcher: z.any().optional(), + refreshContextData: z.record(z.unknown()).optional(), }), ], z.unknown(), diff --git a/packages/astro/test/content-layer.test.js b/packages/astro/test/content-layer.test.js index 2692c8913b87..6b833085df86 100644 --- a/packages/astro/test/content-layer.test.js +++ b/packages/astro/test/content-layer.test.js @@ -87,7 +87,10 @@ describe('Content Layer', () => { assert.ok(json.hasOwnProperty('probes')); assert.ok(Array.isArray(json.probes)); assert.equal(json.probes.length, 5); - assert.equal(json.probes.at(-1).id, 'philae-lander', 'Voyager probes should not be included'); + assert.ok( + json.probes.every(({ id }) => !id.startsWith('voyager')), + 'Voyager probes should not be included', + ); }); it('Returns data entry by id', async () => { @@ -290,16 +293,18 @@ describe('Content Layer', () => { const rawJsonResponse = await fixture.fetch('/collections.json'); const initialJson = devalue.parse(await rawJsonResponse.text()); assert.equal(initialJson.increment.data.lastValue, 1); + const now = new Date().toISOString(); const refreshResponse = await fixture.fetch('/_refresh', { method: 'POST', - body: JSON.stringify({}), + body: JSON.stringify({ now }), }); const refreshData = await refreshResponse.json(); assert.equal(refreshData.message, 'Content refreshed successfully'); const updatedJsonResponse = await fixture.fetch('/collections.json'); const updated = devalue.parse(await updatedJsonResponse.text()); assert.equal(updated.increment.data.lastValue, 2); + assert.deepEqual(updated.increment.data.refreshContextData, { webhookBody: { now } }); }); it('updates collection when data file is changed', async () => { diff --git a/packages/astro/test/fixtures/content-layer/src/content/config.ts b/packages/astro/test/fixtures/content-layer/src/content/config.ts index a12a36e3092f..79412da6606f 100644 --- a/packages/astro/test/fixtures/content-layer/src/content/config.ts +++ b/packages/astro/test/fixtures/content-layer/src/content/config.ts @@ -123,7 +123,7 @@ const images = defineCollection({ const increment = defineCollection({ loader: { name: 'increment-loader', - load: async ({ store }) => { + load: async ({ store, refreshContextData }) => { const entry = store.get<{ lastValue: number }>('value'); const lastValue = entry?.data.lastValue ?? 0; store.set({ @@ -131,6 +131,7 @@ const increment = defineCollection({ data: { lastValue: lastValue + 1, lastUpdated: new Date(), + refreshContextData }, }); }, @@ -139,6 +140,7 @@ const increment = defineCollection({ z.object({ lastValue: z.number(), lastUpdated: z.date(), + refreshContextData: z.record(z.unknown()), }), }, }); From a1176a1d93760f78fde49fab2d1934a9dd910d58 Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Tue, 10 Sep 2024 05:29:08 -0700 Subject: [PATCH 27/27] [ci] release (alpha) (#11954) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 5 ++ examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- examples/component/package.json | 2 +- examples/container-with-vitest/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-multiple/package.json | 2 +- examples/framework-preact/package.json | 2 +- examples/framework-react/package.json | 2 +- examples/framework-solid/package.json | 2 +- examples/framework-svelte/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/hackernews/package.json | 2 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 2 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/server-islands/package.json | 2 +- examples/ssr/package.json | 2 +- examples/starlog/package.json | 2 +- examples/toolbar-app/package.json | 2 +- examples/view-transitions/package.json | 2 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 2 +- examples/with-nanostores/package.json | 2 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 69 +++++++++++++++++++++ packages/astro/package.json | 2 +- pnpm-lock.yaml | 58 ++++++++--------- 33 files changed, 133 insertions(+), 59 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 672862bf9d21..99f40b214c8a 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -32,18 +32,22 @@ "@astrojs/upgrade": "0.3.1" }, "changesets": [ + "afraid-apricots-buy", "blue-boats-relax", "breezy-colts-promise", "chatty-teachers-sit", "chilly-terms-know", "clean-donuts-walk", + "cuddly-shoes-press", "curvy-walls-kneel", "eighty-boxes-applaud", "empty-spoons-kiss", "five-jars-hear", "forty-spies-train", + "giant-rocks-thank", "healthy-ads-scream", "heavy-seahorses-poke", + "honest-dingos-add", "hungry-jokes-try", "itchy-toys-march", "large-zebras-sniff", @@ -58,6 +62,7 @@ "old-zebras-teach", "perfect-fans-fly", "pink-yaks-exercise", + "poor-dots-add", "poor-frogs-dream", "quick-ads-exercise", "selfish-cats-crash", diff --git a/examples/basics/package.json b/examples/basics/package.json index ee4004b97d59..d8be60597d99 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 5a7db865bed8..7265f2f2c909 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^4.0.0-alpha.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/component/package.json b/examples/component/package.json index 0f97544400e6..287b931fb131 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json index bb4876972ab0..d192a9d11b38 100644 --- a/examples/container-with-vitest/package.json +++ b/examples/container-with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest run" }, "dependencies": { - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "@astrojs/react": "^3.6.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index 8f8f6cde27fd..99f893339280 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.4.0", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 89f09fc02b50..e408e6679633 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -18,7 +18,7 @@ "@astrojs/vue": "^5.0.0-alpha.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "preact": "^10.23.2", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index 841e66c48231..68acefdabf52 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.5.2", "@preact/signals": "^1.3.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "preact": "^10.23.2" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index 6880c17f5768..e814ea45895f 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.2", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index 4449ce11966d..e00e56146294 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^4.4.1", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "solid-js": "^1.8.22" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 88e2a71d6e50..da249f7f9bff 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^6.0.0-alpha.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "svelte": "^4.2.19" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 915e8db4e50d..7b797e7a32fc 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^5.0.0-alpha.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "vue": "^3.4.38" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 68aef5e34f0b..88ebb0c77a16 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^9.0.0-alpha.1", - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index 69e0db7b2aa1..1b3cf734664c 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index 1620e2bc3d38..c4442a2febcd 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^9.0.0-alpha.1", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "html-minifier": "^4.0.0" }, "devDependencies": { diff --git a/examples/minimal/package.json b/examples/minimal/package.json index 53fbb893c96a..6d4836a965b0 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 65d583b4bd4b..3e0fc489af11 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 52955987b3d6..fb4eeb9f9c8a 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json index 28a84d92dc9e..721b0ec2ce8b 100644 --- a/examples/server-islands/package.json +++ b/examples/server-islands/package.json @@ -17,7 +17,7 @@ "@tailwindcss/forms": "^0.5.8", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "postcss": "^8.4.43", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/ssr/package.json b/examples/ssr/package.json index e63a7bec4c5c..d25f5f4a11c6 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^9.0.0-alpha.1", "@astrojs/svelte": "^6.0.0-alpha.0", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "svelte": "^4.2.19" } } diff --git a/examples/starlog/package.json b/examples/starlog/package.json index 911cbf0c3268..f4f8605e230a 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "sass": "^1.77.8", "sharp": "^0.33.3" } diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json index 1646c3dd9cbd..aa832cb668b3 100644 --- a/examples/toolbar-app/package.json +++ b/examples/toolbar-app/package.json @@ -15,6 +15,6 @@ "./app": "./dist/app.js" }, "devDependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index df7405143616..f5dd2717d33f 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^6.0.0-alpha.0", "@astrojs/node": "^9.0.0-alpha.1", - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 0d41596196b5..14152bb8ba68 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^1.0.0-alpha.1", - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index c253791118ec..9edad4072e94 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^6.0.0-alpha.1", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "hast-util-select": "^6.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 682060e6b385..d278d1e84842 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^5.0.0-alpha.5" + "astro": "^5.0.0-alpha.6" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index 5c7a1f80255d..c1e3586c92a3 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/mdx": "^4.0.0-alpha.2", "@astrojs/preact": "^3.5.2", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "preact": "^10.23.2" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index 6761471d3199..13c013b0fda7 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/preact": "^3.5.2", "@nanostores/preact": "^0.5.2", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "nanostores": "^0.11.3", "preact": "^10.23.2" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 68bc3347dc53..dc54c6df28fe 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^4.0.0-alpha.2", "@astrojs/tailwind": "^6.0.0-alpha.0", "@types/canvas-confetti": "^1.6.4", - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "autoprefixer": "^10.4.20", "canvas-confetti": "^1.9.3", "postcss": "^8.4.43", diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 08e00af172b4..7aa75dcea924 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^5.0.0-alpha.5", + "astro": "^5.0.0-alpha.6", "vitest": "^2.0.5" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 28e5f1c32a86..c54dcc01e38c 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,74 @@ # astro +## 5.0.0-alpha.6 + +### Major Changes + +- [#11941](https://github.com/withastro/astro/pull/11941) [`b6a5f39`](https://github.com/withastro/astro/commit/b6a5f39846581d0e9cfd7ae6f056c8d1209f71bd) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Merges the `output: 'hybrid'` and `output: 'static'` configurations into one single configuration (now called `'static'`) that works the same way as the previous `hybrid` option. + + It is no longer necessary to specify `output: 'hybrid'` in your Astro config to use server-rendered pages. The new `output: 'static'` has this capability included. Astro will now automatically provide the ability to opt out of prerendering in your static site with no change to your `output` configuration required. Any page route or endpoint can include `export const prerender = false` to be server-rendered, while the rest of your site is statically-generated. + + If your project used hybrid rendering, you must now remove the `output: 'hybrid'` option from your Astro config as it no longer exists. However, no other changes to your project are required, and you should have no breaking changes. The previous `'hybrid'` behavior is now the default, under a new name `'static'`. + + If you were using the `output: 'static'` (default) option, you can continue to use it as before. By default, all of your pages will continue to be prerendered and you will have a completely static site. You should have no breaking changes to your project. + + ```diff + import { defineConfig } from "astro/config"; + + export default defineConfig({ + - output: 'hybrid', + }); + ``` + + An adapter is still required to deploy an Astro project with any server-rendered pages. Failure to include an adapter will result in a warning in development and an error at build time. + +### Minor Changes + +- [#11941](https://github.com/withastro/astro/pull/11941) [`b6a5f39`](https://github.com/withastro/astro/commit/b6a5f39846581d0e9cfd7ae6f056c8d1209f71bd) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Adapters can now specify the build output type they're intended for using the `adapterFeatures.buildOutput` property. This property can be used to always generate a server output, even if the project doesn't have any server-rendered pages. + + ```ts + { + 'astro:config:done': ({ setAdapter, config }) => { + setAdapter({ + name: 'my-adapter', + adapterFeatures: { + buildOutput: 'server', + }, + }); + }, + } + ``` + + If your adapter specifies `buildOutput: 'static'`, and the user's project contains server-rendered pages, Astro will warn in development and error at build time. Note that a hybrid output, containing both static and server-rendered pages, is considered to be a `server` output, as a server is required to serve the server-rendered pages. + +- [#11941](https://github.com/withastro/astro/pull/11941) [`b6a5f39`](https://github.com/withastro/astro/commit/b6a5f39846581d0e9cfd7ae6f056c8d1209f71bd) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Adds a new `buildOutput` property to the `astro:config:done` hook returning the build output type. + + This can be used to know if the user's project will be built as a static site (HTML files), or a server-rendered site (whose exact output depends on the adapter). + +### Patch Changes + +- [#11960](https://github.com/withastro/astro/pull/11960) [`4410130`](https://github.com/withastro/astro/commit/4410130df722eae494caaa46b17c8eeb6223f160) Thanks [@ascorbic](https://github.com/ascorbic)! - Fixes an issue where the refresh context data was not passed correctly to content layer loaders + +- [#11952](https://github.com/withastro/astro/pull/11952) [`50a0146`](https://github.com/withastro/astro/commit/50a0146e9aff78a245914125f34719cfb32c585f) Thanks [@ascorbic](https://github.com/ascorbic)! - Adds support for array patterns in the built-in `glob()` content collections loader + + The glob loader can now accept an array of multiple patterns as well as string patterns. This allows you to more easily combine multiple patterns into a single collection, and also means you can use negative matches to exclude files from the collection. + + ```ts + const probes = defineCollection({ + // Load all markdown files in the space-probes directory, except for those that start with "voyager-" + loader: glob({ pattern: ['*.md', '!voyager-*'], base: 'src/data/space-probes' }), + schema: z.object({ + name: z.string(), + type: z.enum(['Space Probe', 'Mars Rover', 'Comet Lander']), + launch_date: z.date(), + status: z.enum(['Active', 'Inactive', 'Decommissioned']), + destination: z.string(), + operator: z.string(), + notable_discoveries: z.array(z.string()), + }), + }); + ``` + ## 5.0.0-alpha.5 ### Major Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index e2cf4037bd62..59c9c9025e56 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "5.0.0-alpha.5", + "version": "5.0.0-alpha.6", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff3bdc3488ab..8cee99483462 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -116,7 +116,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/blog: @@ -131,13 +131,13 @@ importers: specifier: ^3.1.6 version: link:../../packages/integrations/sitemap astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/container-with-vitest: @@ -146,7 +146,7 @@ importers: specifier: ^3.6.2 version: link:../../packages/integrations/react astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -177,7 +177,7 @@ importers: specifier: ^3.14.1 version: 3.14.1 astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/framework-multiple: @@ -204,7 +204,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -234,7 +234,7 @@ importers: specifier: ^1.3.0 version: 1.3.0(preact@10.23.2) astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -252,7 +252,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -267,7 +267,7 @@ importers: specifier: ^4.4.1 version: link:../../packages/integrations/solid astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro solid-js: specifier: ^1.8.22 @@ -279,7 +279,7 @@ importers: specifier: ^6.0.0-alpha.0 version: link:../../packages/integrations/svelte astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -291,7 +291,7 @@ importers: specifier: ^5.0.0-alpha.0 version: link:../../packages/integrations/vue astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro vue: specifier: ^3.4.38 @@ -303,13 +303,13 @@ importers: specifier: ^9.0.0-alpha.1 version: 9.0.0-alpha.1(astro@packages+astro) astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/middleware: @@ -318,7 +318,7 @@ importers: specifier: ^9.0.0-alpha.1 version: 9.0.0-alpha.1(astro@packages+astro) astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -331,19 +331,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/server-islands: @@ -370,7 +370,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro postcss: specifier: ^8.4.43 @@ -394,7 +394,7 @@ importers: specifier: ^6.0.0-alpha.0 version: link:../../packages/integrations/svelte astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro svelte: specifier: ^4.2.19 @@ -403,7 +403,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro sass: specifier: ^1.77.8 @@ -415,7 +415,7 @@ importers: examples/toolbar-app: devDependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/view-transitions: @@ -427,7 +427,7 @@ importers: specifier: ^6.0.0-alpha.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/with-markdoc: @@ -436,7 +436,7 @@ importers: specifier: ^1.0.0-alpha.1 version: link:../../packages/integrations/markdoc astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/with-markdown-plugins: @@ -445,7 +445,7 @@ importers: specifier: ^6.0.0-alpha.1 version: link:../../packages/markdown/remark astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -466,7 +466,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro examples/with-mdx: @@ -478,7 +478,7 @@ importers: specifier: ^3.5.2 version: link:../../packages/integrations/preact astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro preact: specifier: ^10.23.2 @@ -493,7 +493,7 @@ importers: specifier: ^0.5.2 version: 0.5.2(nanostores@0.11.3)(preact@10.23.2) astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro nanostores: specifier: ^0.11.3 @@ -514,7 +514,7 @@ importers: specifier: ^1.6.4 version: 1.6.4 astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro autoprefixer: specifier: ^10.4.20 @@ -532,7 +532,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^5.0.0-alpha.5 + specifier: ^5.0.0-alpha.6 version: link:../../packages/astro vitest: specifier: ^2.0.5