mirror of
https://github.com/withastro/astro.git
synced 2025-03-10 23:01:26 -05:00
Merge branch 'main' into arpan-#12506-ref
This commit is contained in:
commit
a116f134fc
77 changed files with 775 additions and 350 deletions
5
.changeset/chatty-knives-confess.md
Normal file
5
.changeset/chatty-knives-confess.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'astro': patch
|
||||
---
|
||||
|
||||
Removes the misleading log message telling that a custom renderer is not recognized while it clearly is and works.
|
5
.changeset/little-rules-relate.md
Normal file
5
.changeset/little-rules-relate.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'@astrojs/upgrade': patch
|
||||
---
|
||||
|
||||
Fixes an issue where running `upgrade` in a directory without `astro` installed shows a false success message
|
5
.changeset/rare-cooks-battle.md
Normal file
5
.changeset/rare-cooks-battle.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'astro': patch
|
||||
---
|
||||
|
||||
Fixes an issue where the `experimental.svg` had incorrect type, resulting in some errors in the editors.
|
5
.changeset/red-emus-repair.md
Normal file
5
.changeset/red-emus-repair.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'@astrojs/db': patch
|
||||
---
|
||||
|
||||
Fixes a bug that caused an error to be logged about invalid entrypoints
|
5
.changeset/six-toes-sort.md
Normal file
5
.changeset/six-toes-sort.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'astro': patch
|
||||
---
|
||||
|
||||
Correctly handles images in content collections with uppercase file extensions
|
2
.github/ISSUE_TEMPLATE/---01-bug-report.yml
vendored
2
.github/ISSUE_TEMPLATE/---01-bug-report.yml
vendored
|
@ -42,7 +42,7 @@ body:
|
|||
id: bug-reproduction
|
||||
attributes:
|
||||
label: Link to Minimal Reproducible Example
|
||||
description: 'Use [astro.new](https://astro.new) to create a minimal reproduction of the problem. **A minimal reproduction is required** so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be auto-closed. Not sure how to create a minimal example? [Read our guide](https://docs.astro.build/en/guides/troubleshooting/#creating-minimal-reproductions)'
|
||||
description: 'Use [StackBlitz](https://astro.new/repro) to create a minimal reproduction of the problem. **A minimal reproduction is required** so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be auto-closed. Not sure how to create a minimal example? [Read our guide](https://docs.astro.build/en/guides/troubleshooting/#creating-minimal-reproductions)'
|
||||
placeholder: 'https://stackblitz.com/abcd1234'
|
||||
validations:
|
||||
required: true
|
||||
|
|
3
.github/workflows/continuous_benchmark.yml
vendored
3
.github/workflows/continuous_benchmark.yml
vendored
|
@ -50,6 +50,7 @@ jobs:
|
|||
uses: CodSpeedHQ/action@513a19673a831f139e8717bf45ead67e47f00044 # v3.2.0
|
||||
timeout-minutes: 30
|
||||
with:
|
||||
run: pnpm benchmark codspeed
|
||||
working-directory: ./benchmark
|
||||
run: pnpm bench
|
||||
token: ${{ secrets.CODSPEED_TOKEN }}
|
||||
|
||||
|
|
2
.github/workflows/issue-labeled.yml
vendored
2
.github/workflows/issue-labeled.yml
vendored
|
@ -26,5 +26,5 @@ jobs:
|
|||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
body: |
|
||||
Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://astro.new). Issues marked with `needs repro` will be closed if they have no activity within 3 days.
|
||||
Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://astro.new/repro). Issues marked with `needs repro` will be closed if they have no activity within 3 days.
|
||||
labels: "needs triage"
|
||||
|
|
|
@ -19,3 +19,14 @@ export function calculateStat(numbers) {
|
|||
const max = Math.max(...numbers);
|
||||
return { avg, stdev, max };
|
||||
}
|
||||
|
||||
export async function makeProject(name) {
|
||||
console.log('Making project:', name);
|
||||
const projectDir = new URL(`../projects/${name}/`, import.meta.url);
|
||||
|
||||
const makeProjectMod = await import(`../make-project/${name}.js`);
|
||||
await makeProjectMod.run(projectDir);
|
||||
|
||||
console.log('Finished making project:', name);
|
||||
return projectDir;
|
||||
}
|
||||
|
|
48
benchmark/bench/codspeed.bench.js
Normal file
48
benchmark/bench/codspeed.bench.js
Normal file
|
@ -0,0 +1,48 @@
|
|||
import { fileURLToPath } from 'node:url';
|
||||
import { exec } from 'tinyexec';
|
||||
import { beforeAll, bench, describe } from 'vitest';
|
||||
import { astroBin, makeProject } from './_util.js';
|
||||
let streamingApp;
|
||||
let nonStreamingApp;
|
||||
beforeAll(async () => {
|
||||
const render = await makeProject('render-bench');
|
||||
const root = fileURLToPath(render);
|
||||
await exec(astroBin, ['build'], {
|
||||
nodeOptions: {
|
||||
cwd: root,
|
||||
stdio: 'inherit',
|
||||
},
|
||||
});
|
||||
const entry = new URL('./dist/server/entry.mjs', `file://${root}`);
|
||||
const { manifest, createApp } = await import(entry);
|
||||
streamingApp = createApp(manifest, true);
|
||||
nonStreamingApp = createApp(manifest, false);
|
||||
}, 900000);
|
||||
|
||||
describe('Bench rendering', () => {
|
||||
bench('Rendering: streaming [true], .astro file', async () => {
|
||||
const request = new Request(new URL('http://exmpale.com/astro'));
|
||||
await streamingApp.render(request);
|
||||
});
|
||||
bench('Rendering: streaming [true], .md file', async () => {
|
||||
const request = new Request(new URL('http://exmpale.com/md'));
|
||||
await streamingApp.render(request);
|
||||
});
|
||||
bench('Rendering: streaming [true], .mdx file', async () => {
|
||||
const request = new Request(new URL('http://exmpale.com/mdx'));
|
||||
await streamingApp.render(request);
|
||||
});
|
||||
|
||||
bench('Rendering: streaming [false], .astro file', async () => {
|
||||
const request = new Request(new URL('http://exmpale.com/astro'));
|
||||
await nonStreamingApp.render(request);
|
||||
});
|
||||
bench('Rendering: streaming [false], .md file', async () => {
|
||||
const request = new Request(new URL('http://exmpale.com/md'));
|
||||
await nonStreamingApp.render(request);
|
||||
});
|
||||
bench('Rendering: streaming [false], .mdx file', async () => {
|
||||
const request = new Request(new URL('http://exmpale.com/mdx'));
|
||||
await nonStreamingApp.render(request);
|
||||
});
|
||||
});
|
|
@ -1,64 +0,0 @@
|
|||
import path from 'node:path';
|
||||
import { withCodSpeed } from '@codspeed/tinybench-plugin';
|
||||
import { Bench } from 'tinybench';
|
||||
import { exec } from 'tinyexec';
|
||||
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);
|
||||
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);
|
||||
const streamingApp = createApp(manifest, true);
|
||||
const nonStreamingApp = createApp(manifest, false);
|
||||
bench
|
||||
.add('Rendering: streaming [true], .astro file', async () => {
|
||||
console.info('Start task.');
|
||||
const request = new Request(new URL('http://exmpale.com/astro'));
|
||||
await streamingApp.render(request);
|
||||
console.info('Finish task.');
|
||||
})
|
||||
.add('Rendering: streaming [true], .md file', async () => {
|
||||
console.info('Start task.');
|
||||
const request = new Request(new URL('http://exmpale.com/md'));
|
||||
await streamingApp.render(request);
|
||||
console.info('Finish task.');
|
||||
})
|
||||
.add('Rendering: streaming [true], .mdx file', async () => {
|
||||
console.info('Start task.');
|
||||
const request = new Request(new URL('http://exmpale.com/mdx'));
|
||||
await streamingApp.render(request);
|
||||
console.info('Finish task.');
|
||||
})
|
||||
|
||||
.add('Rendering: streaming [false], .astro file', async () => {
|
||||
console.info('Start task.');
|
||||
const request = new Request(new URL('http://exmpale.com/astro'));
|
||||
await nonStreamingApp.render(request);
|
||||
console.info('Finish task.');
|
||||
})
|
||||
.add('Rendering: streaming [false], .md file', async () => {
|
||||
console.info('Start task.');
|
||||
const request = new Request(new URL('http://exmpale.com/md'));
|
||||
await nonStreamingApp.render(request);
|
||||
console.info('Finish task.');
|
||||
})
|
||||
.add('Rendering: streaming [false], .mdx file', async () => {
|
||||
console.info('Start task.');
|
||||
const request = new Request(new URL('http://exmpale.com/mdx'));
|
||||
await nonStreamingApp.render(request);
|
||||
console.info('Finish task.');
|
||||
});
|
||||
|
||||
await bench.run();
|
||||
console.table(bench.table());
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
import mri from 'mri';
|
||||
import fs from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
import {fileURLToPath, pathToFileURL} from 'node:url';
|
||||
import { fileURLToPath, pathToFileURL } from 'node:url';
|
||||
import mri from 'mri';
|
||||
import { makeProject } from './bench/_util.js';
|
||||
|
||||
const args = mri(process.argv.slice(2));
|
||||
|
||||
|
@ -14,7 +15,6 @@ 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
|
||||
|
@ -30,7 +30,6 @@ 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)) {
|
||||
|
@ -39,26 +38,12 @@ if (commandName && !(commandName in benchmarks)) {
|
|||
}
|
||||
|
||||
if (commandName) {
|
||||
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);
|
||||
}
|
||||
// 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) {
|
||||
|
@ -70,21 +55,10 @@ if (commandName) {
|
|||
}
|
||||
}
|
||||
|
||||
export async function makeProject(name) {
|
||||
console.log('Making project:', name);
|
||||
const projectDir = new URL(`./projects/${name}/`, import.meta.url);
|
||||
|
||||
const makeProjectMod = await import(`./make-project/${name}.js`);
|
||||
await makeProjectMod.run(projectDir);
|
||||
|
||||
console.log('Finished making project:', name);
|
||||
return projectDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} benchmarkName
|
||||
*/
|
||||
async function getOutputFile(benchmarkName) {
|
||||
export async function getOutputFile(benchmarkName) {
|
||||
let file;
|
||||
if (args.output) {
|
||||
file = pathToFileURL(path.resolve(args.output));
|
||||
|
|
|
@ -8,11 +8,13 @@ export async function run(projectDir) {
|
|||
await fs.rm(projectDir, { recursive: true, force: true });
|
||||
await fs.mkdir(new URL('./src/pages/blog', projectDir), { recursive: true });
|
||||
await fs.mkdir(new URL('./src/content/blog', projectDir), { recursive: true });
|
||||
await fs.copyFile(new URL('./image.jpg', import.meta.url), new URL('./src/image.jpg', projectDir));
|
||||
await fs.copyFile(
|
||||
new URL('./image.jpg', import.meta.url),
|
||||
new URL('./src/image.jpg', projectDir),
|
||||
);
|
||||
|
||||
const promises = [];
|
||||
|
||||
|
||||
for (let i = 0; i < 10000; i++) {
|
||||
const content = `\
|
||||
# Article ${i}
|
||||
|
@ -24,11 +26,10 @@ ${loremIpsumMd}
|
|||
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./src/content/blog/article-${i}.md`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./src/content/blog/article-${i}.md`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
await fs.writeFile(
|
||||
new URL(`./src/pages/blog/[...slug].astro`, projectDir),
|
||||
`\
|
||||
|
@ -46,7 +47,7 @@ const { Content } = await entry.render();
|
|||
<h1>{entry.data.title}</h1>
|
||||
<Content />
|
||||
`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await Promise.all(promises);
|
||||
|
@ -58,6 +59,6 @@ import { defineConfig } from 'astro/config';
|
|||
|
||||
export default defineConfig({
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ ${loremIpsumMd}
|
|||
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./data/blog/article-${i}.md`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./data/blog/article-${i}.md`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ ${loremIpsumMd}
|
|||
|
||||
export const collections = { blog }
|
||||
|
||||
`
|
||||
`,
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
|
@ -60,7 +60,7 @@ const { Content } = await render(entry);
|
|||
<h1>{entry.data.title}</h1>
|
||||
<Content />
|
||||
`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await Promise.all(promises);
|
||||
|
@ -71,6 +71,6 @@ const { Content } = await render(entry);
|
|||
import { defineConfig } from 'astro/config';
|
||||
|
||||
export default defineConfig({});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -8,11 +8,13 @@ export async function run(projectDir) {
|
|||
await fs.rm(projectDir, { recursive: true, force: true });
|
||||
await fs.mkdir(new URL('./src/pages/blog', projectDir), { recursive: true });
|
||||
await fs.mkdir(new URL('./src/content/blog', projectDir), { recursive: true });
|
||||
await fs.copyFile(new URL('./image.jpg', import.meta.url), new URL('./src/image.jpg', projectDir));
|
||||
await fs.copyFile(
|
||||
new URL('./image.jpg', import.meta.url),
|
||||
new URL('./src/image.jpg', projectDir),
|
||||
);
|
||||
|
||||
const promises = [];
|
||||
|
||||
|
||||
for (let i = 0; i < 10000; i++) {
|
||||
const content = `\
|
||||
# Article ${i}
|
||||
|
@ -24,11 +26,10 @@ ${loremIpsumMd}
|
|||
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./src/content/blog/article-${i}.mdx`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./src/content/blog/article-${i}.mdx`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
await fs.writeFile(
|
||||
new URL(`./src/pages/blog/[...slug].astro`, projectDir),
|
||||
`\
|
||||
|
@ -46,7 +47,7 @@ const { Content } = await entry.render();
|
|||
<h1>{entry.data.title}</h1>
|
||||
<Content />
|
||||
`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await Promise.all(promises);
|
||||
|
@ -61,6 +62,6 @@ import mdx from '@astrojs/mdx';
|
|||
export default defineConfig({
|
||||
integrations: [mdx()],
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ ${loremIpsumMd}
|
|||
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./data/blog/article-${i}.mdx`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./data/blog/article-${i}.mdx`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -39,7 +39,7 @@ ${loremIpsumMd}
|
|||
|
||||
export const collections = { blog }
|
||||
|
||||
`
|
||||
`,
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
|
@ -60,7 +60,7 @@ const { Content } = await render(entry);
|
|||
<h1>{entry.data.title}</h1>
|
||||
<Content />
|
||||
`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await Promise.all(promises);
|
||||
|
@ -75,6 +75,6 @@ import mdx from '@astrojs/mdx';
|
|||
export default defineConfig({
|
||||
integrations: [mdx()],
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ const i = ${i};
|
|||
<span>{i}</span>
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./src/pages/page-${i}.astro`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./src/pages/page-${i}.astro`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ const i = ${i};
|
|||
${loremIpsum}
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./src/content/blog/article-${i}.md`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./src/content/blog/article-${i}.md`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ ${loremIpsum}
|
|||
${loremIpsum}
|
||||
`;
|
||||
promises.push(
|
||||
fs.writeFile(new URL(`./src/content/blog/post-${i}.mdx`, projectDir), content, 'utf-8')
|
||||
fs.writeFile(new URL(`./src/content/blog/post-${i}.mdx`, projectDir), content, 'utf-8'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ const { Content } = await entry.render();
|
|||
<h1>{entry.data.title}</h1>
|
||||
<Content />
|
||||
`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await Promise.all(promises);
|
||||
|
@ -77,6 +77,6 @@ import mdx from '@astrojs/mdx';
|
|||
export default defineConfig({
|
||||
integrations: [mdx()],
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -112,7 +112,7 @@ export async function run(projectDir) {
|
|||
await Promise.all(
|
||||
Object.entries(renderFiles).map(([name, content]) => {
|
||||
return fs.writeFile(new URL(`./src/${name}`, projectDir), content, 'utf-8');
|
||||
})
|
||||
}),
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
|
@ -127,6 +127,6 @@ export default defineConfig({
|
|||
output: 'server',
|
||||
adapter: adapter(),
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -112,7 +112,7 @@ export async function run(projectDir) {
|
|||
await Promise.all(
|
||||
Object.entries(renderFiles).map(([name, content]) => {
|
||||
return fs.writeFile(new URL(`./src/${name}`, projectDir), content, 'utf-8');
|
||||
})
|
||||
}),
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
|
@ -127,6 +127,6 @@ export default defineConfig({
|
|||
output: 'server',
|
||||
adapter: timer(),
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -38,13 +38,13 @@ const content = "${loremIpsum}"
|
|||
</div>
|
||||
</body>
|
||||
</html>`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
new URL('./src/components/Paragraph.astro', projectDir),
|
||||
`<div>{Astro.props.num} {Astro.props.str}</div>`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
await fs.writeFile(
|
||||
|
@ -57,6 +57,6 @@ export default defineConfig({
|
|||
output: 'server',
|
||||
adapter: nodejs({ mode: 'standalone' }),
|
||||
});`,
|
||||
'utf-8'
|
||||
'utf-8',
|
||||
);
|
||||
}
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
"bin": {
|
||||
"astro-benchmark": "./index.js"
|
||||
},
|
||||
"scripts": {
|
||||
"bench": "pnpm vitest bench --run"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/mdx": "workspace:*",
|
||||
"@astrojs/node": "^8.3.4",
|
||||
|
@ -21,7 +24,7 @@
|
|||
"tinyexec": "^0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@codspeed/tinybench-plugin": "^3.1.1",
|
||||
"tinybench": "^2.9.0"
|
||||
"@codspeed/vitest-plugin": "3.1.1",
|
||||
"vitest": "2.1.8"
|
||||
}
|
||||
}
|
||||
|
|
7
benchmark/vitest.config.js
Normal file
7
benchmark/vitest.config.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
import codspeedPlugin from '@codspeed/vitest-plugin';
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
export default defineConfig({
|
||||
plugins: process.env.CODSPEED ? [codspeedPlugin()] : [],
|
||||
include: ['./bench/codspeed.bench.js'],
|
||||
});
|
|
@ -2,7 +2,7 @@
|
|||
"$schema": "https://biomejs.dev/schemas/1.9.3/schema.json",
|
||||
"files": {
|
||||
"ignore": ["**/smoke/**", "**/fixtures/**", "**/_temp-fixtures/**", "**/vendor/**"],
|
||||
"include": ["test/**", "e2e/**", "packages/**", "scripts/**", "benchmark/bench"],
|
||||
"include": ["test/**", "e2e/**", "packages/**", "scripts/**", "benchmark"],
|
||||
},
|
||||
"vcs": {
|
||||
"enabled": true,
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ import background from '../assets/background.svg';
|
|||
</section>
|
||||
</main>
|
||||
|
||||
<a href="https://astro.build/blog/astro-5-beta/" id="news" class="box">
|
||||
<a href="https://astro.build/blog/astro-5/" id="news" class="box">
|
||||
<svg width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"
|
||||
><path
|
||||
d="M24.667 12c1.333 1.414 2 3.192 2 5.334 0 4.62-4.934 5.7-7.334 12C18.444 28.567 18 27.456 18 26c0-4.642 6.667-7.053 6.667-14Zm-5.334-5.333c1.6 1.65 2.4 3.43 2.4 5.333 0 6.602-8.06 7.59-6.4 17.334C13.111 27.787 12 25.564 12 22.666c0-4.434 7.333-8 7.333-16Zm-6-5.333C15.111 3.555 16 5.556 16 7.333c0 8.333-11.333 10.962-5.333 22-3.488-.774-6-4-6-8 0-8.667 8.666-10 8.666-20Z"
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
"@astrojs/mdx": "^4.0.1",
|
||||
"@astrojs/rss": "^4.0.9",
|
||||
"@astrojs/sitemap": "^3.2.1",
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
],
|
||||
"scripts": {},
|
||||
"devDependencies": {
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"astro": "^4.0.0 || ^5.0.0"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@astrojs/react": "^4.0.0",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
"vitest": "^2.1.6"
|
||||
|
|
|
@ -13,6 +13,6 @@
|
|||
"@astrojs/alpinejs": "^0.4.0",
|
||||
"@types/alpinejs": "^3.13.10",
|
||||
"alpinejs": "^3.14.3",
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
"@astrojs/vue": "^5.0.1",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"preact": "^10.24.3",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1",
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"dependencies": {
|
||||
"@astrojs/preact": "^4.0.0",
|
||||
"@preact/signals": "^1.3.0",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"preact": "^10.24.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"@astrojs/react": "^4.0.0",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"react": "^18.3.1",
|
||||
"react-dom": "^18.3.1"
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@astrojs/solid-js": "^5.0.0",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"solid-js": "^1.9.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@astrojs/svelte": "^7.0.1",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"svelte": "^5.1.16"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@astrojs/vue": "^5.0.1",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"vue": "^3.5.12"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^9.0.0-alpha.1",
|
||||
"astro": "^5.0.1"
|
||||
"@astrojs/node": "^9.0.0",
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
],
|
||||
"scripts": {},
|
||||
"devDependencies": {
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"astro": "^4.0.0"
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
"server": "node dist/server/entry.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^9.0.0-alpha.1",
|
||||
"@astrojs/node": "^9.0.0",
|
||||
"@astrojs/svelte": "^7.0.1",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"svelte": "^5.1.16"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"sass": "^1.80.6",
|
||||
"sharp": "^0.33.3"
|
||||
}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
@use 'sass:map';
|
||||
|
||||
@function color($color, $tone) {
|
||||
// @warn map-get($palette,$color);
|
||||
// @warn map.get($palette,$color);
|
||||
|
||||
@if map-has-key($palette, $color) {
|
||||
$color: map-get($palette, $color);
|
||||
@if map.has-key($palette, $color) {
|
||||
$color: map.get($palette, $color);
|
||||
|
||||
@if map-has-key($color, $tone) {
|
||||
$tone: map-get($color, $tone);
|
||||
@if map.has-key($color, $tone) {
|
||||
$tone: map.get($color, $tone);
|
||||
@return $tone;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
@import 'colors.scss';
|
||||
@import 'type.scss';
|
||||
@import 'layout.scss';
|
||||
@use 'colors.scss';
|
||||
@use 'type.scss';
|
||||
@use 'layout.scss';
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
@use 'sass:color';
|
||||
@use './colors.scss' as colors;
|
||||
@use './type.scss' as type;
|
||||
|
||||
$container: 1040px;
|
||||
$tablet: 768px;
|
||||
$mobile: 420px;
|
||||
|
@ -11,9 +15,9 @@ body {
|
|||
padding: 0 1em;
|
||||
width: 1040px;
|
||||
max-width: 100%;
|
||||
background-color: $white;
|
||||
background-color: colors.$white;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background-color: color(gray, 950);
|
||||
background-color: colors.color(gray, 950);
|
||||
}
|
||||
@media (max-width: $tablet) {
|
||||
font-size: 16px;
|
||||
|
@ -39,8 +43,8 @@ body {
|
|||
height: 240px;
|
||||
background: radial-gradient(
|
||||
50% 50% at 50% 50%,
|
||||
rgba(color(orange, 500), 0.2) 0%,
|
||||
rgba(color(orange, 500), 0) 100%
|
||||
rgba(colors.color(orange, 500), 0.2) 0%,
|
||||
rgba(colors.color(orange, 500), 0) 100%
|
||||
);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: radial-gradient(
|
||||
|
@ -53,31 +57,31 @@ body {
|
|||
}
|
||||
|
||||
::selection {
|
||||
background: color(orange, 200);
|
||||
background: colors.color(orange, 200);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: color(orange, 600);
|
||||
background: colors.color(orange, 600);
|
||||
}
|
||||
}
|
||||
|
||||
a,
|
||||
a:visited {
|
||||
color: color(orange, 600);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: color(orange, 300);
|
||||
}
|
||||
color: colors.color(orange, 600);
|
||||
transition: 0.1s ease;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: colors.color(orange, 300);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: color(orange, 500);
|
||||
color: colors.color(orange, 500);
|
||||
}
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 1em 0;
|
||||
border: 0;
|
||||
border-bottom: 1px solid color(gray, 100);
|
||||
border-bottom: 1px solid colors.color(gray, 100);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: color(gray, 900);
|
||||
border-color: colors.color(gray, 900);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -102,22 +106,22 @@ nav {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
color: color(gray, 950);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: $white;
|
||||
}
|
||||
color: colors.color(gray, 950);
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 2px;
|
||||
line-height: 1;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: colors.$white;
|
||||
}
|
||||
}
|
||||
.links a {
|
||||
margin-left: 1em;
|
||||
color: color(gray, 800);
|
||||
color: colors.color(gray, 800);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: color(gray, 200);
|
||||
color: colors.color(gray, 200);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -144,7 +148,7 @@ nav {
|
|||
top: 0.63em;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: linear-gradient(25deg, color(purple, 500), color(orange, 500));
|
||||
background: linear-gradient(25deg, colors.color(purple, 500), colors.color(orange, 500));
|
||||
border-radius: 99px;
|
||||
}
|
||||
}
|
||||
|
@ -178,12 +182,12 @@ nav {
|
|||
|
||||
.version_wrapper {
|
||||
flex-basis: 260px;
|
||||
@media (max-width: $container) {
|
||||
flex-basis: 140px;
|
||||
}
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
margin: 4.5em 0 0 0;
|
||||
@media (max-width: $container) {
|
||||
flex-basis: 140px;
|
||||
}
|
||||
@media (max-width: $tablet) {
|
||||
flex-basis: 0;
|
||||
margin-top: 2em;
|
||||
|
@ -200,7 +204,7 @@ nav {
|
|||
|
||||
a {
|
||||
float: left;
|
||||
color: $white;
|
||||
color: colors.$white;
|
||||
text-decoration: none;
|
||||
transition: 0.1s ease;
|
||||
|
||||
|
@ -212,45 +216,45 @@ nav {
|
|||
|
||||
.version_number {
|
||||
display: inline-block;
|
||||
font-family: $codeFont;
|
||||
font-family: type.$codeFont;
|
||||
line-height: 1;
|
||||
margin-bottom: 8px;
|
||||
padding: 4px 12px;
|
||||
color: $white;
|
||||
color: colors.$white;
|
||||
background: linear-gradient(
|
||||
25deg,
|
||||
color(purple, 800),
|
||||
color(purple, 700),
|
||||
mix(color(purple, 500), color(orange, 500)),
|
||||
color(orange, 500)
|
||||
colors.color(purple, 800),
|
||||
colors.color(purple, 700),
|
||||
color.mix(colors.color(purple, 500), colors.color(orange, 500)),
|
||||
colors.color(orange, 500)
|
||||
);
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.date {
|
||||
clear: both;
|
||||
color: colors.color(gray, 800);
|
||||
font-family: type.$codeFont;
|
||||
font-size: type.$fontSizeSmall;
|
||||
@media (max-width: $tablet) {
|
||||
display: inline;
|
||||
margin-left: 1em;
|
||||
}
|
||||
color: color(gray, 800);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: color(gray, 200);
|
||||
color: colors.color(gray, 200);
|
||||
}
|
||||
font-family: $codeFont;
|
||||
font-size: $fontSizeSmall;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: 0;
|
||||
padding: 4em 0;
|
||||
border-bottom: 1px solid colors.color(gray, 100);
|
||||
@media (max-width: $tablet) {
|
||||
margin: 1em 0;
|
||||
padding: 0 0 2em 0;
|
||||
}
|
||||
border-bottom: 1px solid color(gray, 100);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: color(gray, 900);
|
||||
border-color: colors.color(gray, 900);
|
||||
}
|
||||
*:first-child {
|
||||
margin-top: 0;
|
||||
|
@ -259,9 +263,9 @@ nav {
|
|||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 12px;
|
||||
border: 1px solid color(gray, 200);
|
||||
border: 1px solid colors.color(gray, 200);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: color(gray, 800);
|
||||
border-color: colors.color(gray, 800);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -269,22 +273,22 @@ nav {
|
|||
footer {
|
||||
display: flex;
|
||||
padding: 2em 0;
|
||||
color: colors.color(gray, 500);
|
||||
justify-content: space-between;
|
||||
border-top: 1px solid colors.color(gray, 100);
|
||||
@media (max-width: $tablet) {
|
||||
padding: 1em 0;
|
||||
}
|
||||
color: color(gray, 500);
|
||||
justify-content: space-between;
|
||||
border-top: 1px solid color(gray, 100);
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: color(gray, 900);
|
||||
border-color: colors.color(gray, 900);
|
||||
}
|
||||
|
||||
a {
|
||||
margin-left: 1em;
|
||||
color: color(gray, 500);
|
||||
color: colors.color(gray, 500);
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
color: color(gray, 500);
|
||||
color: colors.color(gray, 500);
|
||||
opacity: 0.6;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
@use './colors.scss' as colors;
|
||||
|
||||
$baseFont: 'Lato', sans-serif;
|
||||
$codeFont: 'Source Code Pro', monospace;
|
||||
$fontSizeSmall: 15px;
|
||||
|
@ -7,13 +9,14 @@ body {
|
|||
font-size: 18px;
|
||||
line-height: 1.65;
|
||||
font-weight: 400;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: color(gray, 200);
|
||||
}
|
||||
color: color(gray, 800);
|
||||
color: colors.color(gray, 800);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-rendering: optimizeLegibility;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: colors.color(gray, 200);
|
||||
}
|
||||
}
|
||||
|
||||
h1,
|
||||
|
@ -23,11 +26,12 @@ h4,
|
|||
h5 {
|
||||
line-height: 1.2;
|
||||
margin: 1em 0 0.5em 0;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: $white;
|
||||
}
|
||||
color: color(gray, 950);
|
||||
color: colors.color(gray, 950);
|
||||
font-weight: 700;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: colors.$white;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
|
@ -58,8 +62,9 @@ b,
|
|||
strong {
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
color: colors.color(gray, 950);
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: $white;
|
||||
color: colors.$white;
|
||||
}
|
||||
color: color(gray, 950);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,6 @@
|
|||
"./app": "./dist/app.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@astrojs/markdoc": "^0.12.1",
|
||||
"astro": "^5.0.1"
|
||||
"astro": "^5.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,9 @@ import { getEntry } from 'astro:content';
|
|||
import Layout from '../layouts/Layout.astro';
|
||||
|
||||
const intro = await getEntry('docs', 'intro');
|
||||
if (!intro) {
|
||||
return Astro.redirect('/404');
|
||||
}
|
||||
const { Content } = await intro.render();
|
||||
---
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"dependencies": {
|
||||
"@astrojs/mdx": "^4.0.1",
|
||||
"@astrojs/preact": "^4.0.0",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"preact": "^10.24.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"dependencies": {
|
||||
"@astrojs/preact": "^4.0.0",
|
||||
"@nanostores/preact": "^0.5.2",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"nanostores": "^0.11.3",
|
||||
"preact": "^10.24.3"
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"@astrojs/mdx": "^4.0.1",
|
||||
"@astrojs/tailwind": "^5.1.3",
|
||||
"@types/canvas-confetti": "^1.6.4",
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"canvas-confetti": "^1.9.3",
|
||||
"postcss": "^8.4.49",
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
"test": "vitest"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^5.0.1",
|
||||
"astro": "^5.0.2",
|
||||
"vitest": "^2.1.6"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
# astro
|
||||
|
||||
## 5.0.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#12601](https://github.com/withastro/astro/pull/12601) [`0724929`](https://github.com/withastro/astro/commit/072492982b338e04549ee576ca7d8480be92cc1c) Thanks [@ascorbic](https://github.com/ascorbic)! - Includes "undefined" in types for getEntry
|
||||
|
||||
## 5.0.1
|
||||
|
||||
### Patch Changes
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "astro",
|
||||
"version": "5.0.1",
|
||||
"version": "5.0.2",
|
||||
"description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.",
|
||||
"type": "module",
|
||||
"author": "withastro",
|
||||
|
|
|
@ -20,7 +20,9 @@ export function imageSrcToImportId(imageSrc: string, filePath?: string): string
|
|||
return;
|
||||
}
|
||||
// We only care about images
|
||||
const ext = imageSrc.split('.').at(-1) as (typeof VALID_INPUT_FORMATS)[number] | undefined;
|
||||
const ext = imageSrc.split('.').at(-1)?.toLowerCase() as
|
||||
| (typeof VALID_INPUT_FORMATS)[number]
|
||||
| undefined;
|
||||
if (!ext || !VALID_INPUT_FORMATS.includes(ext)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ export function vitePluginRenderers(opts: StaticBuildOptions): VitePlugin {
|
|||
|
||||
for (const renderer of opts.settings.renderers) {
|
||||
const variable = `_renderer${i}`;
|
||||
imports.push(`import ${variable} from '${renderer.serverEntrypoint}';`);
|
||||
imports.push(`import ${variable} from ${JSON.stringify(renderer.serverEntrypoint)};`);
|
||||
rendererItems += `Object.assign(${JSON.stringify(renderer)}, { ssr: ${variable} }),`;
|
||||
i++;
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ function vitePluginAdapter(adapter: AstroAdapter): VitePlugin {
|
|||
},
|
||||
async load(id) {
|
||||
if (id === RESOLVED_ADAPTER_VIRTUAL_MODULE_ID) {
|
||||
return `export * from '${adapter.serverEntrypoint}';`;
|
||||
return `export * from ${JSON.stringify(adapter.serverEntrypoint)};`;
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -11,6 +11,7 @@ import type { OutgoingHttpHeaders } from 'node:http';
|
|||
import path from 'node:path';
|
||||
import { fileURLToPath, pathToFileURL } from 'node:url';
|
||||
import { z } from 'zod';
|
||||
import type { SvgRenderMode } from '../../assets/utils/svg.js';
|
||||
import { EnvSchema } from '../../env/schema.js';
|
||||
import type { AstroUserConfig, ViteUserConfig } from '../../types/public/config.js';
|
||||
import { appendForwardSlash, prependForwardSlash, removeTrailingForwardSlash } from '../path.js';
|
||||
|
@ -96,9 +97,7 @@ export const ASTRO_CONFIG_DEFAULTS = {
|
|||
clientPrerender: false,
|
||||
contentIntellisense: false,
|
||||
responsiveImages: false,
|
||||
svg: {
|
||||
mode: 'inline',
|
||||
},
|
||||
svg: false,
|
||||
},
|
||||
} satisfies AstroUserConfig & { server: { open: boolean } };
|
||||
|
||||
|
@ -540,18 +539,28 @@ export const AstroConfigSchema = z.object({
|
|||
svg: z
|
||||
.union([
|
||||
z.boolean(),
|
||||
z.object({
|
||||
mode: z
|
||||
.union([z.literal('inline'), z.literal('sprite')])
|
||||
.optional()
|
||||
.default(ASTRO_CONFIG_DEFAULTS.experimental.svg.mode),
|
||||
}),
|
||||
z
|
||||
.object({
|
||||
mode: z.union([z.literal('inline'), z.literal('sprite')]).optional(),
|
||||
})
|
||||
.optional(),
|
||||
])
|
||||
.optional()
|
||||
.default(ASTRO_CONFIG_DEFAULTS.experimental.svg)
|
||||
.transform((svgConfig) => {
|
||||
// Handle normalization of `experimental.svg` config boolean values
|
||||
if (typeof svgConfig === 'boolean') {
|
||||
return svgConfig ? ASTRO_CONFIG_DEFAULTS.experimental.svg : undefined;
|
||||
return svgConfig
|
||||
? {
|
||||
mode: 'inline' as SvgRenderMode,
|
||||
}
|
||||
: undefined;
|
||||
} else {
|
||||
if (!svgConfig.mode) {
|
||||
return {
|
||||
mode: 'inline' as SvgRenderMode,
|
||||
};
|
||||
}
|
||||
}
|
||||
return svgConfig;
|
||||
}),
|
||||
|
|
|
@ -260,15 +260,6 @@ If you're still stuck, please open an issue on GitHub or join us at https://astr
|
|||
}
|
||||
} else {
|
||||
if (metadata.hydrate === 'only') {
|
||||
const rendererName = rendererAliases.has(metadata.hydrateArgs)
|
||||
? rendererAliases.get(metadata.hydrateArgs)
|
||||
: metadata.hydrateArgs;
|
||||
if (!clientOnlyValues.has(rendererName)) {
|
||||
// warning if provide incorrect client:only directive but find the renderer by guess
|
||||
console.warn(
|
||||
`The client:only directive for ${metadata.displayName} is not recognized. The renderer ${renderer.name} will be used. If you intended to use a different renderer, please provide a valid client:only directive.`,
|
||||
);
|
||||
}
|
||||
html = await renderSlotToString(result, slots?.fallback);
|
||||
} else {
|
||||
const componentRenderStartTime = performance.now();
|
||||
|
|
|
@ -322,7 +322,7 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
|
|||
* @type {string}
|
||||
* @default `"."` (current working directory)
|
||||
* @summary Set the project root. The project root is the directory where your Astro project (and all `src`, `public` and `package.json` files) live.
|
||||
* @description You should only provide this option if you run the `astro` CLI commands in a directory other than the project root directory. Usually, this option is provided via the CLI instead of the [Astro config file](https://docs.astro.build/en/guides/configuring-astro/#supported-config-file-types), since Astro needs to know your project root before it can locate your config file.
|
||||
* @description You should only provide this option if you run the `astro` CLI commands in a directory other than the project root directory. Usually, this option is provided via the CLI instead of the Astro config file, since Astro needs to know your project root before it can locate your config file.
|
||||
*
|
||||
* If you provide a relative path (ex: `--root: './my-project'`) Astro will resolve it against your current working directory.
|
||||
*
|
||||
|
@ -1940,28 +1940,30 @@ export interface ViteUserConfig extends OriginalViteUserConfig {
|
|||
* For a complete overview, and to give feedback on this experimental API,
|
||||
* see the [Feature RFC](https://github.com/withastro/roadmap/pull/1035).
|
||||
*/
|
||||
svg?: {
|
||||
/**
|
||||
*
|
||||
* @name experimental.svg.mode
|
||||
* @type {string}
|
||||
* @default 'inline'
|
||||
*
|
||||
* The default technique for handling imported SVG files. Astro will inline the SVG content into your HTML output if not specified.
|
||||
*
|
||||
* - `inline`: Astro will inline the SVG content into your HTML output.
|
||||
* - `sprite`: Astro will generate a sprite sheet with all imported SVG files.
|
||||
*
|
||||
* ```astro
|
||||
* ---
|
||||
* import Logo from './path/to/svg/file.svg';
|
||||
* ---
|
||||
*
|
||||
* <Logo size={24} mode="sprite" />
|
||||
* ```
|
||||
*/
|
||||
mode?: SvgRenderMode;
|
||||
};
|
||||
svg?:
|
||||
| boolean
|
||||
| {
|
||||
/**
|
||||
*
|
||||
* @name experimental.svg.mode
|
||||
* @type {string}
|
||||
* @default 'inline'
|
||||
*
|
||||
* The default technique for handling imported SVG files. Astro will inline the SVG content into your HTML output if not specified.
|
||||
*
|
||||
* - `inline`: Astro will inline the SVG content into your HTML output.
|
||||
* - `sprite`: Astro will generate a sprite sheet with all imported SVG files.
|
||||
*
|
||||
* ```astro
|
||||
* ---
|
||||
* import Logo from './path/to/svg/file.svg';
|
||||
* ---
|
||||
*
|
||||
* <Logo size={24} mode="sprite" />
|
||||
* ```
|
||||
*/
|
||||
mode: SvgRenderMode;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
4
packages/astro/templates/content/types.d.ts
vendored
4
packages/astro/templates/content/types.d.ts
vendored
|
@ -92,7 +92,9 @@ declare module 'astro:content' {
|
|||
collection: C,
|
||||
id: E,
|
||||
): E extends keyof DataEntryMap[C]
|
||||
? Promise<DataEntryMap[C][E]>
|
||||
? string extends keyof DataEntryMap[C]
|
||||
? Promise<DataEntryMap[C][E]> | undefined
|
||||
: Promise<DataEntryMap[C][E]>
|
||||
: Promise<CollectionEntry<C> | undefined>;
|
||||
|
||||
/** Resolve an array of entry references from the same collection */
|
||||
|
|
|
@ -217,6 +217,12 @@ describe('Content Layer', () => {
|
|||
assert.equal(json.entryWithReference.data.heroImage.format, 'jpg');
|
||||
});
|
||||
|
||||
it('loads images with uppercase extensions', async () => {
|
||||
assert.ok(json.atlantis.data.heroImage.src.startsWith('/_astro'));
|
||||
assert.ok(json.atlantis.data.heroImage.src.endsWith('.JPG'));
|
||||
assert.equal(json.atlantis.data.heroImage.format, 'jpg');
|
||||
});
|
||||
|
||||
it('loads images from custom loaders', async () => {
|
||||
assert.ok(json.images[0].data.image.src.startsWith('/_astro'));
|
||||
assert.equal(json.images[0].data.image.format, 'jpg');
|
||||
|
|
42
packages/astro/test/custom-renderer.test.js
Normal file
42
packages/astro/test/custom-renderer.test.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
import assert from 'node:assert/strict';
|
||||
import { after, before, describe, it } from 'node:test';
|
||||
import * as cheerio from 'cheerio';
|
||||
import { loadFixture } from './test-utils.js';
|
||||
|
||||
describe('Custom Renderer - SSR', () => {
|
||||
let fixture;
|
||||
|
||||
before(async () => {
|
||||
fixture = await loadFixture({
|
||||
root: './fixtures/custom-renderer/',
|
||||
});
|
||||
});
|
||||
|
||||
describe('dev', () => {
|
||||
let devServer;
|
||||
|
||||
before(async () => {
|
||||
devServer = await fixture.startDevServer();
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await devServer.stop();
|
||||
});
|
||||
|
||||
it('renders /', async () => {
|
||||
const html = await fixture.fetch('/').then((res) => res.text());
|
||||
const $ = cheerio.load(html);
|
||||
assert.equal($('h1').text(), 'Client Directives');
|
||||
});
|
||||
|
||||
it('renders SSR custom renderer functional components as expected', async () => {
|
||||
const res = await fixture.fetch('/');
|
||||
assert.equal(res.status, 200);
|
||||
|
||||
const html = await res.text();
|
||||
const $ = cheerio.load(html);
|
||||
|
||||
assert.equal($('p').length, 5);
|
||||
});
|
||||
});
|
||||
});
|
BIN
packages/astro/test/fixtures/content-layer/src/content/space/atlantis.JPG
vendored
Normal file
BIN
packages/astro/test/fixtures/content-layer/src/content/space/atlantis.JPG
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
11
packages/astro/test/fixtures/content-layer/src/content/space/atlantis.md
vendored
Normal file
11
packages/astro/test/fixtures/content-layer/src/content/space/atlantis.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: Atlantis
|
||||
description: 'Learn about the Atlantis NASA space shuttle.'
|
||||
publishedDate: 'Sat May 21 2022 00:00:00 GMT-0400 (Eastern Daylight Time)'
|
||||
tags: [space, 90s]
|
||||
heroImage: "./atlantis.JPG"
|
||||
---
|
||||
|
||||
**Source:** [Wikipedia](https://en.wikipedia.org/wiki/Space_Shuttle_Atlantis)
|
||||
|
||||
Space Shuttle Atlantis (Orbiter Vehicle Designation: OV-104) is a Space Shuttle orbiter vehicle belonging to the National Aeronautics and Space Administration (NASA), the spaceflight and space exploration agency of the United States. Constructed by the Rockwell International company in Southern California and delivered to the Kennedy Space Center in Eastern Florida in April 1985, Atlantis is the fourth operational and the second-to-last Space Shuttle built. Its maiden flight was STS-51-J from 3 to 7 October 1985.
|
|
@ -12,6 +12,7 @@ export async function GET() {
|
|||
const simpleLoader = await getCollection('cats');
|
||||
|
||||
const entryWithReference = await getEntry('spacecraft', 'columbia-copy');
|
||||
const atlantis = await getEntry('spacecraft', 'atlantis');
|
||||
const referencedEntry = await getEntry(entryWithReference.data.cat);
|
||||
|
||||
const entryWithImagePath = await getEntry('spacecraft', 'lunar-module');
|
||||
|
@ -49,6 +50,7 @@ export async function GET() {
|
|||
yamlLoader,
|
||||
tomlLoader,
|
||||
nestedJsonLoader,
|
||||
atlantis
|
||||
})
|
||||
);
|
||||
}
|
||||
|
|
9
packages/astro/test/fixtures/custom-renderer/astro.config.mjs
vendored
Normal file
9
packages/astro/test/fixtures/custom-renderer/astro.config.mjs
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { defineConfig } from 'astro/config';
|
||||
|
||||
// in a real-world scenario, this would be provided a separate package
|
||||
import customRenderer from './src/custom-renderer';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [customRenderer()]
|
||||
});
|
11
packages/astro/test/fixtures/custom-renderer/package.json
vendored
Normal file
11
packages/astro/test/fixtures/custom-renderer/package.json
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"name": "@test/custom-renderer",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"astro": "workspace:*"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "astro dev"
|
||||
}
|
||||
}
|
10
packages/astro/test/fixtures/custom-renderer/src/components/CustomRendererTest.ts
vendored
Normal file
10
packages/astro/test/fixtures/custom-renderer/src/components/CustomRendererTest.ts
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
export interface Props {
|
||||
msg: string;
|
||||
}
|
||||
|
||||
export default function CustomRendererTest({ msg }: Props) {
|
||||
return {
|
||||
tag: "p",
|
||||
text: msg
|
||||
}
|
||||
}
|
25
packages/astro/test/fixtures/custom-renderer/src/custom-renderer/client.ts
vendored
Normal file
25
packages/astro/test/fixtures/custom-renderer/src/custom-renderer/client.ts
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
export default (parentElement: HTMLElement) =>
|
||||
|
||||
async (
|
||||
Component: any,
|
||||
props: Record<string, any>,
|
||||
//{ default: children, ...slotted }: Record<string, any>,
|
||||
//{ client }: Record<string, string>,
|
||||
) => {
|
||||
|
||||
// in a real-world scenario, this would be a more complex function
|
||||
// actually rendering the components return value (which might be an AST/VDOM)
|
||||
|
||||
const vdom = Component(props);
|
||||
|
||||
const node: Node = document.createElement(vdom.tag);
|
||||
node.textContent = `${vdom.text} (rendered by client.ts)`;
|
||||
parentElement.appendChild(node);
|
||||
|
||||
// cleanup
|
||||
parentElement.addEventListener('astro:unmount', () => {
|
||||
if (node.parentNode) {
|
||||
node.parentNode.removeChild(node);
|
||||
}
|
||||
}, { once: true });
|
||||
};
|
23
packages/astro/test/fixtures/custom-renderer/src/custom-renderer/index.ts
vendored
Normal file
23
packages/astro/test/fixtures/custom-renderer/src/custom-renderer/index.ts
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
import type { AstroIntegration, AstroRenderer, ContainerRenderer } from 'astro';
|
||||
|
||||
const getRenderer = (): AstroRenderer => ({
|
||||
name: 'custom-renderer',
|
||||
clientEntrypoint: '@custom-renderer/client',
|
||||
serverEntrypoint: '@custom-renderer/server',
|
||||
})
|
||||
|
||||
export const getContainerRenderer = (): ContainerRenderer => ({
|
||||
name: 'custom-renderer',
|
||||
serverEntrypoint: '@custom-renderer/server',
|
||||
})
|
||||
|
||||
export default function (): AstroIntegration {
|
||||
return {
|
||||
name: 'custom-renderer',
|
||||
hooks: {
|
||||
'astro:config:setup': ({ addRenderer }) => {
|
||||
addRenderer(getRenderer());
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
42
packages/astro/test/fixtures/custom-renderer/src/custom-renderer/server.ts
vendored
Normal file
42
packages/astro/test/fixtures/custom-renderer/src/custom-renderer/server.ts
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
import type { NamedSSRLoadedRendererValue, SSRResult } from 'astro';
|
||||
|
||||
type RendererContext = {
|
||||
result: SSRResult;
|
||||
};
|
||||
|
||||
async function check(
|
||||
this: RendererContext,
|
||||
Component: any,
|
||||
//props: Record<string, any>,
|
||||
//children: any,
|
||||
) {
|
||||
|
||||
if (typeof Component !== 'function') return false;
|
||||
|
||||
// in a real-world scenario, this would be a more complex function
|
||||
// that checks if the component should be rendered
|
||||
return true;
|
||||
}
|
||||
|
||||
async function renderToStaticMarkup(
|
||||
this: RendererContext,
|
||||
Component: any,
|
||||
props: Record<string, any>,
|
||||
//{ default: children, ...slotted }: Record<string, any>,
|
||||
//metadata: AstroComponentMetadata | undefined,
|
||||
) {
|
||||
// in a real-world scenario, this would be a more complex function
|
||||
// actually rendering the components return value (which might be an AST/VDOM)
|
||||
// and render it as an HTML string
|
||||
const vdom = Component(props);
|
||||
return { attrs: {}, html: `<${vdom.tag}>${vdom.text} (rendered by server.ts)</${vdom.tag}>` };
|
||||
}
|
||||
|
||||
const renderer: NamedSSRLoadedRendererValue = {
|
||||
name: 'custom-renderer',
|
||||
check,
|
||||
renderToStaticMarkup,
|
||||
supportsAstroStaticSlot: false,
|
||||
};
|
||||
|
||||
export default renderer;
|
30
packages/astro/test/fixtures/custom-renderer/src/pages/index.astro
vendored
Normal file
30
packages/astro/test/fixtures/custom-renderer/src/pages/index.astro
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
import CustomRendererTest from '../components/CustomRendererTest';
|
||||
---
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>Custom Framework / Custom Renderer</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Client Directives</h1>
|
||||
<div>
|
||||
<CustomRendererTest msg="client:only" client:only="custom-renderer" />
|
||||
</div>
|
||||
<div>
|
||||
<CustomRendererTest msg="client:load" client:load />
|
||||
</div>
|
||||
<div>
|
||||
<CustomRendererTest msg="client:visible" client:visible />
|
||||
</div>
|
||||
<div>
|
||||
<CustomRendererTest msg="client:media" client:media="(max-width: 50em)" />
|
||||
</div>
|
||||
<div>
|
||||
<CustomRendererTest msg="client:idle" client:idle />
|
||||
</div>
|
||||
<div>
|
||||
<CustomRendererTest msg="none (SSR)" />
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
9
packages/astro/test/fixtures/custom-renderer/tsconfig.json
vendored
Normal file
9
packages/astro/test/fixtures/custom-renderer/tsconfig.json
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"extends": "astro/tsconfigs/base",
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@custom-renderer/*": ["src/custom-renderer/*"]
|
||||
},
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@ import {
|
|||
} from 'vite';
|
||||
import parseArgs from 'yargs-parser';
|
||||
import { AstroDbError } from '../../runtime/utils.js';
|
||||
import { CONFIG_FILE_NAMES, DB_PATH } from '../consts.js';
|
||||
import { CONFIG_FILE_NAMES, DB_PATH, VIRTUAL_MODULE_ID } from '../consts.js';
|
||||
import { EXEC_DEFAULT_EXPORT_ERROR, EXEC_ERROR } from '../errors.js';
|
||||
import { resolveDbConfig } from '../load-file.js';
|
||||
import { SEED_DEV_FILE_NAME } from '../queries.js';
|
||||
|
@ -153,7 +153,7 @@ function astroDBIntegration(): AstroIntegration {
|
|||
);
|
||||
// Eager load astro:db module on startup
|
||||
if (seedFiles.get().length || localSeedPaths.find((path) => existsSync(path))) {
|
||||
server.ssrLoadModule(resolved.module).catch((e) => {
|
||||
server.ssrLoadModule(VIRTUAL_MODULE_ID).catch((e) => {
|
||||
logger.error(e instanceof Error ? e.message : String(e));
|
||||
});
|
||||
}
|
||||
|
|
|
@ -24,7 +24,13 @@ export async function verify(
|
|||
}
|
||||
}
|
||||
|
||||
await verifyAstroProject(ctx);
|
||||
const isAstroProject = await verifyAstroProject(ctx);
|
||||
if (!isAstroProject) {
|
||||
bannerAbort();
|
||||
newline();
|
||||
error('error', `Astro installation not found in the current directory.`);
|
||||
ctx.exit(1);
|
||||
}
|
||||
|
||||
const ok = await verifyVersions(ctx, registry);
|
||||
if (!ok) {
|
||||
|
|
314
pnpm-lock.yaml
generated
314
pnpm-lock.yaml
generated
|
@ -100,12 +100,12 @@ importers:
|
|||
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
|
||||
'@codspeed/vitest-plugin':
|
||||
specifier: 3.1.1
|
||||
version: 3.1.1(vite@6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vitest@2.1.8(@types/node@18.19.50)(jsdom@23.2.0)(sass@1.81.0))
|
||||
vitest:
|
||||
specifier: 2.1.8
|
||||
version: 2.1.8(@types/node@18.19.50)(jsdom@23.2.0)(sass@1.81.0)
|
||||
|
||||
benchmark/packages/adapter:
|
||||
dependencies:
|
||||
|
@ -142,7 +142,7 @@ importers:
|
|||
examples/basics:
|
||||
dependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/blog:
|
||||
|
@ -157,13 +157,13 @@ importers:
|
|||
specifier: ^3.2.1
|
||||
version: link:../../packages/integrations/sitemap
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/component:
|
||||
devDependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/container-with-vitest:
|
||||
|
@ -172,7 +172,7 @@ importers:
|
|||
specifier: ^4.0.0
|
||||
version: link:../../packages/integrations/react
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
react:
|
||||
specifier: ^18.3.1
|
||||
|
@ -203,7 +203,7 @@ importers:
|
|||
specifier: ^3.14.3
|
||||
version: 3.14.3
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/framework-multiple:
|
||||
|
@ -230,7 +230,7 @@ importers:
|
|||
specifier: ^18.3.1
|
||||
version: 18.3.1
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
preact:
|
||||
specifier: ^10.24.3
|
||||
|
@ -260,7 +260,7 @@ importers:
|
|||
specifier: ^1.3.0
|
||||
version: 1.3.0(preact@10.24.3)
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
preact:
|
||||
specifier: ^10.24.3
|
||||
|
@ -278,7 +278,7 @@ importers:
|
|||
specifier: ^18.3.1
|
||||
version: 18.3.1
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
react:
|
||||
specifier: ^18.3.1
|
||||
|
@ -293,7 +293,7 @@ importers:
|
|||
specifier: ^5.0.0
|
||||
version: link:../../packages/integrations/solid
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
solid-js:
|
||||
specifier: ^1.9.3
|
||||
|
@ -305,7 +305,7 @@ importers:
|
|||
specifier: ^7.0.1
|
||||
version: link:../../packages/integrations/svelte
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
svelte:
|
||||
specifier: ^5.1.16
|
||||
|
@ -317,7 +317,7 @@ importers:
|
|||
specifier: ^5.0.1
|
||||
version: link:../../packages/integrations/vue
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
vue:
|
||||
specifier: ^3.5.12
|
||||
|
@ -326,40 +326,40 @@ importers:
|
|||
examples/hackernews:
|
||||
dependencies:
|
||||
'@astrojs/node':
|
||||
specifier: ^9.0.0-alpha.1
|
||||
version: 9.0.0-alpha.1(astro@packages+astro)
|
||||
specifier: ^9.0.0
|
||||
version: 9.0.0(astro@packages+astro)
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/integration:
|
||||
devDependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/minimal:
|
||||
dependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/portfolio:
|
||||
dependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/ssr:
|
||||
dependencies:
|
||||
'@astrojs/node':
|
||||
specifier: ^9.0.0-alpha.1
|
||||
version: 9.0.0-alpha.1(astro@packages+astro)
|
||||
specifier: ^9.0.0
|
||||
version: 9.0.0(astro@packages+astro)
|
||||
'@astrojs/svelte':
|
||||
specifier: ^7.0.1
|
||||
version: link:../../packages/integrations/svelte
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
svelte:
|
||||
specifier: ^5.1.16
|
||||
|
@ -368,7 +368,7 @@ importers:
|
|||
examples/starlog:
|
||||
dependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
sass:
|
||||
specifier: ^1.80.6
|
||||
|
@ -380,7 +380,7 @@ importers:
|
|||
examples/toolbar-app:
|
||||
devDependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/with-markdoc:
|
||||
|
@ -389,7 +389,7 @@ importers:
|
|||
specifier: ^0.12.1
|
||||
version: link:../../packages/integrations/markdoc
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
|
||||
examples/with-mdx:
|
||||
|
@ -401,7 +401,7 @@ importers:
|
|||
specifier: ^4.0.0
|
||||
version: link:../../packages/integrations/preact
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
preact:
|
||||
specifier: ^10.24.3
|
||||
|
@ -416,7 +416,7 @@ importers:
|
|||
specifier: ^0.5.2
|
||||
version: 0.5.2(nanostores@0.11.3)(preact@10.24.3)
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
nanostores:
|
||||
specifier: ^0.11.3
|
||||
|
@ -437,7 +437,7 @@ importers:
|
|||
specifier: ^1.6.4
|
||||
version: 1.6.4
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
autoprefixer:
|
||||
specifier: ^10.4.20
|
||||
|
@ -455,7 +455,7 @@ importers:
|
|||
examples/with-vitest:
|
||||
dependencies:
|
||||
astro:
|
||||
specifier: ^5.0.1
|
||||
specifier: ^5.0.2
|
||||
version: link:../../packages/astro
|
||||
vitest:
|
||||
specifier: ^2.1.6
|
||||
|
@ -2942,6 +2942,12 @@ importers:
|
|||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
|
||||
packages/astro/test/fixtures/custom-renderer:
|
||||
dependencies:
|
||||
astro:
|
||||
specifier: workspace:*
|
||||
version: link:../../..
|
||||
|
||||
packages/astro/test/fixtures/data-collections:
|
||||
dependencies:
|
||||
astro:
|
||||
|
@ -5630,11 +5636,6 @@ packages:
|
|||
peerDependencies:
|
||||
astro: ^5.0.0
|
||||
|
||||
'@astrojs/node@9.0.0-alpha.1':
|
||||
resolution: {integrity: sha512-5KsaJYuAnKP4tmT/skEWLs4UP6FQhtwIVa26MBU5imiS/aL33cIwmZ7Gl2W0rP/t4Wnz9ehf42lXWXLPekhETw==}
|
||||
peerDependencies:
|
||||
astro: ^5.0.0-alpha.0
|
||||
|
||||
'@astrojs/yaml2ts@0.2.1':
|
||||
resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==}
|
||||
|
||||
|
@ -5940,10 +5941,11 @@ packages:
|
|||
'@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==}
|
||||
'@codspeed/vitest-plugin@3.1.1':
|
||||
resolution: {integrity: sha512-/PJUgxIfuRqpBSbaD8bgWXtbXxCqgnW89dzr3220fMkx/LA6z6oUb4tJGjeVsOWAzAgu0VBdSA+8hC+7D9BIuQ==}
|
||||
peerDependencies:
|
||||
tinybench: ^2.3.0
|
||||
vite: ^4.2.0 || ^5.0.0
|
||||
vitest: '>=1.2.2'
|
||||
|
||||
'@colors/colors@1.5.0':
|
||||
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
|
||||
|
@ -7333,6 +7335,9 @@ packages:
|
|||
'@vitest/expect@2.1.6':
|
||||
resolution: {integrity: sha512-9M1UR9CAmrhJOMoSwVnPh2rELPKhYo0m/CSgqw9PyStpxtkwhmdM6XYlXGKeYyERY1N6EIuzkQ7e3Lm1WKCoUg==}
|
||||
|
||||
'@vitest/expect@2.1.8':
|
||||
resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==}
|
||||
|
||||
'@vitest/mocker@2.1.6':
|
||||
resolution: {integrity: sha512-MHZp2Z+Q/A3am5oD4WSH04f9B0T7UvwEb+v5W0kCYMhtXGYbdyl2NUk1wdSMqGthmhpiThPDp/hEoVwu16+u1A==}
|
||||
peerDependencies:
|
||||
|
@ -7344,21 +7349,47 @@ packages:
|
|||
vite:
|
||||
optional: true
|
||||
|
||||
'@vitest/mocker@2.1.8':
|
||||
resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==}
|
||||
peerDependencies:
|
||||
msw: ^2.4.9
|
||||
vite: ^5.0.0
|
||||
peerDependenciesMeta:
|
||||
msw:
|
||||
optional: true
|
||||
vite:
|
||||
optional: true
|
||||
|
||||
'@vitest/pretty-format@2.1.6':
|
||||
resolution: {integrity: sha512-exZyLcEnHgDMKc54TtHca4McV4sKT+NKAe9ix/yhd/qkYb/TP8HTyXRFDijV19qKqTZM0hPL4753zU/U8L/gAA==}
|
||||
|
||||
'@vitest/pretty-format@2.1.8':
|
||||
resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==}
|
||||
|
||||
'@vitest/runner@2.1.6':
|
||||
resolution: {integrity: sha512-SjkRGSFyrA82m5nz7To4CkRSEVWn/rwQISHoia/DB8c6IHIhaE/UNAo+7UfeaeJRE979XceGl00LNkIz09RFsA==}
|
||||
|
||||
'@vitest/runner@2.1.8':
|
||||
resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==}
|
||||
|
||||
'@vitest/snapshot@2.1.6':
|
||||
resolution: {integrity: sha512-5JTWHw8iS9l3v4/VSuthCndw1lN/hpPB+mlgn1BUhFbobeIUj1J1V/Bj2t2ovGEmkXLTckFjQddsxS5T6LuVWw==}
|
||||
|
||||
'@vitest/snapshot@2.1.8':
|
||||
resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==}
|
||||
|
||||
'@vitest/spy@2.1.6':
|
||||
resolution: {integrity: sha512-oTFObV8bd4SDdRka5O+mSh5w9irgx5IetrD5i+OsUUsk/shsBoHifwCzy45SAORzAhtNiprUVaK3hSCCzZh1jQ==}
|
||||
|
||||
'@vitest/spy@2.1.8':
|
||||
resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==}
|
||||
|
||||
'@vitest/utils@2.1.6':
|
||||
resolution: {integrity: sha512-ixNkFy3k4vokOUTU2blIUvOgKq/N2PW8vKIjZZYsGJCMX69MRa9J2sKqX5hY/k5O5Gty3YJChepkqZ3KM9LyIQ==}
|
||||
|
||||
'@vitest/utils@2.1.8':
|
||||
resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==}
|
||||
|
||||
'@volar/kit@2.4.6':
|
||||
resolution: {integrity: sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==}
|
||||
peerDependencies:
|
||||
|
@ -10212,10 +10243,6 @@ packages:
|
|||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
send@0.18.0:
|
||||
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
send@0.19.0:
|
||||
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
@ -10786,6 +10813,11 @@ packages:
|
|||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
||||
hasBin: true
|
||||
|
||||
vite-node@2.1.8:
|
||||
resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
|
||||
vite-plugin-inspect@0.8.7:
|
||||
resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==}
|
||||
engines: {node: '>=14'}
|
||||
|
@ -10822,6 +10854,37 @@ packages:
|
|||
peerDependencies:
|
||||
vue: '>=3.2.13'
|
||||
|
||||
vite@5.4.11:
|
||||
resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@types/node': ^18.0.0 || >=20.0.0
|
||||
less: '*'
|
||||
lightningcss: ^1.21.0
|
||||
sass: '*'
|
||||
sass-embedded: '*'
|
||||
stylus: '*'
|
||||
sugarss: '*'
|
||||
terser: ^5.4.0
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
less:
|
||||
optional: true
|
||||
lightningcss:
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
sass-embedded:
|
||||
optional: true
|
||||
stylus:
|
||||
optional: true
|
||||
sugarss:
|
||||
optional: true
|
||||
terser:
|
||||
optional: true
|
||||
|
||||
vite@6.0.1:
|
||||
resolution: {integrity: sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==}
|
||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
||||
|
@ -10895,6 +10958,31 @@ packages:
|
|||
jsdom:
|
||||
optional: true
|
||||
|
||||
vitest@2.1.8:
|
||||
resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@edge-runtime/vm': '*'
|
||||
'@types/node': ^18.0.0 || >=20.0.0
|
||||
'@vitest/browser': 2.1.8
|
||||
'@vitest/ui': 2.1.8
|
||||
happy-dom: '*'
|
||||
jsdom: '*'
|
||||
peerDependenciesMeta:
|
||||
'@edge-runtime/vm':
|
||||
optional: true
|
||||
'@types/node':
|
||||
optional: true
|
||||
'@vitest/browser':
|
||||
optional: true
|
||||
'@vitest/ui':
|
||||
optional: true
|
||||
happy-dom:
|
||||
optional: true
|
||||
jsdom:
|
||||
optional: true
|
||||
|
||||
volar-service-css@0.0.61:
|
||||
resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==}
|
||||
peerDependencies:
|
||||
|
@ -11326,14 +11414,6 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@astrojs/node@9.0.0-alpha.1(astro@packages+astro)':
|
||||
dependencies:
|
||||
astro: link:packages/astro
|
||||
send: 0.18.0
|
||||
server-destroy: 1.0.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@astrojs/yaml2ts@0.2.1':
|
||||
dependencies:
|
||||
yaml: 2.5.1
|
||||
|
@ -11781,11 +11861,11 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
'@codspeed/tinybench-plugin@3.1.1(tinybench@2.9.0)':
|
||||
'@codspeed/vitest-plugin@3.1.1(vite@6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))(vitest@2.1.8(@types/node@18.19.50)(jsdom@23.2.0)(sass@1.81.0))':
|
||||
dependencies:
|
||||
'@codspeed/core': 3.1.1
|
||||
stack-trace: 1.0.0-pre2
|
||||
tinybench: 2.9.0
|
||||
vite: 6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)
|
||||
vitest: 2.1.8(@types/node@18.19.50)(jsdom@23.2.0)(sass@1.81.0)
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
|
@ -13046,6 +13126,13 @@ snapshots:
|
|||
chai: 5.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/expect@2.1.8':
|
||||
dependencies:
|
||||
'@vitest/spy': 2.1.8
|
||||
'@vitest/utils': 2.1.8
|
||||
chai: 5.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/mocker@2.1.6(vite@6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1))':
|
||||
dependencies:
|
||||
'@vitest/spy': 2.1.6
|
||||
|
@ -13054,31 +13141,64 @@ snapshots:
|
|||
optionalDependencies:
|
||||
vite: 6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)
|
||||
|
||||
'@vitest/mocker@2.1.8(vite@5.4.11(@types/node@18.19.50)(sass@1.81.0))':
|
||||
dependencies:
|
||||
'@vitest/spy': 2.1.8
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.14
|
||||
optionalDependencies:
|
||||
vite: 5.4.11(@types/node@18.19.50)(sass@1.81.0)
|
||||
|
||||
'@vitest/pretty-format@2.1.6':
|
||||
dependencies:
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/pretty-format@2.1.8':
|
||||
dependencies:
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/runner@2.1.6':
|
||||
dependencies:
|
||||
'@vitest/utils': 2.1.6
|
||||
pathe: 1.1.2
|
||||
|
||||
'@vitest/runner@2.1.8':
|
||||
dependencies:
|
||||
'@vitest/utils': 2.1.8
|
||||
pathe: 1.1.2
|
||||
|
||||
'@vitest/snapshot@2.1.6':
|
||||
dependencies:
|
||||
'@vitest/pretty-format': 2.1.6
|
||||
magic-string: 0.30.14
|
||||
pathe: 1.1.2
|
||||
|
||||
'@vitest/snapshot@2.1.8':
|
||||
dependencies:
|
||||
'@vitest/pretty-format': 2.1.8
|
||||
magic-string: 0.30.14
|
||||
pathe: 1.1.2
|
||||
|
||||
'@vitest/spy@2.1.6':
|
||||
dependencies:
|
||||
tinyspy: 3.0.2
|
||||
|
||||
'@vitest/spy@2.1.8':
|
||||
dependencies:
|
||||
tinyspy: 3.0.2
|
||||
|
||||
'@vitest/utils@2.1.6':
|
||||
dependencies:
|
||||
'@vitest/pretty-format': 2.1.6
|
||||
loupe: 3.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/utils@2.1.8':
|
||||
dependencies:
|
||||
'@vitest/pretty-format': 2.1.8
|
||||
loupe: 3.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@volar/kit@2.4.6(typescript@5.7.2)':
|
||||
dependencies:
|
||||
'@volar/language-service': 2.4.6
|
||||
|
@ -16492,24 +16612,6 @@ snapshots:
|
|||
|
||||
semver@7.6.3: {}
|
||||
|
||||
send@0.18.0:
|
||||
dependencies:
|
||||
debug: 2.6.9
|
||||
depd: 2.0.0
|
||||
destroy: 1.2.0
|
||||
encodeurl: 1.0.2
|
||||
escape-html: 1.0.3
|
||||
etag: 1.8.1
|
||||
fresh: 0.5.2
|
||||
http-errors: 2.0.0
|
||||
mime: 1.6.0
|
||||
ms: 2.1.3
|
||||
on-finished: 2.4.1
|
||||
range-parser: 1.2.1
|
||||
statuses: 2.0.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
send@0.19.0:
|
||||
dependencies:
|
||||
debug: 2.6.9
|
||||
|
@ -17213,6 +17315,24 @@ snapshots:
|
|||
- tsx
|
||||
- yaml
|
||||
|
||||
vite-node@2.1.8(@types/node@18.19.50)(sass@1.81.0):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.3.7
|
||||
es-module-lexer: 1.5.4
|
||||
pathe: 1.1.2
|
||||
vite: 5.4.11(@types/node@18.19.50)(sass@1.81.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
- lightningcss
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite-plugin-inspect@0.8.7(rollup@4.27.4)(vite@6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1)):
|
||||
dependencies:
|
||||
'@antfu/utils': 0.7.10
|
||||
|
@ -17278,6 +17398,16 @@ snapshots:
|
|||
svgo: 3.3.2
|
||||
vue: 3.5.13(typescript@5.7.2)
|
||||
|
||||
vite@5.4.11(@types/node@18.19.50)(sass@1.81.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.49
|
||||
rollup: 4.27.4
|
||||
optionalDependencies:
|
||||
'@types/node': 18.19.50
|
||||
fsevents: 2.3.3
|
||||
sass: 1.81.0
|
||||
|
||||
vite@6.0.1(@types/node@18.19.50)(jiti@1.21.6)(sass@1.81.0)(yaml@2.5.1):
|
||||
dependencies:
|
||||
esbuild: 0.24.0
|
||||
|
@ -17333,6 +17463,42 @@ snapshots:
|
|||
- tsx
|
||||
- yaml
|
||||
|
||||
vitest@2.1.8(@types/node@18.19.50)(jsdom@23.2.0)(sass@1.81.0):
|
||||
dependencies:
|
||||
'@vitest/expect': 2.1.8
|
||||
'@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@18.19.50)(sass@1.81.0))
|
||||
'@vitest/pretty-format': 2.1.8
|
||||
'@vitest/runner': 2.1.8
|
||||
'@vitest/snapshot': 2.1.8
|
||||
'@vitest/spy': 2.1.8
|
||||
'@vitest/utils': 2.1.8
|
||||
chai: 5.1.2
|
||||
debug: 4.3.7
|
||||
expect-type: 1.1.0
|
||||
magic-string: 0.30.14
|
||||
pathe: 1.1.2
|
||||
std-env: 3.8.0
|
||||
tinybench: 2.9.0
|
||||
tinyexec: 0.3.1
|
||||
tinypool: 1.0.1
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.4.11(@types/node@18.19.50)(sass@1.81.0)
|
||||
vite-node: 2.1.8(@types/node@18.19.50)(sass@1.81.0)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 18.19.50
|
||||
jsdom: 23.2.0
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- lightningcss
|
||||
- msw
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
volar-service-css@0.0.61(@volar/language-service@2.4.6):
|
||||
dependencies:
|
||||
vscode-css-languageservice: 6.3.1
|
||||
|
|
Loading…
Add table
Reference in a new issue