diff --git a/.github/workflows/continuous_benchmark.yml b/.github/workflows/continuous_benchmark.yml new file mode 100644 index 000000000000..10abc7bcd2e9 --- /dev/null +++ b/.github/workflows/continuous_benchmark.yml @@ -0,0 +1,50 @@ +name: Continuous benchmark + +on: + workflow_dispatch: + pull_request: + branches: + - main + push: + branches: + - main + +env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + FORCE_COLOR: true + CODSPEED_TOKEN: ${{ secrets.CODSPEED_TOKEN }} + CODSPEED: true + +jobs: + codspeed: + if: ${{ github.repository_owner == 'withastro' }} + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Setup PNPM + uses: pnpm/action-setup@v3 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install + + - name: Build + run: pnpm run build + + - name: Run the benchmarks + uses: CodSpeedHQ/action@fa1dcde8d58f2ab0b407a6a24d6cc5a8c1444a8c # v3.1.0 + timeout-minutes: 30 + with: + run: pnpm benchmark codspeed + diff --git a/benchmark/bench/_util.js b/benchmark/bench/_util.js index 23c4726046bc..b16a16e1ce36 100644 --- a/benchmark/bench/_util.js +++ b/benchmark/bench/_util.js @@ -14,7 +14,7 @@ export const astroBin = path.resolve(astroPkgPath, '../astro.js'); export function calculateStat(numbers) { const avg = numbers.reduce((a, b) => a + b, 0) / numbers.length; const stdev = Math.sqrt( - numbers.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / numbers.length + numbers.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / numbers.length, ); const max = Math.max(...numbers); return { avg, stdev, max }; diff --git a/benchmark/bench/cli-startup.js b/benchmark/bench/cli-startup.js index 6f25554997cd..9144797d7547 100644 --- a/benchmark/bench/cli-startup.js +++ b/benchmark/bench/cli-startup.js @@ -1,6 +1,6 @@ import { fileURLToPath } from 'node:url'; -import { exec } from 'tinyexec'; import { markdownTable } from 'markdown-table'; +import { exec } from 'tinyexec'; import { astroBin, calculateStat } from './_util.js'; /** Default project to run for this benchmark if not specified */ @@ -8,9 +8,8 @@ export const defaultProject = 'render-default'; /** * @param {URL} projectDir - * @param {URL} outputFile */ -export async function run(projectDir, outputFile) { +export async function run(projectDir) { const root = fileURLToPath(projectDir); console.log('Benchmarking `astro --help`...'); @@ -28,7 +27,7 @@ export async function run(projectDir, outputFile) { printResult({ 'astro --help': helpStat, 'astro info': infoStat, - }) + }), ); console.log('='.repeat(10)); } @@ -45,7 +44,7 @@ async function benchmarkCommand(command, args, root) { for (let i = 0; i < 10; i++) { const start = performance.now(); - await exec(command, args, { nodeOptions: { cwd: root } }); + await exec(command, args, { nodeOptions: { cwd: root }, throwOnError: true }); durations.push(performance.now() - start); } @@ -69,6 +68,6 @@ function printResult(result) { ], { align: ['l', 'r', 'r', 'r'], - } + }, ); } diff --git a/benchmark/bench/codspeed.js b/benchmark/bench/codspeed.js new file mode 100644 index 000000000000..2ad783e8aa7d --- /dev/null +++ b/benchmark/bench/codspeed.js @@ -0,0 +1,50 @@ +import path from 'node:path'; +import { withCodSpeed } from '@codspeed/tinybench-plugin'; +import { Bench } from 'tinybench'; +import { exec } from 'tinyexec'; +import { renderPages } from '../make-project/render-default.js'; +import { astroBin } from './_util.js'; + +export async function run({ memory: _memory, render, stress: _stress }) { + const options = { + iterations: 10, + }; + const bench = process.env.CODSPEED ? withCodSpeed(new Bench(options)) : new Bench(options); + let app; + bench.add( + 'Rendering', + async () => { + console.info('Start task.'); + const result = {}; + for (const fileName of renderPages) { + const pathname = '/' + fileName.slice(0, -path.extname(fileName).length); + const request = new Request(new URL(pathname, 'http://exmpale.com')); + const response = await app.render(request); + const html = await response.text(); + if (!result[pathname]) result[pathname] = []; + result[pathname].push(html); + } + console.info('Finish task.'); + return result; + }, + { + async beforeAll() { + // build for rendering + await exec(astroBin, ['build'], { + nodeOptions: { + cwd: render.root, + stdio: 'inherit', + }, + }); + + const entry = new URL('./dist/server/entry.mjs', `file://${render.root}`); + const { manifest, createApp } = await import(entry); + app = createApp(manifest); + app.manifest = manifest; + }, + }, + ); + + await bench.run(); + console.table(bench.table()); +} diff --git a/benchmark/bench/memory.js b/benchmark/bench/memory.js index f1846204f8b9..4f9153cc0c67 100644 --- a/benchmark/bench/memory.js +++ b/benchmark/bench/memory.js @@ -1,7 +1,7 @@ -import { exec } from 'tinyexec'; -import { markdownTable } from 'markdown-table'; import fs from 'node:fs/promises'; import { fileURLToPath } from 'node:url'; +import { markdownTable } from 'markdown-table'; +import { exec } from 'tinyexec'; import { astroBin } from './_util.js'; /** @typedef {Record} AstroTimerStat */ @@ -26,6 +26,7 @@ export async function run(projectDir, outputFile) { ASTRO_TIMER_PATH: outputFilePath, }, }, + throwOnError: true, }); console.log('Raw results written to', outputFilePath); @@ -55,6 +56,6 @@ function printResult(output) { ], { align: ['l', 'r', 'r', 'r'], - } + }, ); } diff --git a/benchmark/bench/render.js b/benchmark/bench/render.js index aee04f2b5bed..02f75a73b270 100644 --- a/benchmark/bench/render.js +++ b/benchmark/bench/render.js @@ -1,12 +1,12 @@ -import { exec } from 'tinyexec'; -import { markdownTable } from 'markdown-table'; import fs from 'node:fs/promises'; import http from 'node:http'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; +import { markdownTable } from 'markdown-table'; import { waitUntilBusy } from 'port-authority'; -import { calculateStat, astroBin } from './_util.js'; +import { exec } from 'tinyexec'; import { renderPages } from '../make-project/render-default.js'; +import { astroBin, calculateStat } from './_util.js'; const port = 4322; @@ -25,6 +25,7 @@ export async function run(projectDir, outputFile) { cwd: root, stdio: 'inherit', }, + throwOnError: true, }); console.log('Previewing...'); @@ -33,6 +34,7 @@ export async function run(projectDir, outputFile) { cwd: root, stdio: 'inherit', }, + throwOnError: true, }); console.log('Waiting for server ready...'); @@ -58,14 +60,14 @@ export async function run(projectDir, outputFile) { console.log('Done!'); } -async function benchmarkRenderTime() { +export async function benchmarkRenderTime(portToListen = port) { /** @type {Record} */ const result = {}; for (const fileName of renderPages) { // Render each file 100 times and push to an array for (let i = 0; i < 100; i++) { const pathname = '/' + fileName.slice(0, -path.extname(fileName).length); - const renderTime = await fetchRenderTime(`http://localhost:${port}${pathname}`); + const renderTime = await fetchRenderTime(`http://localhost:${portToListen}${pathname}`); if (!result[pathname]) result[pathname] = []; result[pathname].push(renderTime); } @@ -95,7 +97,7 @@ function printResult(result) { ], { align: ['l', 'r', 'r', 'r'], - } + }, ); } diff --git a/benchmark/bench/server-stress.js b/benchmark/bench/server-stress.js index 18b31c71c59e..5bcaa6963438 100644 --- a/benchmark/bench/server-stress.js +++ b/benchmark/bench/server-stress.js @@ -1,10 +1,10 @@ -import autocannon from 'autocannon'; -import { exec } from 'tinyexec'; -import { markdownTable } from 'markdown-table'; import fs from 'node:fs/promises'; import { fileURLToPath } from 'node:url'; +import autocannon from 'autocannon'; +import { markdownTable } from 'markdown-table'; import { waitUntilBusy } from 'port-authority'; import pb from 'pretty-bytes'; +import { exec } from 'tinyexec'; import { astroBin } from './_util.js'; const port = 4321; @@ -24,12 +24,15 @@ export async function run(projectDir, outputFile) { cwd: root, stdio: 'inherit', }, + throwOnError: true, }); console.log('Previewing...'); - const previewProcess = execaCommand(`${astroBin} preview --port ${port}`, { - cwd: root, - stdio: 'inherit', + const previewProcess = await exec(astroBin, ['preview', '--port', port], { + nodeOptions: { + cwd: root, + stdio: 'inherit', + }, }); console.log('Waiting for server ready...'); @@ -58,7 +61,7 @@ export async function run(projectDir, outputFile) { /** * @returns {Promise} */ -async function benchmarkCannon() { +export async function benchmarkCannon() { return new Promise((resolve, reject) => { const instance = autocannon( { @@ -75,7 +78,7 @@ async function benchmarkCannon() { instance.stop(); resolve(result); } - } + }, ); autocannon.track(instance, { renderResultsTable: false }); }); @@ -94,7 +97,7 @@ function printResult(output) { ], { align: ['l', 'r', 'r', 'r'], - } + }, ); const reqAndBytesTable = markdownTable( @@ -105,7 +108,7 @@ function printResult(output) { ], { align: ['l', 'r', 'r', 'r', 'r'], - } + }, ); return `${latencyTable}\n\n${reqAndBytesTable}`; diff --git a/benchmark/index.js b/benchmark/index.js index 1c38993b13bf..2f2846e1db5c 100755 --- a/benchmark/index.js +++ b/benchmark/index.js @@ -1,7 +1,7 @@ import mri from 'mri'; import fs from 'node:fs/promises'; import path from 'node:path'; -import { pathToFileURL } from 'node:url'; +import {fileURLToPath, pathToFileURL} from 'node:url'; const args = mri(process.argv.slice(2)); @@ -14,6 +14,7 @@ Command memory Run build memory and speed test render Run rendering speed test server-stress Run server stress test + codspeed Run codspeed test cli-startup Run CLI startup speed test Options @@ -29,6 +30,7 @@ const benchmarks = { render: () => import('./bench/render.js'), 'server-stress': () => import('./bench/server-stress.js'), 'cli-startup': () => import('./bench/cli-startup.js'), + codspeed: () => import('./bench/codspeed.js') }; if (commandName && !(commandName in benchmarks)) { @@ -37,12 +39,26 @@ if (commandName && !(commandName in benchmarks)) { } if (commandName) { - // Run single benchmark - const bench = benchmarks[commandName]; - const benchMod = await bench(); - const projectDir = await makeProject(args.project || benchMod.defaultProject); - const outputFile = await getOutputFile(commandName); - await benchMod.run(projectDir, outputFile); + if (commandName === 'codspeed') { + const render = await makeProject('render-bench'); + const rootRender = fileURLToPath(render); + const bench = benchmarks[commandName]; + const benchMod = await bench(); + const payload = { + render: { + root: rootRender, + output: await getOutputFile('render') + }, + }; + await benchMod.run(payload); + } else { + // Run single benchmark + const bench = benchmarks[commandName]; + const benchMod = await bench(); + const projectDir = await makeProject(args.project || benchMod.defaultProject); + const outputFile = await getOutputFile(commandName); + await benchMod.run(projectDir, outputFile); + } } else { // Run all benchmarks for (const name in benchmarks) { @@ -54,7 +70,7 @@ if (commandName) { } } -async function makeProject(name) { +export async function makeProject(name) { console.log('Making project:', name); const projectDir = new URL(`./projects/${name}/`, import.meta.url); @@ -78,6 +94,5 @@ async function getOutputFile(benchmarkName) { // Prepare output file directory await fs.mkdir(new URL('./', file), { recursive: true }); - return file; } diff --git a/benchmark/make-project/render-bench.js b/benchmark/make-project/render-bench.js new file mode 100644 index 000000000000..9d10d9bf5f16 --- /dev/null +++ b/benchmark/make-project/render-bench.js @@ -0,0 +1,132 @@ +import fs from 'node:fs/promises'; +import { loremIpsumHtml, loremIpsumMd } from './_util.js'; + +// Map of files to be generated and tested for rendering. +// Ideally each content should be similar for comparison. +const renderFiles = { + 'components/ListItem.astro': `\ +--- +const { className, item, attrs } = Astro.props; +const nested = item !== 0; +--- +
  • + + {item} + +
  • + `, + 'components/Sublist.astro': `\ +--- +import ListItem from '../components/ListItem.astro'; +const { items } = Astro.props; +const className = "text-red-500"; +const style = { color: "red" }; +--- +
      +{items.map((item) => ( + +))} +
    + `, + 'pages/astro.astro': `\ +--- +const className = "text-red-500"; +const style = { color: "red" }; +const items = Array.from({ length: 10000 }, (_, i) => ({i})); +--- + + + My Site + + +

    List

    + + ${Array.from({ length: 1000 }) + .map(() => `

    ${loremIpsumHtml}

    `) + .join('\n')} + +`, + 'pages/md.md': `\ +# List + +${Array.from({ length: 1000 }, (_, i) => i) + .map((v) => `- ${v}`) + .join('\n')} + +${Array.from({ length: 1000 }) + .map(() => loremIpsumMd) + .join('\n\n')} +`, + 'pages/mdx.mdx': `\ +export const className = "text-red-500"; +export const style = { color: "red" }; +export const items = Array.from({ length: 1000 }, (_, i) => i); + +# List + +
      + {items.map((item) => ( +
    • {item}
    • + ))} +
    + +${Array.from({ length: 1000 }) + .map(() => loremIpsumMd) + .join('\n\n')} +`, +}; + +export const renderPages = []; +for (const file of Object.keys(renderFiles)) { + if (file.startsWith('pages/')) { + renderPages.push(file.replace('pages/', '')); + } +} + +/** + * @param {URL} projectDir + */ +export async function run(projectDir) { + await fs.rm(projectDir, { recursive: true, force: true }); + await fs.mkdir(new URL('./src/pages', projectDir), { recursive: true }); + await fs.mkdir(new URL('./src/components', projectDir), { recursive: true }); + + await Promise.all( + Object.entries(renderFiles).map(([name, content]) => { + return fs.writeFile(new URL(`./src/${name}`, projectDir), content, 'utf-8'); + }) + ); + + await fs.writeFile( + new URL('./astro.config.js', projectDir), + `\ +import { defineConfig } from 'astro/config'; +import adapter from '@benchmark/adapter'; +import mdx from '@astrojs/mdx'; + +export default defineConfig({ + integrations: [mdx()], + output: 'server', + adapter: adapter(), +});`, + 'utf-8' + ); +} diff --git a/benchmark/package.json b/benchmark/package.json index 2fe6ba7b9a49..428afe56d2cf 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -10,6 +10,7 @@ "@astrojs/mdx": "workspace:*", "@astrojs/node": "^8.3.4", "@benchmark/timer": "workspace:*", + "@benchmark/adapter": "workspace:*", "astro": "workspace:*", "autocannon": "^7.15.0", "markdown-table": "^3.0.4", @@ -18,5 +19,9 @@ "pretty-bytes": "^6.1.1", "sharp": "^0.33.3", "tinyexec": "^0.3.1" + }, + "devDependencies": { + "@codspeed/tinybench-plugin": "^3.1.1", + "tinybench": "^2.9.0" } } diff --git a/benchmark/packages/adapter/README.md b/benchmark/packages/adapter/README.md new file mode 100644 index 000000000000..5b8e33ed4e59 --- /dev/null +++ b/benchmark/packages/adapter/README.md @@ -0,0 +1,3 @@ +# @benchmark/timer + +Like `@astrojs/node`, but returns the rendered time in milliseconds for the page instead of the page content itself. This is used for internal benchmarks only. diff --git a/benchmark/packages/adapter/package.json b/benchmark/packages/adapter/package.json new file mode 100644 index 000000000000..2bdb73ce9bd8 --- /dev/null +++ b/benchmark/packages/adapter/package.json @@ -0,0 +1,35 @@ +{ + "name": "@benchmark/adapter", + "description": "Bench adapter", + "private": true, + "version": "0.0.0", + "type": "module", + "types": "./dist/index.d.ts", + "author": "withastro", + "license": "MIT", + "keywords": [ + "withastro", + "astro-adapter" + ], + "exports": { + ".": "./dist/index.js", + "./server.js": "./dist/server.js", + "./package.json": "./package.json" + }, + "scripts": { + "build": "astro-scripts build \"src/**/*.ts\" && tsc", + "build:ci": "astro-scripts build \"src/**/*.ts\"", + "dev": "astro-scripts dev \"src/**/*.ts\"" + }, + "dependencies": { + "server-destroy": "^1.0.1" + }, + "peerDependencies": { + "astro": "workspace:*" + }, + "devDependencies": { + "@types/server-destroy": "^1.0.4", + "astro": "workspace:*", + "astro-scripts": "workspace:*" + } +} diff --git a/benchmark/packages/adapter/src/index.ts b/benchmark/packages/adapter/src/index.ts new file mode 100644 index 000000000000..f2345deb0885 --- /dev/null +++ b/benchmark/packages/adapter/src/index.ts @@ -0,0 +1,32 @@ +import type { AstroAdapter, AstroIntegration } from 'astro'; + +export default function createIntegration(): AstroIntegration { + return { + name: '@benchmark/timer', + hooks: { + 'astro:config:setup': ({ updateConfig }) => { + updateConfig({ + vite: { + ssr: { + noExternal: ['@benchmark/timer'], + }, + }, + }); + }, + 'astro:config:done': ({ setAdapter }) => { + setAdapter({ + name: '@benchmark/adapter', + serverEntrypoint: '@benchmark/adapter/server.js', + exports: ['manifest', 'createApp'], + supportedAstroFeatures: { + serverOutput: 'stable', + envGetSecret: 'experimental', + staticOutput: 'stable', + hybridOutput: 'stable', + i18nDomains: 'stable', + }, + }); + }, + }, + }; +} diff --git a/benchmark/packages/adapter/src/server.ts b/benchmark/packages/adapter/src/server.ts new file mode 100644 index 000000000000..ca69fe28f262 --- /dev/null +++ b/benchmark/packages/adapter/src/server.ts @@ -0,0 +1,34 @@ +import * as fs from 'node:fs'; +import type { SSRManifest } from 'astro'; +import { App } from 'astro/app'; +import { applyPolyfills } from 'astro/app/node'; + +applyPolyfills(); + +class MyApp extends App { + #manifest: SSRManifest | undefined; + #streaming: boolean; + constructor(manifest: SSRManifest, streaming = false) { + super(manifest, streaming); + this.#manifest = manifest; + this.#streaming = streaming; + } + + async render(request: Request) { + const url = new URL(request.url); + if (this.#manifest?.assets.has(url.pathname)) { + const filePath = new URL('../../client/' + this.removeBase(url.pathname), import.meta.url); + const data = await fs.promises.readFile(filePath); + return new Response(data); + } + + return super.render(request); + } +} + +export function createExports(manifest: SSRManifest) { + return { + manifest, + createApp: (streaming: boolean) => new MyApp(manifest, streaming), + }; +} diff --git a/benchmark/packages/adapter/tsconfig.json b/benchmark/packages/adapter/tsconfig.json new file mode 100644 index 000000000000..1504b4b6dfa4 --- /dev/null +++ b/benchmark/packages/adapter/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../../tsconfig.base.json", + "include": ["src"], + "compilerOptions": { + "outDir": "./dist" + } +} diff --git a/benchmark/packages/timer/src/index.ts b/benchmark/packages/timer/src/index.ts index 1c54e3727618..f83a61c36cb5 100644 --- a/benchmark/packages/timer/src/index.ts +++ b/benchmark/packages/timer/src/index.ts @@ -6,7 +6,9 @@ export function getAdapter(): AstroAdapter { serverEntrypoint: '@benchmark/timer/server.js', previewEntrypoint: '@benchmark/timer/preview.js', exports: ['handler'], - supportedAstroFeatures: {}, + supportedAstroFeatures: { + serverOutput: 'stable', + }, }; } diff --git a/biome.jsonc b/biome.jsonc index 227f37a08d17..edd0ea87173d 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -9,20 +9,17 @@ "**/_temp-fixtures/**", "**/vendor/**", "**/.vercel/**", + "benchmark/projects/", + "benchmark/results/", + "benchmark/bench/_template.js", ], - "include": ["test/**", "e2e/**", "packages/**", "/scripts/**"], + "include": ["test/**", "e2e/**", "packages/**", "/scripts/**", "benchmark/bench"], }, "formatter": { "indentStyle": "tab", "indentWidth": 2, "lineWidth": 100, - "ignore": [ - "benchmark/projects/", - "benchmark/results/", - ".changeset", - "pnpm-lock.yaml", - "*.astro", - ], + "ignore": [".changeset", "pnpm-lock.yaml", "*.astro"], }, "organizeImports": { "enabled": true, diff --git a/examples/starlog/package.json b/examples/starlog/package.json index 7a3c8d250279..fb78319c7e5c 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "astro": "^5.0.0-beta.6", - "sass": "^1.80.3", + "sass": "^1.80.6", "sharp": "^0.33.3" } } diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 38864800ef8a..7cff90cd353a 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "astro": "^5.0.0-beta.6", - "vitest": "^2.1.3" + "vitest": "^2.1.4" } } diff --git a/package.json b/package.json index 884ab814716c..56dc0765f8f4 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@changesets/cli": "^2.27.9", "@types/node": "^18.17.8", "esbuild": "^0.21.5", - "eslint": "^9.13.0", + "eslint": "^9.14.0", "eslint-plugin-regexp": "^2.6.0", "globby": "^14.0.2", "only-allow": "^1.2.1", @@ -67,7 +67,7 @@ "prettier-plugin-astro": "^0.14.1", "turbo": "^2.2.3", "typescript": "~5.6.3", - "typescript-eslint": "^8.11.0" + "typescript-eslint": "^8.13.0" }, "pnpm": { "overrides": { diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 5cb1cb5c061b..3335400088d7 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1118,6 +1118,34 @@ - Updated dependencies [[`83a2a64`](https://github.com/withastro/astro/commit/83a2a648418ad30f4eb781d1c1b5f2d8a8ac846e)]: - @astrojs/markdown-remark@6.0.0-alpha.0 +## 4.16.10 + +### Patch Changes + +- [#12311](https://github.com/withastro/astro/pull/12311) [`bf2723e`](https://github.com/withastro/astro/commit/bf2723e83140099914b29c6d51eb147a065be460) Thanks [@dinesh-58](https://github.com/dinesh-58)! - Adds `checked` to the list of boolean attributes. + +- [#12363](https://github.com/withastro/astro/pull/12363) [`222f718`](https://github.com/withastro/astro/commit/222f71894cc7118319ce83b3b29fa61a9dbebb75) Thanks [@Fryuni](https://github.com/Fryuni)! - Fixes code generated by `astro add` command when adding a version of an integration other than the default `latest`. + +- [#12368](https://github.com/withastro/astro/pull/12368) [`493fe43`](https://github.com/withastro/astro/commit/493fe43cd3ef94b087b8958031ecc964ae73463b) Thanks [@bluwy](https://github.com/bluwy)! - Improves error logs when executing commands + +- [#12355](https://github.com/withastro/astro/pull/12355) [`c4726d7`](https://github.com/withastro/astro/commit/c4726d7ba8cc93157390ce64d5c8b718ed5cac29) Thanks [@apatel369](https://github.com/apatel369)! - Improves error reporting for invalid frontmatter in MDX files during the `astro build` command. The error message now includes the file path where the frontmatter parsing failed. + +## 4.16.9 + +### Patch Changes + +- [#12333](https://github.com/withastro/astro/pull/12333) [`836cd91`](https://github.com/withastro/astro/commit/836cd91c37cea8ae58dd04a326435fcb2c88f358) Thanks [@imattacus](https://github.com/imattacus)! - Destroy the server response stream if async error is thrown + +- [#12358](https://github.com/withastro/astro/pull/12358) [`7680349`](https://github.com/withastro/astro/commit/76803498738f9e86e7948ce81e01e63607e03549) Thanks [@spacedawwwg](https://github.com/spacedawwwg)! - Honors `inlineAstroConfig` parameter in `getViteConfig` when creating a logger + +- [#12353](https://github.com/withastro/astro/pull/12353) [`35795a1`](https://github.com/withastro/astro/commit/35795a1a54b2bfaf331c58ca91b47e5672e08c4e) Thanks [@hippotastic](https://github.com/hippotastic)! - Fixes an issue in dev server watch file handling that could cause multiple restarts for a single file change. + +- [#12351](https://github.com/withastro/astro/pull/12351) [`5751488`](https://github.com/withastro/astro/commit/57514881655b62a0bc39ace1e1ed4b89b96f74ca) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Reverts a change made in `4.16.6` that prevented usage of `astro:env` secrets inside middleware in SSR + +- [#12346](https://github.com/withastro/astro/pull/12346) [`20e5a84`](https://github.com/withastro/astro/commit/20e5a843c86e9328814615edf3e8a6fb5e4696cc) Thanks [@bluwy](https://github.com/bluwy)! - Fixes sourcemap generation when prefetch is enabled + +- [#12349](https://github.com/withastro/astro/pull/12349) [`1fc83d3`](https://github.com/withastro/astro/commit/1fc83d3ba8315c31b2a3aadc77b20b1615d261a0) Thanks [@norskeld](https://github.com/norskeld)! - Fixes the `getImage` options type so it properly extends `ImageTransform` + ## 4.16.8 ### Patch Changes diff --git a/packages/astro/e2e/fixtures/error-sass/package.json b/packages/astro/e2e/fixtures/error-sass/package.json index c1a805b643ee..04457de959c4 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.80.4" + "sass": "^1.80.6" } } diff --git a/packages/astro/e2e/fixtures/errors/package.json b/packages/astro/e2e/fixtures/errors/package.json index ef5b0a02eca5..3730d61f1bd0 100644 --- a/packages/astro/e2e/fixtures/errors/package.json +++ b/packages/astro/e2e/fixtures/errors/package.json @@ -12,7 +12,7 @@ "preact": "^10.24.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "sass": "^1.80.4", + "sass": "^1.80.6", "solid-js": "^1.9.3", "svelte": "^4.2.19", "vue": "^3.5.12" diff --git a/packages/astro/e2e/fixtures/hmr/package.json b/packages/astro/e2e/fixtures/hmr/package.json index e569c01b9659..b8178a33f685 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.80.4" + "sass": "^1.80.6" } } diff --git a/packages/astro/package.json b/packages/astro/package.json index ba081f2aa6eb..2248ac679717 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -200,7 +200,7 @@ "eol": "^0.10.0", "execa": "^8.0.1", "expect-type": "^1.1.0", - "fs-fixture": "^2.5.0", + "fs-fixture": "^2.6.0", "mdast-util-mdx": "^3.0.0", "mdast-util-mdx-jsx": "^3.1.3", "node-mocks-http": "^1.16.1", @@ -209,8 +209,8 @@ "rehype-slug": "^6.0.0", "rehype-toc": "^3.0.2", "remark-code-titles": "^0.1.2", - "rollup": "^4.24.2", - "sass": "^1.80.4", + "rollup": "^4.24.4", + "sass": "^1.80.6", "undici": "^6.20.1", "unified": "^11.0.5", "vitest": "^2.1.1" diff --git a/packages/astro/src/assets/types.ts b/packages/astro/src/assets/types.ts index 6de28d43c6b0..8bf7a5959380 100644 --- a/packages/astro/src/assets/types.ts +++ b/packages/astro/src/assets/types.ts @@ -1,4 +1,4 @@ -import type { WithRequired } from '../type-utils.js'; +import type { OmitPreservingIndexSignature, Simplify, WithRequired } from '../type-utils.js'; import type { VALID_INPUT_FORMATS, VALID_OUTPUT_FORMATS } from './consts.js'; import type { ImageService } from './services/service.js'; @@ -66,10 +66,12 @@ export type SrcSetValue = UnresolvedSrcSetValue & { /** * A yet to be resolved image transform. Used by `getImage` */ -export type UnresolvedImageTransform = Omit & { - src: ImageMetadata | string | Promise<{ default: ImageMetadata }>; - inferSize?: boolean; -} & { +export type UnresolvedImageTransform = Simplify< + OmitPreservingIndexSignature & { + src: ImageMetadata | string | Promise<{ default: ImageMetadata }>; + inferSize?: boolean; + } +> & { [isESMImport]?: never; }; diff --git a/packages/astro/src/cli/add/index.ts b/packages/astro/src/cli/add/index.ts index caa6c38e7405..6ccd4070d5ad 100644 --- a/packages/astro/src/cli/add/index.ts +++ b/packages/astro/src/cli/add/index.ts @@ -9,7 +9,6 @@ import { getDefaultExportOptions } from 'magicast/helpers'; import preferredPM from 'preferred-pm'; import prompts from 'prompts'; import maxSatisfying from 'semver/ranges/max-satisfying.js'; -import { exec } from 'tinyexec'; import yoctoSpinner from 'yocto-spinner'; import { loadTSConfig, @@ -30,6 +29,7 @@ import { appendForwardSlash } from '../../core/path.js'; import { apply as applyPolyfill } from '../../core/polyfill.js'; import { ensureProcessNodeEnv, parseNpmName } from '../../core/util.js'; import { eventCliSession, telemetry } from '../../events/index.js'; +import { exec } from '../exec.js'; import { type Flags, createLoggerFromFlags, flagsToAstroInlineConfig } from '../flags.js'; import { fetchPackageJson, fetchPackageVersions } from '../install-package.js'; @@ -344,7 +344,11 @@ export async function add(names: string[], { flags }: AddOptions) { logger.info('SKIP_FORMAT', msg.success(`Configuration up-to-date.`)); break; } - default: { + // NOTE: failure shouldn't happen in practice because `updateAstroConfig` doesn't return that. + // Pipe this to the same handling as `UpdateResult.updated` for now. + case UpdateResult.failure: + case UpdateResult.updated: + case undefined: { const list = integrations.map((integration) => ` - ${integration.packageName}`).join('\n'); logger.info( 'SKIP_FORMAT', @@ -375,7 +379,7 @@ export async function add(names: string[], { flags }: AddOptions) { `Unknown error parsing tsconfig.json or jsconfig.json. Could not update TypeScript settings.`, ); } - default: + case UpdateResult.updated: logger.info('SKIP_FORMAT', msg.success(`Successfully updated TypeScript settings`)); } } @@ -390,13 +394,16 @@ function isAdapter( // Some examples: // - @astrojs/image => image // - @astrojs/markdown-component => markdownComponent +// - @astrojs/image@beta => image // - astro-cast => cast +// - astro-cast@next => cast // - markdown-astro => markdown // - some-package => somePackage // - example.com => exampleCom // - under_score => underScore // - 123numeric => numeric // - @npm/thingy => npmThingy +// - @npm/thingy@1.2.3 => npmThingy // - @jane/foo.js => janeFoo // - @tokencss/astro => tokencss const toIdent = (name: string) => { @@ -409,7 +416,9 @@ const toIdent = (name: string) => { // convert to camel case .replace(/[.\-_/]+([a-zA-Z])/g, (_, w) => w.toUpperCase()) // drop invalid first characters - .replace(/^[^a-zA-Z$_]+/, ''); + .replace(/^[^a-zA-Z$_]+/, '') + // drop version or tag + .replace(/@.*$/, ''); return `${ident[0].toLowerCase()}${ident.slice(1)}`; }; diff --git a/packages/astro/src/cli/docs/open.ts b/packages/astro/src/cli/docs/open.ts index 6f2fe4c82117..b3702844955e 100644 --- a/packages/astro/src/cli/docs/open.ts +++ b/packages/astro/src/cli/docs/open.ts @@ -1,4 +1,5 @@ -import { type Result, exec } from 'tinyexec'; +import type { Result } from 'tinyexec'; +import { exec } from '../exec.js'; /** * Credit: Azhar22 @@ -8,6 +9,7 @@ const getPlatformSpecificCommand = (): [string] | [string, string[]] => { const isGitPod = Boolean(process.env.GITPOD_REPO_ROOT); const platform = isGitPod ? 'gitpod' : process.platform; + // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check switch (platform) { case 'android': case 'linux': diff --git a/packages/astro/src/cli/exec.ts b/packages/astro/src/cli/exec.ts new file mode 100644 index 000000000000..b2af3c377e73 --- /dev/null +++ b/packages/astro/src/cli/exec.ts @@ -0,0 +1,26 @@ +import { NonZeroExitError, type Options, x } from 'tinyexec'; + +/** + * Improve tinyexec error logging and set `throwOnError` to `true` by default + */ +export function exec(command: string, args?: string[], options?: Partial) { + return x(command, args, { + throwOnError: true, + ...options, + }).then( + (o) => o, + (e) => { + if (e instanceof NonZeroExitError) { + const fullCommand = args?.length + ? `${command} ${args.map((a) => (a.includes(' ') ? `"${a}"` : a)).join(' ')}` + : command; + const message = `The command \`${fullCommand}\` exited with code ${e.exitCode}`; + const newError = new Error(message, e.cause ? { cause: e.cause } : undefined); + (newError as any).stderr = e.output?.stderr; + (newError as any).stdout = e.output?.stdout; + throw newError; + } + throw e; + }, + ); +} diff --git a/packages/astro/src/cli/index.ts b/packages/astro/src/cli/index.ts index a963b84143dd..8511a830496a 100644 --- a/packages/astro/src/cli/index.ts +++ b/packages/astro/src/cli/index.ts @@ -133,8 +133,8 @@ async function runCommand(cmd: string, flags: yargs.Arguments) { } case 'sync': { const { sync } = await import('./sync/index.js'); - const exitCode = await sync({ flags }); - return process.exit(exitCode); + await sync({ flags }); + return; } case 'preferences': { const { preferences } = await import('./preferences/index.js'); diff --git a/packages/astro/src/cli/install-package.ts b/packages/astro/src/cli/install-package.ts index 258fc884fd7a..2b3dc80bd3d3 100644 --- a/packages/astro/src/cli/install-package.ts +++ b/packages/astro/src/cli/install-package.ts @@ -4,10 +4,10 @@ import ci from 'ci-info'; import { bold, cyan, dim, magenta } from 'kleur/colors'; import preferredPM from 'preferred-pm'; import prompts from 'prompts'; -import { exec } from 'tinyexec'; import whichPm from 'which-pm'; import yoctoSpinner from 'yocto-spinner'; import type { Logger } from '../core/logger/core.js'; +import { exec } from './exec.js'; const require = createRequire(import.meta.url); diff --git a/packages/astro/src/cli/sync/index.ts b/packages/astro/src/cli/sync/index.ts index 7ffe662c5c10..7f488836d6cf 100644 --- a/packages/astro/src/cli/sync/index.ts +++ b/packages/astro/src/cli/sync/index.ts @@ -22,10 +22,5 @@ export async function sync({ flags }: SyncOptions) { return 0; } - try { - await _sync(flagsToAstroInlineConfig(flags), { telemetry: true }); - return 0; - } catch (_) { - return 1; - } + await _sync(flagsToAstroInlineConfig(flags), { telemetry: true }); } diff --git a/packages/astro/src/config/index.ts b/packages/astro/src/config/index.ts index 62316377a8bb..534dc4330343 100644 --- a/packages/astro/src/config/index.ts +++ b/packages/astro/src/config/index.ts @@ -1,5 +1,4 @@ import type { UserConfig as ViteUserConfig, UserConfigFn as ViteUserConfigFn } from 'vite'; -import { Logger } from '../core/logger/core.js'; import { createRouteManifest } from '../core/routing/index.js'; import type { AstroInlineConfig, AstroUserConfig, Locales } from '../types/public/config.js'; import { createDevelopmentManifest } from '../vite-plugin-astro-server/plugin.js'; @@ -30,7 +29,7 @@ export function getViteConfig( const [ fs, { mergeConfig }, - { nodeLogDestination }, + { createNodeLogger }, { resolveConfig, createSettings }, { createVite }, { runHookConfigSetup, runHookConfigDone }, @@ -38,16 +37,13 @@ export function getViteConfig( ] = await Promise.all([ import('node:fs'), import('vite'), - import('../core/logger/node.js'), + import('../core/config/logging.js'), import('../core/config/index.js'), import('../core/create-vite.js'), import('../integrations/hooks.js'), import('./vite-plugin-content-listen.js'), ]); - const logger = new Logger({ - dest: nodeLogDestination, - level: 'info', - }); + const logger = createNodeLogger(inlineAstroConfig); const { astroConfig: config } = await resolveConfig(inlineAstroConfig, cmd); let settings = await createSettings(config, userViteConfig.root); settings = await runHookConfigSetup({ settings, command: cmd, logger }); diff --git a/packages/astro/src/core/app/index.ts b/packages/astro/src/core/app/index.ts index 48c6a12aaeae..09b3edea1269 100644 --- a/packages/astro/src/core/app/index.ts +++ b/packages/astro/src/core/app/index.ts @@ -122,14 +122,10 @@ export class App { throw new Error(`Unable to resolve [${specifier}]`); } const bundlePath = this.#manifest.entryModules[specifier]; - switch (true) { - case bundlePath.startsWith('data:'): - case bundlePath.length === 0: { - return bundlePath; - } - default: { - return createAssetLink(bundlePath, this.#manifest.base, this.#manifest.assetsPrefix); - } + if (bundlePath.startsWith('data:') || bundlePath.length === 0) { + return bundlePath; + } else { + return createAssetLink(bundlePath, this.#manifest.base, this.#manifest.assetsPrefix); } }, serverLike: true, diff --git a/packages/astro/src/core/app/node.ts b/packages/astro/src/core/app/node.ts index f7e9fd1f5a23..79e649ed52f8 100644 --- a/packages/astro/src/core/app/node.ts +++ b/packages/astro/src/core/app/node.ts @@ -153,8 +153,10 @@ export class NodeApp extends App { } destination.end(); // the error will be logged by the "on end" callback above - } catch { - destination.end('Internal server error'); + } catch (err) { + destination.write('Internal server error', () => { + err instanceof Error ? destination.destroy(err) : destination.destroy(); + }); } } } diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index a26eca79b029..1a35e06a4b15 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -370,6 +370,7 @@ function getUrlForPath( ending = trailingSlash === 'never' ? '' : '/'; break; } + case 'file': default: { ending = '.html'; break; diff --git a/packages/astro/src/core/build/static-build.ts b/packages/astro/src/core/build/static-build.ts index b000b28b73ae..bf1dddf56a32 100644 --- a/packages/astro/src/core/build/static-build.ts +++ b/packages/astro/src/core/build/static-build.ts @@ -122,24 +122,17 @@ export async function staticBuild( contentFileNames?: string[], ) { const { settings } = opts; - switch (settings.buildOutput) { - case 'static': { - settings.timer.start('Static generate'); - await generatePages(opts, internals); - await cleanServerOutput(opts, ssrOutputChunkNames, contentFileNames, internals); - settings.timer.end('Static generate'); - return; - } - case 'server': { - settings.timer.start('Server generate'); - await generatePages(opts, internals); - await cleanStaticOutput(opts, internals); - await ssrMoveAssets(opts); - settings.timer.end('Server generate'); - return; - } - default: // `settings.buildOutput` will always be one of the above at this point, but TS doesn't know that - return; + if (settings.buildOutput === 'static') { + settings.timer.start('Static generate'); + await generatePages(opts, internals); + await cleanServerOutput(opts, ssrOutputChunkNames, contentFileNames, internals); + settings.timer.end('Static generate'); + } else if (settings.buildOutput === 'server') { + settings.timer.start('Server generate'); + await generatePages(opts, internals); + await cleanStaticOutput(opts, internals); + await ssrMoveAssets(opts); + settings.timer.end('Server generate'); } } diff --git a/packages/astro/src/core/dev/restart.ts b/packages/astro/src/core/dev/restart.ts index e9ac726f62b1..d6c0d0513d77 100644 --- a/packages/astro/src/core/dev/restart.ts +++ b/packages/astro/src/core/dev/restart.ts @@ -176,8 +176,11 @@ export async function createContainerWithAutomaticRestart({ // Restart the Astro dev server instead of Vite's when the API is called by plugins. // Ignore the `forceOptimize` parameter for now. - restart.container.viteServer.restart = () => - handleServerRestart('', restart.container.viteServer); + restart.container.viteServer.restart = async () => { + if (!restart.container.restartInFlight) { + await handleServerRestart('', restart.container.viteServer); + } + }; // Set up shortcuts diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index 3b50c22230c7..6b3c7c141ab2 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1429,7 +1429,7 @@ export const GenerateContentTypesError = { title: 'Failed to generate content types.', message: (errorMessage: string) => `\`astro sync\` command failed to generate content collection types: ${errorMessage}`, - hint: 'Check your `src/content/config.*` file for typos.', + hint: 'This error is often caused by a syntax error inside your content, or your content configuration file. Check your `src/content/config.*` file for typos.', } satisfies ErrorData; /** * @docs diff --git a/packages/astro/src/core/messages.ts b/packages/astro/src/core/messages.ts index 3081c0b6cf7b..57c44b06504a 100644 --- a/packages/astro/src/core/messages.ts +++ b/packages/astro/src/core/messages.ts @@ -298,6 +298,11 @@ export function formatErrorMessage(err: ErrorWithMetadata, showFullStacktrace: b output.push(` ${cyan(underline(docsLink))}`); } + if (showFullStacktrace && err.loc) { + output.push(` ${bold('Location:')}`); + output.push(` ${underline(`${err.loc.file}:${err.loc.line ?? 0}:${err.loc.column ?? 0}`)}`); + } + if (err.stack) { output.push(` ${bold('Stack trace:')}`); output.push(dim(formatErrorStackTrace(err, showFullStacktrace))); diff --git a/packages/astro/src/core/sync/index.ts b/packages/astro/src/core/sync/index.ts index bedef5bccf50..6d16cf541a9d 100644 --- a/packages/astro/src/core/sync/index.ts +++ b/packages/astro/src/core/sync/index.ts @@ -26,6 +26,7 @@ import { AstroError, AstroErrorData, AstroUserError, + type ErrorWithMetadata, createSafeError, isAstroError, } from '../errors/index.js'; @@ -68,17 +69,7 @@ export default async function sync( }); const manifest = await createRouteManifest({ settings, fsMod: fs }, 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; - } + await runHookConfigDone({ settings, logger }); return await syncInternal({ settings, @@ -127,7 +118,6 @@ export async function syncInternal({ const timerStart = performance.now(); - try { if (!skip?.content) { await syncContentCollections(settings, { mode, fs, logger, manifest }); settings.timer.start('Sync content layer'); @@ -163,15 +153,6 @@ export async function syncInternal({ writeInjectedTypes(settings, fs); logger.info('types', `Generated ${dim(getTimeStat(timerStart, performance.now()))}`); - } catch (err) { - const error = createSafeError(err); - logger.error( - 'types', - formatErrorMessage(collectErrorMetadata(error), logger.level() === 'debug') + '\n', - ); - // Will return exit code 1 in CLI - throw error; - } } function getTsReference(type: 'path' | 'types', value: string) { @@ -270,7 +251,7 @@ async function syncContentCollections( } } } catch (e) { - const safeError = createSafeError(e); + const safeError = createSafeError(e) as ErrorWithMetadata; if (isAstroError(e)) { throw e; } @@ -280,6 +261,7 @@ async function syncContentCollections( ...AstroErrorData.GenerateContentTypesError, hint, message: AstroErrorData.GenerateContentTypesError.message(safeError.message), + location: safeError.loc, }, { cause: e }, ); diff --git a/packages/astro/src/env/runtime-constants.ts b/packages/astro/src/env/runtime-constants.ts deleted file mode 100644 index 27b5d72113b2..000000000000 --- a/packages/astro/src/env/runtime-constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const ENV_SYMBOL = Symbol.for('astro:env/dev'); diff --git a/packages/astro/src/env/runtime.ts b/packages/astro/src/env/runtime.ts index 50684f63ef04..a2017b617f84 100644 --- a/packages/astro/src/env/runtime.ts +++ b/packages/astro/src/env/runtime.ts @@ -1,16 +1,12 @@ import { AstroError, AstroErrorData } from '../core/errors/index.js'; import { invalidVariablesToError } from './errors.js'; -import { ENV_SYMBOL } from './runtime-constants.js'; import type { ValidationResultInvalid } from './validators.js'; export { validateEnvVariable, getEnvFieldType } from './validators.js'; export type GetEnv = (key: string) => string | undefined; type OnSetGetEnv = (reset: boolean) => void; -let _getEnv: GetEnv = (key) => { - const env = (globalThis as any)[ENV_SYMBOL] ?? {}; - return env[key]; -}; +let _getEnv: GetEnv = (key) => process.env[key]; export function setGetEnv(fn: GetEnv, reset = false) { _getEnv = fn; diff --git a/packages/astro/src/env/vite-plugin-env.ts b/packages/astro/src/env/vite-plugin-env.ts index 0259ec7fec89..816f460b318f 100644 --- a/packages/astro/src/env/vite-plugin-env.ts +++ b/packages/astro/src/env/vite-plugin-env.ts @@ -9,7 +9,6 @@ import { VIRTUAL_MODULES_IDS_VALUES, } from './constants.js'; import { type InvalidVariable, invalidVariablesToError } from './errors.js'; -import { ENV_SYMBOL } from './runtime-constants.js'; import type { EnvSchema } from './schema.js'; import { getEnvFieldType, validateEnvVariable } from './validators.js'; @@ -29,7 +28,11 @@ export function astroEnv({ settings, mode, sync }: AstroEnvPluginParams): Plugin enforce: 'pre', buildStart() { const loadedEnv = loadEnv(mode, fileURLToPath(settings.config.root), ''); - (globalThis as any)[ENV_SYMBOL] = loadedEnv; + for (const [key, value] of Object.entries(loadedEnv)) { + if (value !== undefined) { + process.env[key] = value; + } + } const validatedVariables = validatePublicVariables({ schema, diff --git a/packages/astro/src/preferences/index.ts b/packages/astro/src/preferences/index.ts index 7c8779b43f4e..e344867392b7 100644 --- a/packages/astro/src/preferences/index.ts +++ b/packages/astro/src/preferences/index.ts @@ -65,6 +65,7 @@ export function isValidKey(key: string): key is PreferenceKey { } export function coerce(key: string, value: unknown) { const type = typeof dget(DEFAULT_PREFERENCES, key); + // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check switch (type) { case 'string': return value; @@ -142,6 +143,7 @@ function getGlobalPreferenceDir() { const { XDG_CONFIG_HOME = path.join(homedir, '.config') } = process.env; return path.join(XDG_CONFIG_HOME, name); }; + // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check switch (process.platform) { case 'darwin': return macos(); diff --git a/packages/astro/src/prefetch/vite-plugin-prefetch.ts b/packages/astro/src/prefetch/vite-plugin-prefetch.ts index 560895b15bfb..c908e7cc2483 100644 --- a/packages/astro/src/prefetch/vite-plugin-prefetch.ts +++ b/packages/astro/src/prefetch/vite-plugin-prefetch.ts @@ -45,15 +45,25 @@ export default function astroPrefetch({ settings }: { settings: AstroSettings }) }, transform(code, id) { // NOTE: Handle replacing the specifiers even if prefetch is disabled so View Transitions - // can import the internal module as not hit runtime issues. + // can import the internal module and not hit runtime issues. if (id.includes(prefetchInternalModuleFsSubpath)) { - return code - .replace('__PREFETCH_PREFETCH_ALL__', JSON.stringify(prefetch?.prefetchAll)) - .replace('__PREFETCH_DEFAULT_STRATEGY__', JSON.stringify(prefetch?.defaultStrategy)) + // We perform a simple replacement with padding so that the code offset is not changed and + // we don't have to generate a sourcemap. This has the assumption that the replaced string + // will always be shorter than the search string to work. + code = code .replace( - '__EXPERIMENTAL_CLIENT_PRERENDER__', - JSON.stringify(settings.config.experimental.clientPrerender), + '__PREFETCH_PREFETCH_ALL__', // length: 25 + `${JSON.stringify(prefetch?.prefetchAll)}`.padEnd(25), + ) + .replace( + '__PREFETCH_DEFAULT_STRATEGY__', // length: 29 + `${JSON.stringify(prefetch?.defaultStrategy)}`.padEnd(29), + ) + .replace( + '__EXPERIMENTAL_CLIENT_PRERENDER__', // length: 33 + `${JSON.stringify(settings.config.experimental.clientPrerender)}`.padEnd(33), ); + return { code, map: null }; } }, }; diff --git a/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts b/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts index 547dea287ce6..09fa8da26d3e 100644 --- a/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts +++ b/packages/astro/src/runtime/client/dev-toolbar/apps/settings.ts @@ -204,6 +204,8 @@ export default { label.append(astroSelect); break; } + case 'number': + case 'text': default: break; } diff --git a/packages/astro/src/runtime/server/render/component.ts b/packages/astro/src/runtime/server/render/component.ts index b7af9cd928a0..eedbcbee12bd 100644 --- a/packages/astro/src/runtime/server/render/component.ts +++ b/packages/astro/src/runtime/server/render/component.ts @@ -44,6 +44,7 @@ function guessRenderers(componentUrl?: string): string[] { case 'jsx': case 'tsx': return ['@astrojs/react', '@astrojs/preact', '@astrojs/solid-js', '@astrojs/vue (jsx)']; + case undefined: default: return [ '@astrojs/react', diff --git a/packages/astro/src/runtime/server/render/util.ts b/packages/astro/src/runtime/server/render/util.ts index 2373d624c127..45c0345e507d 100644 --- a/packages/astro/src/runtime/server/render/util.ts +++ b/packages/astro/src/runtime/server/render/util.ts @@ -7,7 +7,7 @@ import { HTMLString, markHTMLString } from '../escape.js'; export const voidElementNames = /^(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i; const htmlBooleanAttributes = - /^(?:allowfullscreen|async|autofocus|autoplay|controls|default|defer|disabled|disablepictureinpicture|disableremoteplayback|formnovalidate|hidden|loop|nomodule|novalidate|open|playsinline|readonly|required|reversed|scoped|seamless|selected|itemscope)$/i; + /^(?:allowfullscreen|async|autofocus|autoplay|checked|controls|default|defer|disabled|disablepictureinpicture|disableremoteplayback|formnovalidate|hidden|loop|nomodule|novalidate|open|playsinline|readonly|required|reversed|scoped|seamless|selected|itemscope)$/i; const AMPERSAND_REGEX = /&/g; const DOUBLE_QUOTE_REGEX = /"/g; diff --git a/packages/astro/src/type-utils.ts b/packages/astro/src/type-utils.ts index daf1052e1462..1aa816aadb81 100644 --- a/packages/astro/src/type-utils.ts +++ b/packages/astro/src/type-utils.ts @@ -16,6 +16,11 @@ export type OmitIndexSignature = { : KeyType]: ObjectType[KeyType]; }; +// This is an alternative `Omit` implementation that _doesn't_ remove the index signature of an object. +export type OmitPreservingIndexSignature = { + [P in keyof T as Exclude]: T[P]; +}; + // Transform a string into its kebab case equivalent (camelCase -> kebab-case). Useful for CSS-in-JS to CSS. export type Kebab = T extends `${infer F}${infer R}` ? Kebab ? '' : '-'}${Lowercase}`> diff --git a/packages/astro/src/vite-plugin-astro/index.ts b/packages/astro/src/vite-plugin-astro/index.ts index dc5fe80a197e..1214467e2494 100644 --- a/packages/astro/src/vite-plugin-astro/index.ts +++ b/packages/astro/src/vite-plugin-astro/index.ts @@ -189,6 +189,9 @@ export default function astro({ settings, logger }: AstroPluginOptions): vite.Pl return result; } + case 'custom': + case 'template': + case undefined: default: return null; } diff --git a/packages/astro/test/fixtures/postcss/package.json b/packages/astro/test/fixtures/postcss/package.json index e62d2267f682..c83201040674 100644 --- a/packages/astro/test/fixtures/postcss/package.json +++ b/packages/astro/test/fixtures/postcss/package.json @@ -14,6 +14,6 @@ "vue": "^3.5.12" }, "devDependencies": { - "postcss-preset-env": "^10.0.8" + "postcss-preset-env": "^10.0.9" } } diff --git a/packages/astro/test/fixtures/solid-component/package.json b/packages/astro/test/fixtures/solid-component/package.json index 480cffe6c553..85b84749d9ff 100644 --- a/packages/astro/test/fixtures/solid-component/package.json +++ b/packages/astro/test/fixtures/solid-component/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "@astrojs/solid-js": "workspace:*", - "@solidjs/router": "^0.14.10", + "@solidjs/router": "^0.15.1", "@test/solid-jsx-component": "file:./deps/solid-jsx-component", "astro": "workspace:*", "solid-js": "^1.9.3" diff --git a/packages/create-astro/src/data/seasonal.ts b/packages/create-astro/src/data/seasonal.ts index ac3ce5d3befe..c333affa0267 100644 --- a/packages/create-astro/src/data/seasonal.ts +++ b/packages/create-astro/src/data/seasonal.ts @@ -57,6 +57,7 @@ export default function getSeasonalHouston({ fancy }: { fancy?: boolean }): Seas `Your creativity is the gift that keeps on giving!`, ], }; + case undefined: default: return { hats: fancy ? ['๐ŸŽฉ', '๐ŸŽฉ', '๐ŸŽฉ', '๐ŸŽฉ', '๐ŸŽ“', '๐Ÿ‘‘', '๐Ÿงข', '๐Ÿฆ'] : undefined, diff --git a/packages/integrations/svelte/CHANGELOG.md b/packages/integrations/svelte/CHANGELOG.md index 074bf2f606ba..2033e3653e8d 100644 --- a/packages/integrations/svelte/CHANGELOG.md +++ b/packages/integrations/svelte/CHANGELOG.md @@ -19,6 +19,12 @@ - Updated dependencies [[`b6fbdaa`](https://github.com/withastro/astro/commit/b6fbdaa94a9ecec706a99e1938fbf5cd028c72e0), [`89bab1e`](https://github.com/withastro/astro/commit/89bab1e70786123fbe933a9d7a1b80c9334dcc5f), [`d74617c`](https://github.com/withastro/astro/commit/d74617cbd3278feba05909ec83db2d73d57a153e), [`e90f559`](https://github.com/withastro/astro/commit/e90f5593d23043579611452a84b9e18ad2407ef9), [`2df49a6`](https://github.com/withastro/astro/commit/2df49a6fb4f6d92fe45f7429430abe63defeacd6), [`8a53517`](https://github.com/withastro/astro/commit/8a5351737d6a14fc55f1dafad8f3b04079e81af6)]: - astro@5.0.0-alpha.0 +## 5.7.3 + +### Patch Changes + +- [#12390](https://github.com/withastro/astro/pull/12390) [`6fd3d59`](https://github.com/withastro/astro/commit/6fd3d5960f5ab16591bfdb94d1f9b9a9b72006cf) Thanks [@bluwy](https://github.com/bluwy)! - Adds support for Svelte 5's new `@render` syntax while maintaining backward compatibility with traditional slots. + ## 5.7.2 ### Patch Changes diff --git a/packages/integrations/svelte/client-v5.js b/packages/integrations/svelte/client-v5.js index 7a046b5bfd08..123e544f6176 100644 --- a/packages/integrations/svelte/client-v5.js +++ b/packages/integrations/svelte/client-v5.js @@ -8,7 +8,10 @@ export default (element) => { let children = undefined; let $$slots = undefined; + let renderFns = {}; + for (const [key, value] of Object.entries(slotted)) { + // Legacy slot support $$slots ??= {}; if (key === 'default') { $$slots.default = true; @@ -20,6 +23,16 @@ export default (element) => { render: () => `${value}`, })); } + // @render support for Svelte ^5.0 + if (key === 'default') { + renderFns.children = createRawSnippet(() => ({ + render: () => `${value}`, + })); + } else { + renderFns[key] = createRawSnippet(() => ({ + render: () => `${value}`, + })); + } } const bootstrap = client !== 'only' ? hydrate : mount; @@ -28,6 +41,7 @@ export default (element) => { ...props, children, $$slots, + ...renderFns, }); } else { const component = bootstrap(Component, { @@ -36,6 +50,7 @@ export default (element) => { ...props, children, $$slots, + ...renderFns, }, }); existingApplications.set(element, component); diff --git a/packages/integrations/svelte/server-v5.js b/packages/integrations/svelte/server-v5.js index acffd10dfef0..a38d3826042d 100644 --- a/packages/integrations/svelte/server-v5.js +++ b/packages/integrations/svelte/server-v5.js @@ -17,7 +17,10 @@ async function renderToStaticMarkup(Component, props, slotted, metadata) { let children = undefined; let $$slots = undefined; + const renderProps = {}; + for (const [key, value] of Object.entries(slotted)) { + // Legacy slot support $$slots ??= {}; if (key === 'default') { $$slots.default = true; @@ -29,6 +32,11 @@ async function renderToStaticMarkup(Component, props, slotted, metadata) { render: () => `<${tagName} name="${key}">${value}`, })); } + // @render support for Svelte ^5.0 + const slotName = key === 'default' ? 'children' : key; + renderProps[slotName] = createRawSnippet(() => ({ + render: () => `<${tagName}${key !== 'default' ? ` name="${key}"` : ''}>${value}`, + })); } const result = render(Component, { @@ -36,6 +44,7 @@ async function renderToStaticMarkup(Component, props, slotted, metadata) { ...props, children, $$slots, + ...renderProps, }, }); return { html: result.body }; diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 5a96f9495f45..c8677a6072f0 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -48,7 +48,7 @@ "@vitejs/plugin-vue": "^5.1.4", "@vitejs/plugin-vue-jsx": "^4.0.1", "@vue/compiler-sfc": "^3.5.12", - "vite-plugin-vue-devtools": "^7.5.4" + "vite-plugin-vue-devtools": "^7.6.3" }, "devDependencies": { "astro": "workspace:*", diff --git a/packages/telemetry/src/config.ts b/packages/telemetry/src/config.ts index dba5d5fc465a..5f25e2a9dec5 100644 --- a/packages/telemetry/src/config.ts +++ b/packages/telemetry/src/config.ts @@ -21,6 +21,7 @@ function getConfigDir(name: string) { const { XDG_CONFIG_HOME = path.join(homedir, '.config') } = process.env; return path.join(XDG_CONFIG_HOME, name); }; + // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check switch (process.platform) { case 'darwin': return macos(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62961a50a5d7..ccab11355290 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,11 +35,11 @@ importers: specifier: ^0.21.5 version: 0.21.5 eslint: - specifier: ^9.13.0 - version: 9.13.0(jiti@1.21.6) + specifier: ^9.14.0 + version: 9.14.0(jiti@1.21.6) eslint-plugin-regexp: specifier: ^2.6.0 - version: 2.6.0(eslint@9.13.0(jiti@1.21.6)) + version: 2.6.0(eslint@9.14.0(jiti@1.21.6)) globby: specifier: ^14.0.2 version: 14.0.2 @@ -59,8 +59,8 @@ importers: specifier: ~5.6.3 version: 5.6.3 typescript-eslint: - specifier: ^8.11.0 - version: 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) + specifier: ^8.13.0 + version: 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) benchmark: dependencies: @@ -70,6 +70,9 @@ importers: '@astrojs/node': specifier: ^8.3.4 version: 8.3.4(astro@packages+astro) + '@benchmark/adapter': + specifier: workspace:* + version: link:packages/adapter '@benchmark/timer': specifier: workspace:* version: link:packages/timer @@ -97,6 +100,29 @@ importers: tinyexec: specifier: ^0.3.1 version: 0.3.1 + devDependencies: + '@codspeed/tinybench-plugin': + specifier: ^3.1.1 + version: 3.1.1(tinybench@2.9.0) + tinybench: + specifier: ^2.9.0 + version: 2.9.0 + + benchmark/packages/adapter: + dependencies: + server-destroy: + specifier: ^1.0.1 + version: 1.0.1 + devDependencies: + '@types/server-destroy': + specifier: ^1.0.4 + version: 1.0.4 + astro: + specifier: workspace:* + version: link:../../../packages/astro + astro-scripts: + specifier: workspace:* + version: link:../../../scripts benchmark/packages/timer: dependencies: @@ -157,7 +183,7 @@ importers: version: 18.3.1(react@18.3.1) vitest: specifier: ^2.1.4 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.4)(yaml@2.5.1) + version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) devDependencies: '@types/react': specifier: ^18.3.12 @@ -346,8 +372,8 @@ importers: specifier: ^5.0.0-beta.6 version: link:../../packages/astro sass: - specifier: ^1.80.3 - version: 1.80.4 + specifier: ^1.80.6 + version: 1.80.6 sharp: specifier: ^0.33.3 version: 0.33.3 @@ -433,8 +459,8 @@ importers: specifier: ^5.0.0-beta.6 version: link:../../packages/astro vitest: - specifier: ^2.1.3 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.4)(yaml@2.5.1) + specifier: ^2.1.4 + version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) packages/astro: dependencies: @@ -455,7 +481,7 @@ importers: version: 1.1.0 '@rollup/pluginutils': specifier: ^5.1.3 - version: 5.1.3(rollup@4.24.2) + version: 5.1.3(rollup@4.24.4) '@types/cookie': specifier: ^0.6.0 version: 0.6.0 @@ -584,10 +610,10 @@ importers: version: 6.0.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) vitefu: specifier: ^1.0.3 - version: 1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + version: 1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) which-pm: specifier: ^3.0.0 version: 3.0.0 @@ -678,8 +704,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 fs-fixture: - specifier: ^2.5.0 - version: 2.5.0 + specifier: ^2.6.0 + version: 2.6.0 mdast-util-mdx: specifier: ^3.0.0 version: 3.0.0 @@ -705,11 +731,11 @@ importers: specifier: ^0.1.2 version: 0.1.2 rollup: - specifier: ^4.24.2 - version: 4.24.2 + specifier: ^4.24.4 + version: 4.24.4 sass: - specifier: ^1.80.4 - version: 1.80.4 + specifier: ^1.80.6 + version: 1.80.6 undici: specifier: ^6.20.1 version: 6.20.1 @@ -718,7 +744,7 @@ importers: version: 11.0.5 vitest: specifier: ^2.1.1 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.4)(yaml@2.5.1) + version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) packages/astro-prism: dependencies: @@ -970,8 +996,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.80.4 - version: 1.80.4 + specifier: ^1.80.6 + version: 1.80.6 packages/astro/e2e/fixtures/errors: dependencies: @@ -1003,8 +1029,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) sass: - specifier: ^1.80.4 - version: 1.80.4 + specifier: ^1.80.6 + version: 1.80.6 solid-js: specifier: ^1.9.3 version: 1.9.3 @@ -1021,8 +1047,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.80.4 - version: 1.80.4 + specifier: ^1.80.6 + version: 1.80.6 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -3397,8 +3423,8 @@ importers: version: 3.5.12(typescript@5.6.3) devDependencies: postcss-preset-env: - specifier: ^10.0.8 - version: 10.0.8(postcss@8.4.47) + specifier: ^10.0.9 + version: 10.0.9(postcss@8.4.47) packages/astro/test/fixtures/preact-compat-component: dependencies: @@ -3689,8 +3715,8 @@ importers: specifier: workspace:* version: link:../../../../integrations/solid '@solidjs/router': - specifier: ^0.14.10 - version: 0.14.10(solid-js@1.9.3) + specifier: ^0.15.1 + version: 0.15.1(solid-js@1.9.3) '@test/solid-jsx-component': specifier: file:./deps/solid-jsx-component version: link:deps/solid-jsx-component @@ -4084,7 +4110,7 @@ importers: version: link:../../.. vitest: specifier: ^2.1.1 - version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.4)(yaml@2.5.1) + version: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1) packages/astro/test/fixtures/vue-component: dependencies: @@ -4241,7 +4267,7 @@ importers: version: 5.6.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/db/test/fixtures/basics: dependencies: @@ -4397,7 +4423,7 @@ importers: version: link:../../../scripts vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4487,7 +4513,7 @@ importers: version: 0.18.5 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4737,7 +4763,7 @@ importers: version: 11.0.5 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -4925,7 +4951,7 @@ importers: version: 7.25.9(@babel/core@7.26.0) '@preact/preset-vite': specifier: 2.8.2 - version: 2.8.2(@babel/core@7.26.0)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + version: 2.8.2(@babel/core@7.26.0)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) '@preact/signals': specifier: ^1.3.0 version: 1.3.0(preact@10.24.3) @@ -4950,7 +4976,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.3 - version: 4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + version: 4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) ultrahtml: specifier: ^1.5.3 version: 1.5.3 @@ -4978,7 +5004,7 @@ importers: version: 18.3.1(react@18.3.1) vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -5015,7 +5041,7 @@ importers: devDependencies: '@astrojs/node': specifier: ^8.3.3 - version: 8.3.3(astro@packages+astro) + version: 8.3.4(astro@packages+astro) astro: specifier: workspace:* version: link:../../astro @@ -5066,7 +5092,7 @@ importers: dependencies: vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + version: 2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) devDependencies: astro: specifier: workspace:* @@ -5079,13 +5105,13 @@ importers: version: 1.9.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/svelte: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.1.2 - version: 3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + version: 3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) svelte2tsx: specifier: ^0.7.22 version: 0.7.22(svelte@4.2.19)(typescript@5.6.3) @@ -5101,7 +5127,7 @@ importers: version: 4.2.19 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/tailwind: dependencies: @@ -5126,7 +5152,7 @@ importers: version: 3.4.14 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -5143,16 +5169,16 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.1.4 - version: 5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + version: 5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.1 - version: 4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + version: 4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) '@vue/compiler-sfc': specifier: ^3.5.12 version: 3.5.12 vite-plugin-vue-devtools: - specifier: ^7.5.4 - version: 7.5.4(rollup@4.24.2)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + specifier: ^7.6.3 + version: 7.6.3(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) devDependencies: astro: specifier: workspace:* @@ -5168,7 +5194,7 @@ importers: version: 0.18.5 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) vue: specifier: ^3.5.12 version: 3.5.12(typescript@5.6.3) @@ -5402,7 +5428,7 @@ importers: version: 5.6.3 vite: specifier: 6.0.0-beta.6 - version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + version: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) packages/telemetry: dependencies: @@ -5577,11 +5603,6 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/node@8.3.3': - resolution: {integrity: sha512-idrKhnnPSi0ABV+PCQsRQqVNwpOvVDF/+fkwcIiE8sr9J8EMvW9g/oyAt8T4X2OBJ8FUzYPL8klfCdG7r0eB5g==} - peerDependencies: - astro: ^4.2.0 - '@astrojs/node@8.3.4': resolution: {integrity: sha512-xzQs39goN7xh9np9rypGmbgZj3AmmjNxEMj9ZWz5aBERlqqFF3n8A/w/uaJeZ/bkHS60l1BXVS0tgsQt9MFqBA==} peerDependencies: @@ -5894,51 +5915,59 @@ packages: bundledDependencies: - is-unicode-supported + '@codspeed/core@3.1.1': + resolution: {integrity: sha512-ONhERVDAtkm0nc+FYPivDozoMOlNUP2BWRBFDJYATGA18Iap5Kd2mZ1/Lwz54RB5+g+3YDOpsvotHa4hd3Q+7Q==} + + '@codspeed/tinybench-plugin@3.1.1': + resolution: {integrity: sha512-LVF4End0kDU9V7CzuwAcmngSPJNnpduPnr+csOKvcG++FsYwfUuBJ1rvLPtv6yTkvxpUmUEsj6VA7/AEIBGZVw==} + peerDependencies: + tinybench: ^2.3.0 + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@csstools/cascade-layer-name-parser@2.0.3': - resolution: {integrity: sha512-KUcKk2oe7666aaeY+yxhy5TB0AN5x2Pi/ZJ23fbO8A0TEcLpA+VhVIw9s+6hTsAQHr8Fqc8p4RClsxxsmuIn1A==} + '@csstools/cascade-layer-name-parser@2.0.4': + resolution: {integrity: sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.3 - '@csstools/css-tokenizer': ^3.0.2 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 '@csstools/color-helpers@5.0.1': resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} - '@csstools/css-calc@2.0.3': - resolution: {integrity: sha512-UAhqOt43s8e4MfLAnIS1OmB/lDN32t03YObodmFyy60+1i6ZsT2rlwBEdajH6zDFS/TGogsvgMamV5GzZt2muA==} + '@csstools/css-calc@2.0.4': + resolution: {integrity: sha512-8/iCd8lH10gKNsq5detnbGWiFd6PXK2wB8wjE6fHNNhtqvshyMrIJgffwRcw6yl/gzGTH+N1i+KRhjqHxqYTmg==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.3 - '@csstools/css-tokenizer': ^3.0.2 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-color-parser@3.0.4': - resolution: {integrity: sha512-kXviLfsxXmx2YcUPd478vuJd/s21EFTmxcgjC3danRhLa2zqfqZMTRonwRRSckezmgn7nlOCXpk3tZAKbFeihQ==} + '@csstools/css-color-parser@3.0.5': + resolution: {integrity: sha512-4Wo8raj9YF3PnZ5iGrAl+BSsk2MYBOEUS/X4k1HL9mInhyCVftEG02MywdvelXlwZGUF2XTQ0qj9Jd398mhqrw==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.3 - '@csstools/css-tokenizer': ^3.0.2 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-parser-algorithms@3.0.3': - resolution: {integrity: sha512-15WQTALDyxAwSgAvLt7BksAssiSrNNhTv4zM7qX9U6R7FtpNskVVakzWQlYODlwPwXhGpKPmB10LM943pxMe7w==} + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.2 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-tokenizer@3.0.2': - resolution: {integrity: sha512-IuTRcD53WHsXPCZ6W7ubfGqReTJ9Ra0yRRFmXYP/Re8hFYYfoIYIK4080X5luslVLWimhIeFq0hj09urVMQzTw==} + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} engines: {node: '>=18'} - '@csstools/media-query-list-parser@4.0.1': - resolution: {integrity: sha512-dMr9PcN2B0TzxBFk6r+08Ln39aCti7SJeXB671JcXB1ZTPHqs4hpheRpL2vPPGRyXiQwW/UexvOej7Nw0Janxg==} + '@csstools/media-query-list-parser@4.0.2': + resolution: {integrity: sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.3 - '@csstools/css-tokenizer': ^3.0.2 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 '@csstools/postcss-cascade-layers@5.0.1': resolution: {integrity: sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==} @@ -5946,26 +5975,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.4': - resolution: {integrity: sha512-lL+ITQgwmAZd0/yBWkNIKzud2jQXeetFH9PtmQ/tWcD+FfQUjCGWZ8u6y6Pta64PbGPm1qn7+WgSNop+TC6pMQ==} + '@csstools/postcss-color-function@4.0.5': + resolution: {integrity: sha512-6dHr2NDsBMiZCPkGDi2qMfIbzV2kWV8Dh7SVb1FZGnN/r2TI4TSAkVF8rCG5L70yQZHMcQGB84yp8Zm+RGhoHA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.4': - resolution: {integrity: sha512-Jp6hI6T7Iq0+7VzEn5CbUymvo8W3x8xAJLVNRIQ/nn8iXsSprUtDo6DznDa7Uajz9qq70AwNK4Js1gmnZGKs3Q==} + '@csstools/postcss-color-mix-function@3.0.5': + resolution: {integrity: sha512-jgq0oGbit7TxWYP8y2hWWfV64xzcAgJk54PBYZ2fDrRgEDy1l5YMCrFawnn+5JETh/E1jjXPDFhFEYhwr3vA3g==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-content-alt-text@2.0.3': - resolution: {integrity: sha512-7fY4hfR77UezWoEu2NBMc550FL2NKr+FbcMdZLDIF5qkbn9rwW3l0+RXI7g6GmUPXeEwtVApp39xa55Cx1WKgw==} + '@csstools/postcss-content-alt-text@2.0.4': + resolution: {integrity: sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.3': - resolution: {integrity: sha512-7d626jcY3Za5uXoG3FQ4laZ9zjIpp2fzpqfAQO902n2p9nguaoCgfcM6cu9Ot+av2OEhf6YeaG69L0rhv2GfNg==} + '@csstools/postcss-exponential-functions@2.0.4': + resolution: {integrity: sha512-xmzFCGTkkLDs7q9vVaRGlnu8s51lRRJzHsaJ/nXmkQuyg0q7gh7rTbJ0bY5sSVet+KB7MTIxRXRUCl2tm7RODA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -5976,20 +6005,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.4': - resolution: {integrity: sha512-3VidlUzT5VNKhxLSUS79B7EWk+KlF4cRdZPyg/T7q/QYI544a3o3/KoraEDw/np3Px1/9rljBJCgS5uNsRFBtQ==} + '@csstools/postcss-gamut-mapping@2.0.5': + resolution: {integrity: sha512-VQDayRhC/Mg1fuo8/4F43La5aROgvVyqtCqdNyGvRKi6L1+zXfwQ583nImi7k/gn2GNJH82Bf9mutTuT1GtXzA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.4': - resolution: {integrity: sha512-t2GrRZ/pnR7FJHvUoDl3gspwWGj2RCE7h9erAqs6eLp5oNh6qf7OzL6HwV6RcfGUjx49sliBmXxoDrReBuzncw==} + '@csstools/postcss-gradients-interpolation-method@5.0.5': + resolution: {integrity: sha512-l3ShDdAt/szbyBh3Jz27MRFt5WPAbnVCMsU7Vs7EbBxJQNgVDrcu1APBB2nPagDJOyhI6/IahuW7nb6grWVTpA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.4': - resolution: {integrity: sha512-1kDydqBP16urjshTYdB28zSnWZXoTJyeToGhMkVEPDm4Mw9+JPe+PO2DZhqHXz2LzAMiHMAgOwp3oCBN2MRwoQ==} + '@csstools/postcss-hwb-function@4.0.5': + resolution: {integrity: sha512-bPn/SQyiiYjWkwK2ykc7O9LliMR50YfUGukd6jQI2okHzB7NxNt/IS45tS1Muk7Hhf3B9Lbmg1Ofq36tBmM92Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6012,8 +6041,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@2.0.6': - resolution: {integrity: sha512-eo9WPWkFGEfbhOgfHrIFTZlK8goW/rLYRfM2r8Rghl1NTvXnQ8qpMEmd67iXwMdfoKl6nMWs5sTTVLflpa2+EA==} + '@csstools/postcss-light-dark-function@2.0.7': + resolution: {integrity: sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6042,20 +6071,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@3.0.2': - resolution: {integrity: sha512-oog7VobKvrS34oyUKslI6wCphtJxx0ldiA8RToPQ0HXPWNiXXSM7IbgwOTImJKTIUjo3eL7o5uuPxeu5MsnkvA==} + '@csstools/postcss-logical-viewport-units@3.0.3': + resolution: {integrity: sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.3': - resolution: {integrity: sha512-+Vr5eQ/ZSL0hdARb/1sohoYtYnYxGi94HuzgmzjZ7jnruEDYJaWux6UtS2gXY/cWrsx/lmJCJNFJO87/5hcgCQ==} + '@csstools/postcss-media-minmax@2.0.4': + resolution: {integrity: sha512-zgdBOCI9aKoy5GK9tb/3ve0pl7vH0HJg7rfQEWT3TZiIKh7XEWucDSTSwnwgdgtgz50UxrOfbK+C59M+u2fE2Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.3': - resolution: {integrity: sha512-kyLO69jXq/BIkOJeCi7++uzarm9qb5La1K1cL36e+QUnV6wto7UtFuzjelT3PEuCnIikj9JCbDCYDfGzCmkhQw==} + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4': + resolution: {integrity: sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6072,8 +6101,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.4': - resolution: {integrity: sha512-IDPtqifrFjIjdMBphc8ebbq7YdMReEBjkoEZOVrm1I+ZfclgMim9HAE7+V0zCFaP4WyKhVSodKAWWh5Uj4cDLA==} + '@csstools/postcss-oklab-function@4.0.5': + resolution: {integrity: sha512-19bsJQFyJNSEhpaVq0Mq1E0HDXfx8qMHa/bR1MaHr1UD4DWvM2/J6YXb9OVGS7eFl92Y3c84Yggn9uFv13vsiQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6084,8 +6113,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.4': - resolution: {integrity: sha512-vfjMNPHTZ3SZbTuZ30tNvplQuxEaubUugd4P6PeXfxSKcAMUUH1weVTMaY75MsT5RpHw0m7GRyLDNwwAKXGm1g==} + '@csstools/postcss-relative-color-syntax@3.0.5': + resolution: {integrity: sha512-5VrE4hAwv/ZpuL1Yo0ZGGFi1QPpIikp/rzz7LnpQ31ACQVRIA5/M9qZmJbRlZVsJ4bUFSQ3dq6kHSHrCt2uM6Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6096,8 +6125,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.3': - resolution: {integrity: sha512-xy/cT/a51xecPw0T2GIwuCTc4IwIB5woznFAbhOHaJvBi6cdUJyQPeUjwgpOQkA31JEl11T0oGRP0MBDEdLOrg==} + '@csstools/postcss-stepped-value-functions@4.0.4': + resolution: {integrity: sha512-JjShuWZkmIOT8EfI7lYjl7V5qM29LNDdnnSo5O7v/InJJHfeiQjtxyAaZzKGXzpkghPrCAcgLfJ+IyqTdXo7IA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6108,8 +6137,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.3': - resolution: {integrity: sha512-OTtGIJglcGqSMyZo6yYrt7c+eOqI7N38oh3IWfpqrDnjFtqvR7n2fDSSYPrkR9KjT4alCXNPV9cC7ExXFCG6Uw==} + '@csstools/postcss-trigonometric-functions@4.0.4': + resolution: {integrity: sha512-nn+gWTZZlSnwbyUtGQCnvBXIx1TX+HVStvIm3221dWGQvp47bB5giMBbuAK4a/UJGBbfDQhGKEbYq++WWM1i1A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -6450,8 +6479,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.18.0': @@ -6466,8 +6495,8 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.13.0': - resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==} + '@eslint/js@9.14.0': + resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -6484,12 +6513,12 @@ packages: '@fontsource/montserrat@5.1.0': resolution: {integrity: sha512-HB4+rWP9Y8g6T9RGRVJk2SvAJtx2eBAXuivvPOqQdD806/9WESUfucfH9LqFj3bGgdhNCfh0Rv0NGuwEmBLRiw==} - '@humanfs/core@0.19.0': - resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.5': - resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': @@ -6500,6 +6529,10 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + '@img/sharp-darwin-arm64@0.33.3': resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==} engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} @@ -6874,93 +6907,93 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.24.2': - resolution: {integrity: sha512-ufoveNTKDg9t/b7nqI3lwbCG/9IJMhADBNjjz/Jn6LxIZxD7T5L8l2uO/wD99945F1Oo8FvgbbZJRguyk/BdzA==} + '@rollup/rollup-android-arm-eabi@4.24.4': + resolution: {integrity: sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.24.2': - resolution: {integrity: sha512-iZoYCiJz3Uek4NI0J06/ZxUgwAfNzqltK0MptPDO4OR0a88R4h0DSELMsflS6ibMCJ4PnLvq8f7O1d7WexUvIA==} + '@rollup/rollup-android-arm64@4.24.4': + resolution: {integrity: sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.24.2': - resolution: {integrity: sha512-/UhrIxobHYCBfhi5paTkUDQ0w+jckjRZDZ1kcBL132WeHZQ6+S5v9jQPVGLVrLbNUebdIRpIt00lQ+4Z7ys4Rg==} + '@rollup/rollup-darwin-arm64@4.24.4': + resolution: {integrity: sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.2': - resolution: {integrity: sha512-1F/jrfhxJtWILusgx63WeTvGTwE4vmsT9+e/z7cZLKU8sBMddwqw3UV5ERfOV+H1FuRK3YREZ46J4Gy0aP3qDA==} + '@rollup/rollup-darwin-x64@4.24.4': + resolution: {integrity: sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.24.2': - resolution: {integrity: sha512-1YWOpFcGuC6iGAS4EI+o3BV2/6S0H+m9kFOIlyFtp4xIX5rjSnL3AwbTBxROX0c8yWtiWM7ZI6mEPTI7VkSpZw==} + '@rollup/rollup-freebsd-arm64@4.24.4': + resolution: {integrity: sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.24.2': - resolution: {integrity: sha512-3qAqTewYrCdnOD9Gl9yvPoAoFAVmPJsBvleabvx4bnu1Kt6DrB2OALeRVag7BdWGWLhP1yooeMLEi6r2nYSOjg==} + '@rollup/rollup-freebsd-x64@4.24.4': + resolution: {integrity: sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.24.2': - resolution: {integrity: sha512-ArdGtPHjLqWkqQuoVQ6a5UC5ebdX8INPuJuJNWRe0RGa/YNhVvxeWmCTFQ7LdmNCSUzVZzxAvUznKaYx645Rig==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.4': + resolution: {integrity: sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.2': - resolution: {integrity: sha512-B6UHHeNnnih8xH6wRKB0mOcJGvjZTww1FV59HqJoTJ5da9LCG6R4SEBt6uPqzlawv1LoEXSS0d4fBlHNWl6iYw==} + '@rollup/rollup-linux-arm-musleabihf@4.24.4': + resolution: {integrity: sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.2': - resolution: {integrity: sha512-kr3gqzczJjSAncwOS6i7fpb4dlqcvLidqrX5hpGBIM1wtt0QEVtf4wFaAwVv8QygFU8iWUMYEoJZWuWxyua4GQ==} + '@rollup/rollup-linux-arm64-gnu@4.24.4': + resolution: {integrity: sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.2': - resolution: {integrity: sha512-TDdHLKCWgPuq9vQcmyLrhg/bgbOvIQ8rtWQK7MRxJ9nvaxKx38NvY7/Lo6cYuEnNHqf6rMqnivOIPIQt6H2AoA==} + '@rollup/rollup-linux-arm64-musl@4.24.4': + resolution: {integrity: sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.2': - resolution: {integrity: sha512-xv9vS648T3X4AxFFZGWeB5Dou8ilsv4VVqJ0+loOIgDO20zIhYfDLkk5xoQiej2RiSQkld9ijF/fhLeonrz2mw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': + resolution: {integrity: sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.2': - resolution: {integrity: sha512-tbtXwnofRoTt223WUZYiUnbxhGAOVul/3StZ947U4A5NNjnQJV5irKMm76G0LGItWs6y+SCjUn/Q0WaMLkEskg==} + '@rollup/rollup-linux-riscv64-gnu@4.24.4': + resolution: {integrity: sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.2': - resolution: {integrity: sha512-gc97UebApwdsSNT3q79glOSPdfwgwj5ELuiyuiMY3pEWMxeVqLGKfpDFoum4ujivzxn6veUPzkGuSYoh5deQ2Q==} + '@rollup/rollup-linux-s390x-gnu@4.24.4': + resolution: {integrity: sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.2': - resolution: {integrity: sha512-jOG/0nXb3z+EM6SioY8RofqqmZ+9NKYvJ6QQaa9Mvd3RQxlH68/jcB/lpyVt4lCiqr04IyaC34NzhUqcXbB5FQ==} + '@rollup/rollup-linux-x64-gnu@4.24.4': + resolution: {integrity: sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.2': - resolution: {integrity: sha512-XAo7cJec80NWx9LlZFEJQxqKOMz/lX3geWs2iNT5CHIERLFfd90f3RYLLjiCBm1IMaQ4VOX/lTC9lWfzzQm14Q==} + '@rollup/rollup-linux-x64-musl@4.24.4': + resolution: {integrity: sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.2': - resolution: {integrity: sha512-A+JAs4+EhsTjnPQvo9XY/DC0ztaws3vfqzrMNMKlwQXuniBKOIIvAAI8M0fBYiTCxQnElYu7mLk7JrhlQ+HeOw==} + '@rollup/rollup-win32-arm64-msvc@4.24.4': + resolution: {integrity: sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.2': - resolution: {integrity: sha512-ZhcrakbqA1SCiJRMKSU64AZcYzlZ/9M5LaYil9QWxx9vLnkQ9Vnkve17Qn4SjlipqIIBFKjBES6Zxhnvh0EAEw==} + '@rollup/rollup-win32-ia32-msvc@4.24.4': + resolution: {integrity: sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.2': - resolution: {integrity: sha512-2mLH46K1u3r6uwc95hU+OR9q/ggYMpnS7pSp83Ece1HUQgF9Nh/QwTK5rcgbFnV9j+08yBrU5sA/P0RK2MSBNA==} + '@rollup/rollup-win32-x64-msvc@4.24.4': + resolution: {integrity: sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==} cpu: [x64] os: [win32] @@ -6983,8 +7016,8 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@solidjs/router@0.14.10': - resolution: {integrity: sha512-5B8LVgvvXijfXyXWPVLUm7RQ05BhjIpAyRkYVDZtrR3OaSvftXobWc6qSEwk4ICLoGi/IE9CUp2LUdCBIs9AXg==} + '@solidjs/router@0.15.1': + resolution: {integrity: sha512-lb5BRBqQqii/1dQCglx2K68xLkgu7QcrcajWKuuEx6FHTsK/hp5IgVhjy6RzPMLj+SFyrrRi/ldirCFNxtzh0Q==} peerDependencies: solid-js: ^1.8.6 @@ -7058,9 +7091,6 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -7169,8 +7199,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/eslint-plugin@8.11.0': - resolution: {integrity: sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==} + '@typescript-eslint/eslint-plugin@8.13.0': + resolution: {integrity: sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -7180,8 +7210,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.11.0': - resolution: {integrity: sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==} + '@typescript-eslint/parser@8.13.0': + resolution: {integrity: sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7190,12 +7220,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.11.0': - resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} + '@typescript-eslint/scope-manager@8.13.0': + resolution: {integrity: sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.11.0': - resolution: {integrity: sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==} + '@typescript-eslint/type-utils@8.13.0': + resolution: {integrity: sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -7203,12 +7233,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.11.0': - resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} + '@typescript-eslint/types@8.13.0': + resolution: {integrity: sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.11.0': - resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} + '@typescript-eslint/typescript-estree@8.13.0': + resolution: {integrity: sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -7216,14 +7246,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.11.0': - resolution: {integrity: sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==} + '@typescript-eslint/utils@8.13.0': + resolution: {integrity: sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.11.0': - resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} + '@typescript-eslint/visitor-keys@8.13.0': + resolution: {integrity: sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/twoslash@3.1.0': @@ -7341,16 +7371,16 @@ packages: '@vue/compiler-ssr@3.5.12': resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} - '@vue/devtools-core@7.5.4': - resolution: {integrity: sha512-igB2iUKsCUrXkp0wKLn3n5X8jz3AgXWk7if0QpLu3Do16QmlTO0e+/VvTpX0ZbLMh8OOAxDKyfPvJMMO/4QJ5w==} + '@vue/devtools-core@7.6.3': + resolution: {integrity: sha512-C7FOuh3Z+EmXXzDU9eRjHQL7zW7/CFovM6yCNNpUb+zXxhrn4fiqTum+a3gNau9DuzYfEtQXwZ9F7MeK0JKYVw==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.5.4': - resolution: {integrity: sha512-0i7WFgc1B2TL52tstn82zlb9opSA0aIiHfkUYFXtZb8CIpmlFMTkHtgwVl6PMWNBj3LNhYou1YJCLpCYvJYYoA==} + '@vue/devtools-kit@7.6.3': + resolution: {integrity: sha512-ETsFc8GlOp04rSFN79tB2TpVloWfsSx9BoCSElV3w3CaJTSBfz42KsIi5Ka+dNTJs1jY7QVLTDeoBmUGgA9h2A==} - '@vue/devtools-shared@7.5.4': - resolution: {integrity: sha512-dwuq4YmwTyLc7eBOqX63s3JB8il7qnKsNgENglSMkUPwiItHkVAYYfPESN1rxSdYkl1RCux1l5TBidYqfUDNAA==} + '@vue/devtools-shared@7.6.3': + resolution: {integrity: sha512-wJW5QF27i16+sNQIaes8QoEZg1eqEgF83GkiPUlEQe9k7ZoHXHV7PRrnrxOKem42sIHPU813J2V/ZK1uqTJe6g==} '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} @@ -7500,6 +7530,9 @@ packages: peerDependencies: postcss: ^8.1.0 + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -8151,20 +8184,20 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-scope@8.1.0: - resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.13.0: - resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==} + eslint@9.14.0: + resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -8177,8 +8210,8 @@ packages: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -8302,6 +8335,10 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} @@ -8316,6 +8353,15 @@ packages: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -8351,8 +8397,8 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs-fixture@2.5.0: - resolution: {integrity: sha512-AzCSCaChZORdNcSa9w9IBnGWhDP2Bv/lOso0P9mAl5nJw2s7pjSEoDaHtzZ9VGIHQlSXR2fuTPO7ln1dM4HTNQ==} + fs-fixture@2.6.0: + resolution: {integrity: sha512-XQNHBGYgth08BSgThjQNrUuzE9XUmr7CDgGFStKaAeB9Oq+kxUHd1zS6hp1YO11B501Sjv9Jq+B2VFn+CdwmIg==} engines: {node: '>=18.0.0'} fs-minipass@2.1.0: @@ -8817,6 +8863,10 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash.chunk@4.2.0: resolution: {integrity: sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==} @@ -9232,6 +9282,10 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + node-html-parser@6.1.13: resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} @@ -9326,6 +9380,10 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@6.1.0: resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} engines: {node: '>=18'} @@ -9338,6 +9396,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-map@2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} @@ -9402,6 +9464,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -9490,8 +9556,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.4: - resolution: {integrity: sha512-bK5EYM9f/F8zqbVT+Etky6sZBR3XedXRasF0cFxi2uX3JOKrkEw+YfRFaVLAYA934RuypGZiqTgDXVpVPnaoDQ==} + postcss-color-functional-notation@7.0.5: + resolution: {integrity: sha512-zW97tq5t2sSSSZQcIS4y6NDZj79zVv8hrBIJ4PSFZFmMBcjYqCt8sRXFGIYZohCpfFHmimMNqJje2Qd3qqMNdg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9508,20 +9574,20 @@ packages: peerDependencies: postcss: ^8.4 - postcss-custom-media@11.0.4: - resolution: {integrity: sha512-fz6+8rikAQZHsDwy2EEdeE0JlOaYRz1O0WNyrENkC21nEQfp2etnLcP4V1igieGG5mKokfLmH6lLrBR8kMRUfA==} + postcss-custom-media@11.0.5: + resolution: {integrity: sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-properties@14.0.3: - resolution: {integrity: sha512-zCc5y6cilcZXld3RK0glb5OR9p6i/54ro7Dul2drDI7kLCIZC1uiblHGociomp2fwBet3kRFf9DpG4lJtz5yhw==} + postcss-custom-properties@14.0.4: + resolution: {integrity: sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@8.0.3: - resolution: {integrity: sha512-VozjI6h5AxtMWtsI7IdP/LYpioe2Ha0Cg0JwHiifIyIM/HIoRGcRPnbbrywbbG6uPagJH/l2xIOyVddAIqB/KA==} + postcss-custom-selectors@8.0.4: + resolution: {integrity: sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9579,8 +9645,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.4: - resolution: {integrity: sha512-BkNIkLVZDPJo5EYTfdri/tllk1y83zZET9Imn6gbt8YmeK4SnOiLN8Tfr3DSFk4sIHYbuuQp5UmPXsb9J2mNBQ==} + postcss-lab-function@7.0.5: + resolution: {integrity: sha512-q2M8CfQbjHxbwv1GPAny05EVuj0WByUgq/OWKgpfbTHnMchtUqsVQgaW1mztjSZ4UPufwuTLB14fmFGsoTE/VQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9638,8 +9704,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.0.8: - resolution: {integrity: sha512-rN7wmrc4GDvsCR8o1J0c0lexJI7x7ibCoSJ6Xoz/lAyzXzJhq6MYtfQGby5hMU0eqQTQc8JDEcREJaA7kYy7aQ==} + postcss-preset-env@10.0.9: + resolution: {integrity: sha512-mpfJWMAW6szov+ifW9HpNUUZE3BoXoHc4CDzNQHdH2I4CwsqulQ3bpFNUR6zh4tg0BUcqM7UUAbzG4UTel8QYw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -9737,6 +9803,9 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -9951,8 +10020,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.24.2: - resolution: {integrity: sha512-do/DFGq5g6rdDhdpPq5qb2ecoczeK6y+2UAjdJ5trjQJj5f1AiVdLRWRc9A9/fFukfvJRgM0UXzxBIYMovm5ww==} + rollup@4.24.4: + resolution: {integrity: sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -9978,8 +10047,8 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sass@1.80.4: - resolution: {integrity: sha512-rhMQ2tSF5CsuuspvC94nPM9rToiAFw2h3JTrLlgmNw1MH79v8Cr3DH6KF6o6r+8oofY3iYVPUf66KzC8yuVN1w==} + sass@1.80.6: + resolution: {integrity: sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==} engines: {node: '>=14.0.0'} hasBin: true @@ -10124,10 +10193,6 @@ packages: peerDependencies: solid-js: ^1.3 - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -10444,8 +10509,8 @@ packages: typescript-auto-import-cache@0.3.3: resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@8.11.0: - resolution: {integrity: sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA==} + typescript-eslint@8.13.0: + resolution: {integrity: sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -10605,8 +10670,8 @@ packages: '@testing-library/jest-dom': optional: true - vite-plugin-vue-devtools@7.5.4: - resolution: {integrity: sha512-6yTcGrF+YdplDhNiNCkwj23BQDHA/jp06FR4Bo3rui1GW+8VdFcc26au2gtynPwRDNJXNueTxiVtVb6dq+lNZA==} + vite-plugin-vue-devtools@7.6.3: + resolution: {integrity: sha512-p1rZMKzreWqxj9U05RaxY1vDoOhGYhA6iX8vKfo4nD6jqTmVoGjjk+U1g5HYwwTCdr/eck3kzO2f4gnPCjqVKA==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 @@ -11110,14 +11175,6 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/node@8.3.3(astro@packages+astro)': - dependencies: - astro: link:packages/astro - send: 0.18.0 - server-destroy: 1.0.1 - transitivePeerDependencies: - - supports-color - '@astrojs/node@8.3.4(astro@packages+astro)': dependencies: astro: link:packages/astro @@ -11572,38 +11629,55 @@ snapshots: picocolors: 1.1.0 sisteransi: 1.0.5 + '@codspeed/core@3.1.1': + dependencies: + axios: 1.7.7 + find-up: 6.3.0 + form-data: 4.0.0 + node-gyp-build: 4.8.2 + transitivePeerDependencies: + - debug + + '@codspeed/tinybench-plugin@3.1.1(tinybench@2.9.0)': + dependencies: + '@codspeed/core': 3.1.1 + stack-trace: 1.0.0-pre2 + tinybench: 2.9.0 + transitivePeerDependencies: + - debug + '@colors/colors@1.5.0': optional: true - '@csstools/cascade-layer-name-parser@2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2)': + '@csstools/cascade-layer-name-parser@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/color-helpers@5.0.1': {} - '@csstools/css-calc@2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2)': + '@csstools/css-calc@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-color-parser@3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2)': + '@csstools/css-color-parser@3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2)': + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-tokenizer@3.0.2': {} + '@csstools/css-tokenizer@3.0.3': {} - '@csstools/media-query-list-parser@4.0.1(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2)': + '@csstools/media-query-list-parser@4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-cascade-layers@5.0.1(postcss@8.4.47)': dependencies: @@ -11611,37 +11685,37 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 7.0.0 - '@csstools/postcss-color-function@4.0.4(postcss@8.4.47)': + '@csstools/postcss-color-function@4.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-color-mix-function@3.0.4(postcss@8.4.47)': + '@csstools/postcss-color-mix-function@3.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-content-alt-text@2.0.3(postcss@8.4.47)': + '@csstools/postcss-content-alt-text@2.0.4(postcss@8.4.47)': dependencies: - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-exponential-functions@2.0.3(postcss@8.4.47)': + '@csstools/postcss-exponential-functions@2.0.4(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.4.47)': @@ -11650,27 +11724,27 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.4(postcss@8.4.47)': + '@csstools/postcss-gamut-mapping@2.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 - '@csstools/postcss-gradients-interpolation-method@5.0.4(postcss@8.4.47)': + '@csstools/postcss-gradients-interpolation-method@5.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-hwb-function@4.0.4(postcss@8.4.47)': + '@csstools/postcss-hwb-function@4.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 @@ -11692,10 +11766,10 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 7.0.0 - '@csstools/postcss-light-dark-function@2.0.6(postcss@8.4.47)': + '@csstools/postcss-light-dark-function@2.0.7(postcss@8.4.47)': dependencies: - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 @@ -11717,25 +11791,25 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.2(postcss@8.4.47)': + '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.4.47)': dependencies: - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-tokenizer': 3.0.3 '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 - '@csstools/postcss-media-minmax@2.0.3(postcss@8.4.47)': + '@csstools/postcss-media-minmax@2.0.4(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 - '@csstools/media-query-list-parser': 4.0.1(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) + '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) postcss: 8.4.47 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.3(postcss@8.4.47)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.4.47)': dependencies: - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 - '@csstools/media-query-list-parser': 4.0.1(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) postcss: 8.4.47 '@csstools/postcss-nested-calc@4.0.0(postcss@8.4.47)': @@ -11749,11 +11823,11 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.4(postcss@8.4.47)': + '@csstools/postcss-oklab-function@4.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 @@ -11763,11 +11837,11 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@3.0.4(postcss@8.4.47)': + '@csstools/postcss-relative-color-syntax@3.0.5(postcss@8.4.47)': dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 @@ -11777,11 +11851,11 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 7.0.0 - '@csstools/postcss-stepped-value-functions@4.0.3(postcss@8.4.47)': + '@csstools/postcss-stepped-value-functions@4.0.4(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.4.47)': @@ -11790,11 +11864,11 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.3(postcss@8.4.47)': + '@csstools/postcss-trigonometric-functions@4.0.4(postcss@8.4.47)': dependencies: - '@csstools/css-calc': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-calc': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 '@csstools/postcss-unset-value@4.0.0(postcss@8.4.47)': @@ -11982,12 +12056,12 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@1.21.6))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0(jiti@1.21.6))': dependencies: - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.18.0': dependencies: @@ -12003,7 +12077,7 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 10.2.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 @@ -12013,7 +12087,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.13.0': {} + '@eslint/js@9.14.0': {} '@eslint/object-schema@2.1.4': {} @@ -12025,17 +12099,19 @@ snapshots: '@fontsource/montserrat@5.1.0': {} - '@humanfs/core@0.19.0': {} + '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.5': + '@humanfs/node@0.16.6': dependencies: - '@humanfs/core': 0.19.0 + '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.1': {} + '@humanwhocodes/retry@0.4.1': {} + '@img/sharp-darwin-arm64@0.33.3': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.2 @@ -12329,6 +12405,7 @@ snapshots: '@parcel/watcher-win32-arm64': 2.4.1 '@parcel/watcher-win32-ia32': 2.4.1 '@parcel/watcher-win32-x64': 2.4.1 + optional: true '@pkgjs/parseargs@0.11.0': optional: true @@ -12339,12 +12416,12 @@ snapshots: '@polka/url@1.0.0-next.25': {} - '@preact/preset-vite@2.8.2(@babel/core@7.26.0)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))': + '@preact/preset-vite@2.8.2(@babel/core@7.26.0)(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + '@prefresh/vite': 2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.3.7 @@ -12354,7 +12431,7 @@ snapshots: resolve: 1.22.8 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - preact - supports-color @@ -12374,7 +12451,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))': + '@prefresh/vite@2.4.5(preact@10.24.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -12382,7 +12459,7 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.24.3 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -12391,66 +12468,66 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.3(rollup@4.24.2)': + '@rollup/pluginutils@5.1.3(rollup@4.24.4)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.24.2 + rollup: 4.24.4 - '@rollup/rollup-android-arm-eabi@4.24.2': + '@rollup/rollup-android-arm-eabi@4.24.4': optional: true - '@rollup/rollup-android-arm64@4.24.2': + '@rollup/rollup-android-arm64@4.24.4': optional: true - '@rollup/rollup-darwin-arm64@4.24.2': + '@rollup/rollup-darwin-arm64@4.24.4': optional: true - '@rollup/rollup-darwin-x64@4.24.2': + '@rollup/rollup-darwin-x64@4.24.4': optional: true - '@rollup/rollup-freebsd-arm64@4.24.2': + '@rollup/rollup-freebsd-arm64@4.24.4': optional: true - '@rollup/rollup-freebsd-x64@4.24.2': + '@rollup/rollup-freebsd-x64@4.24.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.2': + '@rollup/rollup-linux-arm-gnueabihf@4.24.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.2': + '@rollup/rollup-linux-arm-musleabihf@4.24.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.2': + '@rollup/rollup-linux-arm64-gnu@4.24.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.2': + '@rollup/rollup-linux-arm64-musl@4.24.4': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.2': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.2': + '@rollup/rollup-linux-riscv64-gnu@4.24.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.2': + '@rollup/rollup-linux-s390x-gnu@4.24.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.2': + '@rollup/rollup-linux-x64-gnu@4.24.4': optional: true - '@rollup/rollup-linux-x64-musl@4.24.2': + '@rollup/rollup-linux-x64-musl@4.24.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.2': + '@rollup/rollup-win32-arm64-msvc@4.24.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.2': + '@rollup/rollup-win32-ia32-msvc@4.24.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.2': + '@rollup/rollup-win32-x64-msvc@4.24.4': optional: true '@shikijs/core@1.22.2': @@ -12482,30 +12559,30 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} - '@solidjs/router@0.14.10(solid-js@1.9.3)': + '@solidjs/router@0.15.1(solid-js@1.9.3)': dependencies: solid-js: 1.9.3 - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)))(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)))(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) debug: 4.3.7 svelte: 4.2.19 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)))(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)))(svelte@4.2.19)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) debug: 4.3.7 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.12 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) - vitefu: 0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vitefu: 0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) transitivePeerDependencies: - supports-color @@ -12564,8 +12641,6 @@ snapshots: dependencies: '@types/estree': 1.0.6 - '@types/estree@1.0.5': {} - '@types/estree@1.0.6': {} '@types/hast@3.0.4': @@ -12671,15 +12746,15 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/eslint-plugin@8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/type-utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.11.0 - eslint: 9.13.0(jiti@1.21.6) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/type-utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.13.0 + eslint: 9.14.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -12689,28 +12764,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.11.0 + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.13.0 debug: 4.3.7 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.11.0': + '@typescript-eslint/scope-manager@8.13.0': dependencies: - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/visitor-keys': 8.11.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/visitor-keys': 8.13.0 - '@typescript-eslint/type-utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: @@ -12719,12 +12794,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.11.0': {} + '@typescript-eslint/types@8.13.0': {} - '@typescript-eslint/typescript-estree@8.11.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.13.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/visitor-keys': 8.11.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/visitor-keys': 8.13.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -12736,20 +12811,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) - '@typescript-eslint/scope-manager': 8.11.0 - '@typescript-eslint/types': 8.11.0 - '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) - eslint: 9.13.0(jiti@1.21.6) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.13.0 + '@typescript-eslint/types': 8.13.0 + '@typescript-eslint/typescript-estree': 8.13.0(typescript@5.6.3) + eslint: 9.14.0(jiti@1.21.6) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.11.0': + '@typescript-eslint/visitor-keys@8.13.0': dependencies: - '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/types': 8.13.0 eslint-visitor-keys: 3.4.3 '@typescript/twoslash@3.1.0': @@ -12774,30 +12849,30 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))': + '@vitejs/plugin-react@4.3.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@4.0.1(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': + '@vitejs/plugin-vue@5.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) vue: 3.5.12(typescript@5.6.3) '@vitest/expect@2.1.4': @@ -12807,13 +12882,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))': + '@vitest/mocker@2.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))': dependencies: '@vitest/spy': 2.1.4 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) '@vitest/pretty-format@2.1.4': dependencies: @@ -12943,28 +13018,28 @@ snapshots: estree-walker: 2.0.2 magic-string: 0.30.12 postcss: 8.4.47 - source-map-js: 1.2.0 + source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.12': dependencies: '@vue/compiler-dom': 3.5.12 '@vue/shared': 3.5.12 - '@vue/devtools-core@7.5.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': + '@vue/devtools-core@7.6.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3))': dependencies: - '@vue/devtools-kit': 7.5.4 - '@vue/devtools-shared': 7.5.4 + '@vue/devtools-kit': 7.6.3 + '@vue/devtools-shared': 7.6.3 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + vite-hot-client: 0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) vue: 3.5.12(typescript@5.6.3) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.5.4': + '@vue/devtools-kit@7.6.3': dependencies: - '@vue/devtools-shared': 7.5.4 + '@vue/devtools-shared': 7.6.3 birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 @@ -12972,7 +13047,7 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.5.4': + '@vue/devtools-shared@7.6.3': dependencies: rfdc: 1.4.1 @@ -13152,6 +13227,14 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axobject-query@4.1.0: {} babel-plugin-jsx-dom-expressions@0.38.5(@babel/core@7.26.0): @@ -13454,7 +13537,7 @@ snapshots: css-tree@2.3.1: dependencies: mdn-data: 2.0.30 - source-map-js: 1.2.0 + source-map-js: 1.2.1 css-what@6.1.0: {} @@ -13528,7 +13611,8 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@1.0.3: {} + detect-libc@1.0.3: + optional: true detect-libc@2.0.2: {} @@ -13704,38 +13788,38 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-plugin-regexp@2.6.0(eslint@9.13.0(jiti@1.21.6)): + eslint-plugin-regexp@2.6.0(eslint@9.14.0(jiti@1.21.6)): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.13.0(jiti@1.21.6) + eslint: 9.14.0(jiti@1.21.6) jsdoc-type-pratt-parser: 4.1.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-scope@8.1.0: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.1.0: {} + eslint-visitor-keys@4.2.0: {} - eslint@9.13.0(jiti@1.21.6): + eslint@9.14.0(jiti@1.21.6): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.6)) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.7.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.13.0 + '@eslint/js': 9.14.0 '@eslint/plugin-kit': 0.2.0 - '@humanfs/node': 0.16.5 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.1 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 @@ -13743,9 +13827,9 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 8.1.0 - eslint-visitor-keys: 4.1.0 - espree: 10.2.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -13768,11 +13852,11 @@ snapshots: esm@3.2.25: {} - espree@10.2.0: + espree@10.3.0: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.1.0 + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -13819,7 +13903,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -13902,6 +13986,11 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + find-up@6.3.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.8 @@ -13916,6 +14005,8 @@ snapshots: flattie@1.1.1: {} + follow-redirects@1.15.9: {} + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 @@ -13959,7 +14050,7 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-fixture@2.5.0: {} + fs-fixture@2.6.0: {} fs-minipass@2.1.0: dependencies: @@ -14532,6 +14623,10 @@ snapshots: dependencies: p-locate: 5.0.0 + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + lodash.chunk@4.2.0: {} lodash.clonedeep@4.5.0: {} @@ -15184,7 +15279,8 @@ snapshots: lower-case: 2.0.2 tslib: 2.6.2 - node-addon-api@7.1.1: {} + node-addon-api@7.1.1: + optional: true node-domexception@1.0.0: {} @@ -15198,6 +15294,8 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-gyp-build@4.8.2: {} + node-html-parser@6.1.13: dependencies: css-select: 5.1.0 @@ -15292,6 +15390,10 @@ snapshots: dependencies: yocto-queue: 0.1.0 + p-limit@4.0.0: + dependencies: + yocto-queue: 1.1.1 + p-limit@6.1.0: dependencies: yocto-queue: 1.1.1 @@ -15304,6 +15406,10 @@ snapshots: dependencies: p-limit: 3.1.0 + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + p-map@2.1.0: {} p-queue@8.0.1: @@ -15373,6 +15479,8 @@ snapshots: path-exists@4.0.0: {} + path-exists@5.0.0: {} + path-key@3.1.1: {} path-key@4.0.0: {} @@ -15436,11 +15544,11 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.4(postcss@8.4.47): + postcss-color-functional-notation@7.0.5(postcss@8.4.47): dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 @@ -15457,28 +15565,28 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.4(postcss@8.4.47): + postcss-custom-media@11.0.5(postcss@8.4.47): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 - '@csstools/media-query-list-parser': 4.0.1(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) + '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) postcss: 8.4.47 - postcss-custom-properties@14.0.3(postcss@8.4.47): + postcss-custom-properties@14.0.4(postcss@8.4.47): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.3(postcss@8.4.47): + postcss-custom-selectors@8.0.4(postcss@8.4.47): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.3(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 postcss: 8.4.47 postcss-selector-parser: 7.0.0 @@ -15530,11 +15638,11 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.47 - postcss-lab-function@7.0.4(postcss@8.4.47): + postcss-lab-function@7.0.5(postcss@8.4.47): dependencies: - '@csstools/css-color-parser': 3.0.4(@csstools/css-parser-algorithms@3.0.3(@csstools/css-tokenizer@3.0.2))(@csstools/css-tokenizer@3.0.2) - '@csstools/css-parser-algorithms': 3.0.3(@csstools/css-tokenizer@3.0.2) - '@csstools/css-tokenizer': 3.0.2 + '@csstools/css-color-parser': 3.0.5(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) '@csstools/utilities': 2.0.0(postcss@8.4.47) postcss: 8.4.47 @@ -15581,37 +15689,37 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 - postcss-preset-env@10.0.8(postcss@8.4.47): + postcss-preset-env@10.0.9(postcss@8.4.47): dependencies: '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.4.47) - '@csstools/postcss-color-function': 4.0.4(postcss@8.4.47) - '@csstools/postcss-color-mix-function': 3.0.4(postcss@8.4.47) - '@csstools/postcss-content-alt-text': 2.0.3(postcss@8.4.47) - '@csstools/postcss-exponential-functions': 2.0.3(postcss@8.4.47) + '@csstools/postcss-color-function': 4.0.5(postcss@8.4.47) + '@csstools/postcss-color-mix-function': 3.0.5(postcss@8.4.47) + '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.4.47) + '@csstools/postcss-exponential-functions': 2.0.4(postcss@8.4.47) '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.4.47) - '@csstools/postcss-gamut-mapping': 2.0.4(postcss@8.4.47) - '@csstools/postcss-gradients-interpolation-method': 5.0.4(postcss@8.4.47) - '@csstools/postcss-hwb-function': 4.0.4(postcss@8.4.47) + '@csstools/postcss-gamut-mapping': 2.0.5(postcss@8.4.47) + '@csstools/postcss-gradients-interpolation-method': 5.0.5(postcss@8.4.47) + '@csstools/postcss-hwb-function': 4.0.5(postcss@8.4.47) '@csstools/postcss-ic-unit': 4.0.0(postcss@8.4.47) '@csstools/postcss-initial': 2.0.0(postcss@8.4.47) '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.4.47) - '@csstools/postcss-light-dark-function': 2.0.6(postcss@8.4.47) + '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.4.47) '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.4.47) '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.4.47) '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.4.47) '@csstools/postcss-logical-resize': 3.0.0(postcss@8.4.47) - '@csstools/postcss-logical-viewport-units': 3.0.2(postcss@8.4.47) - '@csstools/postcss-media-minmax': 2.0.3(postcss@8.4.47) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.3(postcss@8.4.47) + '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.4.47) + '@csstools/postcss-media-minmax': 2.0.4(postcss@8.4.47) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.4.47) '@csstools/postcss-nested-calc': 4.0.0(postcss@8.4.47) '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.4.47) - '@csstools/postcss-oklab-function': 4.0.4(postcss@8.4.47) + '@csstools/postcss-oklab-function': 4.0.5(postcss@8.4.47) '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.4.47) - '@csstools/postcss-relative-color-syntax': 3.0.4(postcss@8.4.47) + '@csstools/postcss-relative-color-syntax': 3.0.5(postcss@8.4.47) '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.4.47) - '@csstools/postcss-stepped-value-functions': 4.0.3(postcss@8.4.47) + '@csstools/postcss-stepped-value-functions': 4.0.4(postcss@8.4.47) '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.4.47) - '@csstools/postcss-trigonometric-functions': 4.0.3(postcss@8.4.47) + '@csstools/postcss-trigonometric-functions': 4.0.4(postcss@8.4.47) '@csstools/postcss-unset-value': 4.0.0(postcss@8.4.47) autoprefixer: 10.4.20(postcss@8.4.47) browserslist: 4.24.0 @@ -15622,12 +15730,12 @@ snapshots: postcss: 8.4.47 postcss-attribute-case-insensitive: 7.0.1(postcss@8.4.47) postcss-clamp: 4.1.0(postcss@8.4.47) - postcss-color-functional-notation: 7.0.4(postcss@8.4.47) + postcss-color-functional-notation: 7.0.5(postcss@8.4.47) postcss-color-hex-alpha: 10.0.0(postcss@8.4.47) postcss-color-rebeccapurple: 10.0.0(postcss@8.4.47) - postcss-custom-media: 11.0.4(postcss@8.4.47) - postcss-custom-properties: 14.0.3(postcss@8.4.47) - postcss-custom-selectors: 8.0.3(postcss@8.4.47) + postcss-custom-media: 11.0.5(postcss@8.4.47) + postcss-custom-properties: 14.0.4(postcss@8.4.47) + postcss-custom-selectors: 8.0.4(postcss@8.4.47) postcss-dir-pseudo-class: 9.0.1(postcss@8.4.47) postcss-double-position-gradients: 6.0.0(postcss@8.4.47) postcss-focus-visible: 10.0.1(postcss@8.4.47) @@ -15635,7 +15743,7 @@ snapshots: postcss-font-variant: 5.0.0(postcss@8.4.47) postcss-gap-properties: 6.0.0(postcss@8.4.47) postcss-image-set-function: 7.0.0(postcss@8.4.47) - postcss-lab-function: 7.0.4(postcss@8.4.47) + postcss-lab-function: 7.0.5(postcss@8.4.47) postcss-logical: 8.0.0(postcss@8.4.47) postcss-nesting: 13.0.1(postcss@8.4.47) postcss-opacity-percentage: 3.0.0(postcss@8.4.47) @@ -15722,6 +15830,8 @@ snapshots: property-information@6.5.0: {} + proxy-from-env@1.1.0: {} + pseudomap@1.0.2: {} psl@1.9.0: {} @@ -15804,7 +15914,7 @@ snapshots: refa@0.12.1: dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.12.1 regenerator-runtime@0.13.11: {} @@ -15814,7 +15924,7 @@ snapshots: regexp-ast-analysis@0.7.1: dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.12.1 refa: 0.12.1 rehype-autolink-headings@7.1.0: @@ -16036,28 +16146,28 @@ snapshots: rfdc@1.4.1: {} - rollup@4.24.2: + rollup@4.24.4: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.2 - '@rollup/rollup-android-arm64': 4.24.2 - '@rollup/rollup-darwin-arm64': 4.24.2 - '@rollup/rollup-darwin-x64': 4.24.2 - '@rollup/rollup-freebsd-arm64': 4.24.2 - '@rollup/rollup-freebsd-x64': 4.24.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.2 - '@rollup/rollup-linux-arm-musleabihf': 4.24.2 - '@rollup/rollup-linux-arm64-gnu': 4.24.2 - '@rollup/rollup-linux-arm64-musl': 4.24.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.2 - '@rollup/rollup-linux-riscv64-gnu': 4.24.2 - '@rollup/rollup-linux-s390x-gnu': 4.24.2 - '@rollup/rollup-linux-x64-gnu': 4.24.2 - '@rollup/rollup-linux-x64-musl': 4.24.2 - '@rollup/rollup-win32-arm64-msvc': 4.24.2 - '@rollup/rollup-win32-ia32-msvc': 4.24.2 - '@rollup/rollup-win32-x64-msvc': 4.24.2 + '@rollup/rollup-android-arm-eabi': 4.24.4 + '@rollup/rollup-android-arm64': 4.24.4 + '@rollup/rollup-darwin-arm64': 4.24.4 + '@rollup/rollup-darwin-x64': 4.24.4 + '@rollup/rollup-freebsd-arm64': 4.24.4 + '@rollup/rollup-freebsd-x64': 4.24.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.4 + '@rollup/rollup-linux-arm-musleabihf': 4.24.4 + '@rollup/rollup-linux-arm64-gnu': 4.24.4 + '@rollup/rollup-linux-arm64-musl': 4.24.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.4 + '@rollup/rollup-linux-riscv64-gnu': 4.24.4 + '@rollup/rollup-linux-s390x-gnu': 4.24.4 + '@rollup/rollup-linux-x64-gnu': 4.24.4 + '@rollup/rollup-linux-x64-musl': 4.24.4 + '@rollup/rollup-win32-arm64-msvc': 4.24.4 + '@rollup/rollup-win32-ia32-msvc': 4.24.4 + '@rollup/rollup-win32-x64-msvc': 4.24.4 fsevents: 2.3.3 rrweb-cssom@0.6.0: {} @@ -16078,12 +16188,13 @@ snapshots: dependencies: suf-log: 2.5.3 - sass@1.80.4: + sass@1.80.6: dependencies: - '@parcel/watcher': 2.4.1 chokidar: 4.0.1 immutable: 4.3.7 source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.4.1 sax@1.4.1: {} @@ -16099,7 +16210,7 @@ snapshots: scslre@0.3.0: dependencies: - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/regexpp': 4.12.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -16282,8 +16393,6 @@ snapshots: transitivePeerDependencies: - supports-color - source-map-js@1.2.0: {} - source-map-js@1.2.1: {} source-map@0.7.4: {} @@ -16603,11 +16712,11 @@ snapshots: dependencies: semver: 7.6.3 - typescript-eslint@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3): + typescript-eslint@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.13.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -16756,16 +16865,16 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)): + vite-hot-client@0.2.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): dependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vite-node@2.1.4(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1): + vite-node@2.1.4(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - '@types/node' - jiti @@ -16780,10 +16889,10 @@ snapshots: - tsx - yaml - vite-plugin-inspect@0.8.7(rollup@4.24.2)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)): + vite-plugin-inspect@0.8.7(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.3(rollup@4.24.2) + '@rollup/pluginutils': 5.1.3(rollup@4.24.4) debug: 4.3.7 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0 @@ -16791,12 +16900,12 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.0 sirv: 2.0.4 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)): + vite-plugin-solid@2.10.2(solid-js@1.9.3)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): dependencies: '@babel/core': 7.26.0 '@types/babel__core': 7.20.5 @@ -16804,28 +16913,28 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) - vitefu: 0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vitefu: 0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.5.4(rollup@4.24.2)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)): + vite-plugin-vue-devtools@7.6.3(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)): dependencies: - '@vue/devtools-core': 7.5.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) - '@vue/devtools-kit': 7.5.4 - '@vue/devtools-shared': 7.5.4 + '@vue/devtools-core': 7.6.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1))(vue@3.5.12(typescript@5.6.3)) + '@vue/devtools-kit': 7.6.3 + '@vue/devtools-shared': 7.6.3 execa: 8.0.1 sirv: 3.0.0 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) - vite-plugin-inspect: 0.8.7(rollup@4.24.2)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) - vite-plugin-vue-inspector: 5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite-plugin-inspect: 0.8.7(rollup@4.24.4)(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) + vite-plugin-vue-inspector: 5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)): + vite-plugin-vue-inspector@5.2.0(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): dependencies: '@babel/core': 7.26.0 '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.26.0) @@ -16836,7 +16945,7 @@ snapshots: '@vue/compiler-dom': 3.5.12 kolorist: 1.8.0 magic-string: 0.30.12 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) transitivePeerDependencies: - supports-color @@ -16845,30 +16954,30 @@ snapshots: svgo: 3.3.2 vue: 3.5.12(typescript@5.6.3) - vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1): + vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1): dependencies: esbuild: 0.24.0 postcss: 8.4.47 - rollup: 4.24.2 + rollup: 4.24.4 optionalDependencies: '@types/node': 18.19.50 fsevents: 2.3.3 jiti: 1.21.6 - sass: 1.80.4 + sass: 1.80.6 yaml: 2.5.1 - vitefu@0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)): + vitefu@0.2.5(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): optionalDependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vitefu@1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)): + vitefu@1.0.3(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)): optionalDependencies: - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) - vitest@2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.4)(yaml@2.5.1): + vitest@2.1.4(@types/node@18.19.50)(jiti@1.21.6)(jsdom@23.2.0)(sass@1.80.6)(yaml@2.5.1): dependencies: '@vitest/expect': 2.1.4 - '@vitest/mocker': 2.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1)) + '@vitest/mocker': 2.1.4(vite@6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1)) '@vitest/pretty-format': 2.1.4 '@vitest/runner': 2.1.4 '@vitest/snapshot': 2.1.4 @@ -16884,8 +16993,8 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) - vite-node: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.4)(yaml@2.5.1) + vite: 6.0.0-beta.6(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) + vite-node: 2.1.4(@types/node@18.19.50)(jiti@1.21.6)(sass@1.80.6)(yaml@2.5.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 18.19.50 diff --git a/scripts/smoke/cleanup.js b/scripts/smoke/cleanup.js index 1bb398d9e10e..e901556ec7b6 100644 --- a/scripts/smoke/cleanup.js +++ b/scripts/smoke/cleanup.js @@ -38,6 +38,7 @@ async function run() { await exec('pnpm', ['install'], { nodeOptions: { cwd: fileURLToPath(rootDir), stdio: ['pipe', 'inherit', 'inherit'] }, + throwOnError: true }); } diff --git a/scripts/smoke/index.js b/scripts/smoke/index.js index 49887cd2ee53..1d9651c598ca 100644 --- a/scripts/smoke/index.js +++ b/scripts/smoke/index.js @@ -33,7 +33,10 @@ async function run() { const directories = [...(await getChildDirectories(smokeDir)), ...(await getChildDirectories(exampleDir))]; /** @type {Partial} */ - const execOptions = { nodeOptions: { cwd: fileURLToPath(rootDir), stdio: 'inherit' }}; + const execOptions = { + nodeOptions: { cwd: fileURLToPath(rootDir), stdio: 'inherit' }, + throwOnError: true, + }; console.log('๐Ÿค–', 'Preparing', 'pnpm');