Merge pull request #8188 from withastro/next

Astro 3.0
This commit is contained in:
Matthew Phillips 2023-08-24 10:38:14 -04:00 committed by GitHub
commit f1c610636a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
1161 changed files with 11981 additions and 35302 deletions

View file

@ -0,0 +1,29 @@
---
'@astrojs/cloudflare': major
'@astrojs/partytown': major
'@astrojs/tailwind': major
'@astrojs/netlify': major
'@astrojs/sitemap': major
'@astrojs/preact': major
'@astrojs/svelte': major
'@astrojs/vercel': major
'@astrojs/react': major
'@astrojs/solid-js': major
'@astrojs/deno': major
'@astrojs/node': major
'@astrojs/lit': major
'@astrojs/vue': major
'create-astro': major
'@astrojs/prism': major
'@astrojs/rss': major
'@astrojs/telemetry': major
'astro': major
'@astrojs/alpinejs': minor
'@astrojs/prefetch': minor
'@astrojs/markdoc': minor
'@astrojs/underscore-redirects': minor
'@astrojs/mdx': minor
'@astrojs/internal-helpers': minor
---
Remove support for Node 16. The lowest supported version by Astro and all integrations is now v18.14.1. As a reminder, Node 16 will be deprecated on the 11th September 2023.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Use `undici` for File changeset for Node 16 compatibility

View file

@ -0,0 +1,5 @@
---
'@astrojs/internal-helpers': patch
---
Trigger re-release to fix `collapseDuplicateSlashes` export

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Do not throw Error when users pass an object with a "type" property

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Removed automatic flattening of `getStaticPaths` result. `.flatMap` and `.flat` should now be used to ensure that you're returning a flat array.

View file

@ -0,0 +1,13 @@
---
'astro': major
---
This import alias is no longer included by default with astro:assets. If you were using this alias with experimental assets, you must convert them to relative file paths, or create your own [import aliases](https://docs.astro.build/en/guides/aliases/).
```diff
---
// src/pages/posts/post-1.astro
- import rocket from '~/assets/rocket.png'
+ import rocket from '../../assets/rocket.png';
---
```

View file

@ -0,0 +1,7 @@
---
'@astrojs/solid-js': major
---
New `include` and `exclude` config options
The Solid integration now has new `include` and `exclude` config options. Use these if you want to use Solid alongside another JSX framework; include specifies files to be compiled for Solid and `exclude` does the opposite.

View file

@ -0,0 +1,11 @@
---
'astro': major
---
Fixes for the `class:list` directive
- Previously, `class:list` would ocassionally not be merged the `class` prop when passed to Astro components. Now, `class:list` is always converted to a `class` prop (as a string value).
- Previously, `class:list` diverged from [`clsx`](https://github.com/lukeed/clsx) in a few edge cases. Now, `class:list` uses [`clsx`](https://github.com/lukeed/clsx) directly.
- `class:list` used to deduplicate matching values, but it no longer does
- `class:list` used to sort individual values, but it no longer does
- `class:list` used to support `Set` and other iterables, but it no longer does

View file

@ -0,0 +1,30 @@
---
'@astrojs/cloudflare': major
'@astrojs/partytown': major
'@astrojs/tailwind': major
'@astrojs/netlify': major
'@astrojs/sitemap': major
'@astrojs/preact': major
'@astrojs/svelte': major
'@astrojs/vercel': major
'@astrojs/react': major
'@astrojs/solid-js': major
'@astrojs/deno': major
'@astrojs/node': major
'@astrojs/lit': major
'@astrojs/mdx': major
'@astrojs/vue': major
'@astrojs/markdown-remark': major
'create-astro': major
'@astrojs/prism': major
'@astrojs/rss': major
'@astrojs/telemetry': major
'astro': major
'@astrojs/alpinejs': minor
'@astrojs/prefetch': minor
'@astrojs/markdoc': minor
'@astrojs/underscore-redirects': minor
'@astrojs/internal-helpers': minor
---
Astro 3.0 Release Candidate

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Update error message when Sharp couldn't be found (tends to happen on pnpm notably)

View file

@ -0,0 +1,32 @@
---
'@astrojs/cloudflare': minor
'@astrojs/netlify': minor
'@astrojs/vercel': minor
'@astrojs/deno': minor
'@astrojs/node': minor
'astro': minor
---
Introduced the concept of feature map. A feature map is a list of features that are built-in in Astro, and an Adapter
can tell Astro if it can support it.
```ts
import {AstroIntegration} from "./astro";
function myIntegration(): AstroIntegration {
return {
name: 'astro-awesome-list',
// new feature map
supportedAstroFeatures: {
hybridOutput: 'experimental',
staticOutput: 'stable',
serverOutput: 'stable',
assets: {
supportKind: 'stable',
isSharpCompatible: false,
isSquooshCompatible: false,
},
}
}
}
```

View file

@ -0,0 +1,39 @@
---
'astro': major
'@astrojs/netlify': minor
---
The `build.split` and `build.excludeMiddleware` configuration options are deprecated and have been replaced by options in the adapter config.
If your config includes the `build.excludeMiddleware` option, replace it with `edgeMiddleware` in your adapter options:
```diff
import { defineConfig } from "astro/config";
import netlify from "@astrojs/netlify/functions";
export default defineConfig({
build: {
- excludeMiddleware: true
},
adapter: netlify({
+ edgeMiddleware: true
}),
});
```
If your config includes the `build.split` option, replace it with `functionPerRoute` in your adapter options:
```diff
import { defineConfig } from "astro/config";
import netlify from "@astrojs/netlify/functions";
export default defineConfig({
build: {
- split: true
},
adapter: netlify({
+ functionPerRoute: true
}),
});
```

View file

@ -0,0 +1,7 @@
---
'@astrojs/mdx': major
---
Support Astro 3 JSX format
This upgrades the MDX plugin to correctly work with the new JSX render API in Astro 3.

View file

@ -0,0 +1,5 @@
---
'@astrojs/mdx': patch
---
Re-orders the MDX plugin to run before Astro's JSX plugin

View file

@ -0,0 +1,18 @@
---
'astro': major
---
Sharp is now the default image service used for `astro:assets`. If you would prefer to still use Squoosh, you can update your config with the following:
```ts
import { defineConfig, squooshImageService } from "astro/config";
// https://astro.build/config
export default defineConfig({
image: {
service: squooshImageService(),
}
})
```
However, not only do we recommend using Sharp as it is faster and more reliable, it is also highly likely that the Squoosh service will be removed in a future release.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Call `astro sync` once before calling `astro check`

View file

@ -0,0 +1,9 @@
---
'astro': major
---
Remove support for `Astro.__renderMarkdown` which is used by `@astrojs/markdown-component`.
The `<Markdown />` component was deprecated in Astro v1 and is completely removed in v3. This integration must now be removed from your project.
As an alternative, you can use community packages that provide a similar component like https://github.com/natemoo-re/astro-remote instead.

View file

@ -0,0 +1,29 @@
---
'astro': major
---
Remove backwards-compatible kebab-case transform for camelCase CSS variable names passed to the `style` attribute. If you were relying on the kebab-case transform in your styles, make sure to use the camelCase version to prevent missing styles. For example:
```astro
---
const myValue = "red"
---
<!-- input -->
<div style={{ "--myValue": myValue }}></div>
<!-- output (before) -->
<div style="--my-value:var(--myValue);--myValue:red"></div>
<!-- output (after) -->
<div style="--myValue:red"></div>
```
```diff
<style>
div {
- color: var(--my-value);
+ color: var(--myValue);
}
</style>
```

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Remove deprecated config option types, deprecated script/style attributes, and deprecated `image` export from `astro:content`

View file

@ -0,0 +1,8 @@
---
'@astrojs/cloudflare': major
'@astrojs/netlify': major
'@astrojs/vercel': major
'astro': major
---
When using an adapter that supports neither Squoosh or Sharp, Astro will now automatically use an image service that does not support processing, but still provides the other benefits of `astro:assets` such as enforcing `alt`, no CLS etc to users

View file

@ -0,0 +1,25 @@
---
'@astrojs/rss': major
---
Update the `rss()` default export to return a `Response` instead of a simple object, which is deprecated in Astro 3.0. If you were directly returning the `rss()` result from an endpoint before, this breaking change should not affect you.
You can also import `getRssString()` to get the RSS string directly and use it to return your own Response:
```ts
// src/pages/rss.xml.js
import { getRssString } from '@astrojs/rss';
export async function get(context) {
const rssString = await getRssString({
title: 'Buzzs Blog',
...
});
return new Response(rssString, {
headers: {
'Content-Type': 'application/xml',
},
});
}
```

View file

@ -0,0 +1,7 @@
---
'@astrojs/preact': major
---
New `include` and `exclude` config options
The Preact integration now has new `include` and `exclude` config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and `exclude` does the opposite.

View file

@ -0,0 +1,5 @@
---
'@astrojs/mdx': patch
---
Handle `components` exports handling itself

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Improve fidelity of time stats when running `astro build`

View file

@ -0,0 +1,35 @@
---
'astro': major
---
Export experimental `dev`, `build`, `preview`, and `sync` APIs from `astro`. These APIs allow you to run Astro's commands programmatically, and replaces the previous entry point that runs the Astro CLI.
While these APIs are experimental, the inline config parameter is relatively stable without foreseeable changes. However, the returned results of these APIs are more likely to change in the future.
```ts
import { dev, build, preview, sync, type AstroInlineConfig } from 'astro';
// Inline Astro config object.
// Provide a path to a configuration file to load or set options directly inline.
const inlineConfig: AstroInlineConfig = {
// Inline-specific options...
configFile: './astro.config.mjs',
logLevel: 'info',
// Standard Astro config options...
site: 'https://example.com',
};
// Start the Astro dev server
const devServer = await dev(inlineConfig);
await devServer.stop();
// Build your Astro project
await build(inlineConfig);
// Preview your built project
const previewServer = await preview(inlineConfig);
await previewServer.stop();
// Generate types for your Astro project
await sync(inlineConfig);
```

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Removed support for old syntax of the API routes.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Reimplement https://github.com/withastro/astro/pull/7509 to correctly emit pre-rendered pages now that `build.split` is deprecated and this configuration has been moved to `functionPerRoute` inside the adapter.

View file

@ -0,0 +1,8 @@
---
'astro': minor
---
`astro:`namespace aliases for middleware and components
This adds aliases of `astro:middleware` and `astro:components` for the middleware and components modules. This is to make our documentation consistent between are various modules, where some are virtual modules and others are not. Going forward new built-in modules will use this namespace.

View file

@ -0,0 +1,25 @@
---
'astro': major
---
Remove exports for `astro/internal/*` and `astro/runtime/server/*` in favour of `astro/runtime/*`. Add new `astro/compiler-runtime` export for compiler-specific runtime code.
These are exports for Astro's internal API and should not affect your project, but if you do use these entrypoints, you can migrate like below:
```diff
- import 'astro/internal/index.js';
+ import 'astro/runtime/server/index.js';
- import 'astro/server/index.js';
+ import 'astro/runtime/server/index.js';
```
```diff
import { transform } from '@astrojs/compiler';
const result = await transform(source, {
- internalURL: 'astro/runtime/server/index.js',
+ internalURL: 'astro/compiler-runtime',
// ...
});
```

View file

@ -0,0 +1,17 @@
---
'astro': major
---
Implements a new scope style strategy called `"attribute"`. When enabled, styles are applied using `data-*` attributes.
The **default** value of `scopedStyleStrategy` is `"attribute"`.
If you want to use the previous behaviour, you have to use the `"where"` option:
```diff
import { defineConfig } from 'astro/config';
export default defineConfig({
+ scopedStyleStrategy: 'where',
});
```

View file

@ -0,0 +1,23 @@
---
'astro': minor
---
Integrations can now log messages using Astros built-in logger.
The logger is available to all hooks as an additional parameter:
```ts
import {AstroIntegration} from "./astro";
// integration.js
export function myIntegration(): AstroIntegration {
return {
name: "my-integration",
hooks: {
"astro:config:done": ({ logger }) => {
logger.info("Configure integration...");
}
}
}
}
```

View file

@ -0,0 +1,27 @@
---
'astro': major
---
Astro's JSX handling has been refactored with better support for each framework.
Previously, Astro automatically scanned your components to determine which framework-specific transformations should be used. In practice, supporting advanced features like Fast Refresh with this approach proved difficult.
Now, Astro determines which framework to use with `include` and `exclude` config options where you can specify files and folders on a per-framework basis. When using multiple JSX frameworks in the same project, users should manually control which files belong to each framework using the `include` and `exclude` options.
```js
export default defineConfig({
// The `include` config is only needed in projects that use multiple JSX frameworks;
// if only using one no extra config is needed.
integrations: [
preact({
include: ['**/preact/*']
}),
react({
include: ['**/react/*']
}),
solid({
include: ['**/solid/*'],
}),
]
});
```

View file

@ -0,0 +1,23 @@
---
'@astrojs/vercel': major
---
Remove the Vercel Edge adapter
`@astrojs/vercel/serverless` now supports Edge middleware, so a separate adapter for Edge itself (deploying your entire app to the edge) is no longer necessary. Please update your Astro config to reflect this change:
```diff
// astro.config.mjs
import { defineConfig } from 'astro/config';
- import vercel from '@astrojs/vercel/edge';
+ import vercel from '@astrojs/vercel/serverless';
export default defineConfig({
output: 'server',
adapter: vercel({
+ edgeMiddleware: true
}),
});
```
This adapter had several known limitations and compatibility issues that prevented many people from using it in production. To reduce maintenance costs and because we have a better story with Serveless + Edge Middleware, we are removing the Edge adapter.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Open to configured `base` when `astro dev --open` runs

101
.changeset/pre.json Normal file
View file

@ -0,0 +1,101 @@
{
"mode": "pre",
"tag": "rc",
"initialVersions": {
"astro": "2.9.6",
"@astrojs/prism": "2.1.2",
"@astrojs/rss": "2.4.3",
"create-astro": "3.1.10",
"@astrojs/alpinejs": "0.2.2",
"@astrojs/cloudflare": "6.6.2",
"@astrojs/deno": "4.3.0",
"@astrojs/lit": "2.1.0",
"@astrojs/markdoc": "0.4.4",
"@astrojs/mdx": "0.19.7",
"@astrojs/netlify": "2.5.1",
"@astrojs/node": "5.3.0",
"@astrojs/partytown": "1.2.3",
"@astrojs/preact": "2.2.1",
"@astrojs/prefetch": "0.3.0",
"@astrojs/react": "2.2.1",
"@astrojs/sitemap": "2.0.1",
"@astrojs/solid-js": "2.2.0",
"@astrojs/svelte": "3.1.0",
"@astrojs/tailwind": "4.0.0",
"@astrojs/vercel": "3.7.4",
"@astrojs/vue": "2.2.1",
"@astrojs/internal-helpers": "0.1.1",
"@astrojs/markdown-remark": "2.2.1",
"@astrojs/telemetry": "2.1.1",
"@astrojs/underscore-redirects": "0.2.0"
},
"changesets": [
"afraid-dots-whisper",
"angry-dogs-shake",
"big-tips-whisper",
"brave-cheetahs-float",
"brown-numbers-prove",
"chilled-ducks-grin",
"clever-bats-breathe",
"cool-feet-rest",
"cool-jokes-clap",
"curvy-experts-jog",
"cyan-carrots-stare",
"dirty-lies-cover",
"fair-emus-divide",
"fair-eyes-promise",
"famous-queens-itch",
"four-houses-compete",
"gentle-deers-yawn",
"gentle-meals-crash",
"giant-plants-sip",
"happy-penguins-hug",
"heavy-walls-arrive",
"large-countries-share",
"loud-candles-admire",
"lovely-walls-call",
"many-ears-drum",
"many-pears-explode",
"mighty-dancers-lay",
"nasty-garlics-listen",
"neat-mugs-end",
"neat-owls-run",
"neat-suns-search",
"odd-books-live",
"perfect-horses-tell",
"plenty-keys-add",
"popular-carrots-sneeze",
"purple-buses-prove",
"quick-boats-bow",
"rich-tigers-march",
"rude-ears-play",
"serious-waves-fry",
"silent-bikes-crash",
"six-grapes-look",
"slimy-carrots-sell",
"small-nails-try",
"smart-numbers-shout",
"spicy-eels-rush",
"spicy-icons-live",
"strong-papayas-chew",
"tame-files-glow",
"tasty-camels-speak",
"thin-ants-repeat",
"three-adults-exist",
"three-onions-repeat",
"tricky-candles-suffer",
"twelve-coats-rush",
"twenty-cheetahs-deny",
"unlucky-cougars-heal",
"unlucky-hotels-try",
"unlucky-ravens-type",
"unlucky-sheep-build",
"violet-peaches-invent",
"warm-weeks-yell",
"wet-foxes-sleep",
"wild-bobcats-carry",
"wise-cameras-agree",
"yellow-tips-cover",
"young-roses-teach"
]
}

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Remove StreamingCompatibleResponse polyfill

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Removed duplicate `astro/dist/jsx` export. Please use the `astro/jsx` export instead

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Remove MDX plugin re-ordering hack

View file

@ -0,0 +1,5 @@
---
'astro': major
---
The scoped hash created by the Astro compiler is now **lowercase**.

View file

@ -0,0 +1,8 @@
---
'@astrojs/rss': patch
'astro': patch
---
Deprecate the `markdown.drafts` configuration option.
If you'd like to create draft pages that are visible in dev but not in production, you can [migrate to content collections](https://docs.astro.build/en/guides/content-collections/#migrating-from-file-based-routing) and [manually filter out pages](https://docs.astro.build/en/guides/content-collections/#filtering-collection-queries) with the `draft: true` frontmatter property instead.

View file

@ -0,0 +1,15 @@
---
'astro': major
---
The value of `import.meta.env.BASE_URL`, which is derived from the `base` option, will no longer have a trailing slash added by default or when `trailingSlash: "ignore"` is set. The existing behavior of `base` in combination with `trailingSlash: "always"` or `trailingSlash: "never"` is unchanged.
If your `base` already has a trailing slash, no change is needed.
If your `base` does not have a trailing slash, add one to preserve the previous behaviour:
```diff
// astro.config.mjs
- base: 'my-base',
+ base: 'my-base/',
```

View file

@ -0,0 +1,9 @@
---
'@astrojs/react': major
---
Support for React Refresh
The React integration now fully supports React Refresh and is backed by `@vitejs/plugin-react`.
Also included in this change are new `include` and `exclude` config options. Use these if you want to use React alongside another JSX framework; include specifies files to be compiled for React and `exclude` does the opposite.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
On back navigation only animate view transitions that were animated going forward.

View file

@ -0,0 +1,19 @@
---
'astro': major
---
Astro is smarter about CSS! Small stylesheets are now inlined by default, and no longer incur the cost of additional requests to your server. Your visitors will have to wait less before they see your pages, especially those in remote locations or in a subway.
This may not be news to you if you had opted-in via the `build.inlineStylesheets` configuration. Stabilized in Astro 2.6 and set to "auto" by default for Starlight, this configuration allows you to reduce the number of requests for stylesheets by inlining them into <style> tags. The new default is "auto", which selects assets smaller than 4kB and includes them in the initial response.
To go back to the previous default behavior, change `build.inlineStylesheets` to "never".
```ts
import { defineConfig } from 'astro/config';
export default defineConfig({
build: {
inlineStylesheets: 'never',
},
});
```

View file

@ -0,0 +1,8 @@
---
'astro': major
'@astrojs/netlify': major
'@astrojs/vercel': major
'@astrojs/node': major
---
Reduced the amount of polyfills provided by Astro. Astro will no longer provide (no-op) polyfills for several web apis such as HTMLElement, Image or Document. If you need access to those APIs on the server, we recommend using more proper polyfills available on npm.

View file

@ -0,0 +1,14 @@
---
'@astrojs/markdoc': minor
'@astrojs/mdx': minor
'@astrojs/markdown-remark': major
'astro': major
---
Remove pre-shiki v0.14 theme names for compatibility. Please rename to the new theme names to migrate:
- `material-darker` -> `material-theme-darker`
- `material-default` -> `material-theme`
- `material-lighter` -> `material-theme-lighter`
- `material-ocean` -> `material-theme-ocean`
- `material-palenight` -> `material-theme-palenight`

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Prevent bundling sharp as it errors in runtime

View file

@ -0,0 +1,5 @@
---
'@astrojs/cloudflare': patch
---
Sync Astro Asset support across both modes

View file

@ -0,0 +1,23 @@
---
'@astrojs/netlify': major
---
Remove the Netlify Edge adapter
`@astrojs/netlify/functions` now supports Edge middleware, so a separate adapter for Edge itself (deploying your entire app to the edge) is no longer necessary. Please update your Astro config to reflect this change:
```diff
// astro.config.mjs
import { defineConfig } from 'astro/config';
- import netlify from '@astrojs/netlify/edge';
+ import netlify from '@astrojs/netlify/functions';
export default defineConfig({
output: 'server',
adapter: netlify({
+ edgeMiddleware: true
}),
});
```
This adapter had several known limitations and compatibility issues that prevented many people from using it in production. To reduce maintenance costs and because we have a better story with Serveless + Edge Middleware, we are removing the Edge adapter.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Update Astro types to reflect that compress defaults to true

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Automatically update user's env.d.ts with the proper types to help out migrating away from assets being experimental

View file

@ -0,0 +1,6 @@
---
'@astrojs/telemetry': patch
'astro': patch
---
Add some polyfills for Stackblitz until they support Node 18. Running Astro on Node 16 is still not officially supported, however.

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Update `tsconfig.json` presets with `moduleResolution: 'bundler'` and other new options from TypeScript 5.0. Astro now assumes that you use TypeScript 5.0 (March 2023), or that your editor includes it, ex: VS Code 1.77

View file

@ -0,0 +1,5 @@
---
'astro': major
---
The `astro check` command now requires an external package `@astrojs/check` and an install of `typescript` in your project. This was done in order to make the main `astro` package smaller and give more flexibility to users in regard to the version of TypeScript they use.

View file

@ -0,0 +1,39 @@
---
'astro': major
'@astrojs/vercel': minor
---
The `build.split` and `build.excludeMiddleware` configuration options are deprecated and have been replaced by options in the adapter config.
If your config includes the `build.excludeMiddleware` option, replace it with `edgeMiddleware` in your adapter options:
```diff
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/serverless";
export default defineConfig({
build: {
- excludeMiddleware: true
},
adapter: vercel({
+ edgeMiddleware: true
}),
});
```
If your config includes the `build.split` option, replace it with `functionPerRoute` in your adapter options:
```diff
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/serverless";
export default defineConfig({
build: {
- split: true
},
adapter: vercel({
+ functionPerRoute: true
}),
});
```

View file

@ -0,0 +1,35 @@
---
'astro': major
---
Lowercase names for endpoint functions are now deprecated.
Rename functions to their uppercase equivalent:
```diff
- export function get() {
+ export function GET() {
return new Response(JSON.stringify({ "title": "Bob's blog" }));
}
- export function post() {
+ export function POST() {
return new Response(JSON.stringify({ "title": "Bob's blog" }));
}
- export function put() {
+ export function PUT() {
return new Response(JSON.stringify({ "title": "Bob's blog" }));
}
- export function all() {
+ export function ALL() {
return new Response(JSON.stringify({ "title": "Bob's blog" }));
}
// you can use the whole word "DELETE"
- export function del() {
+ export function DELETE() {
return new Response(JSON.stringify({ "title": "Bob's blog" }));
}
```

View file

@ -0,0 +1,17 @@
---
'astro': major
---
Astro.cookies.get(key) returns undefined if cookie doesn't exist
With this change, Astro.cookies.get(key) no longer always returns a `AstroCookie` object. Instead it now returns `undefined` if the cookie does not exist.
You should update your code if you assume that all calls to `get()` return a value. When using with `has()` you still need to assert the value, like so:
```astro
---
if(Astro.cookies.has(id)) {
const id = Astro.cookies.get(id)!;
}
---
```

View file

@ -0,0 +1,5 @@
---
'@astrojs/mdx': minor
---
Add `astro` as peer dependency

View file

@ -0,0 +1,14 @@
---
'astro': major
---
The property `compressHTML` is now `true` by default. Setting this value to `true` is no longer required.
If you do not want to minify your HTML output, you must set this value to `false` in `astro.config.mjs`.
```diff
import {defineConfig} from "astro/config";
export default defineConfig({
+ compressHTML: false
})
```

View file

@ -0,0 +1,7 @@
---
'astro': major
---
Astro's default port when running the dev or preview server is now `4321`.
This will reduce conflicts with ports used by other tools.

View file

@ -0,0 +1,5 @@
---
'@astrojs/telemetry': patch
---
Remove undici dependency

View file

@ -0,0 +1,13 @@
---
"astro": major
---
`astro:assets` is now enabled by default. If you were previously using the `experimental.assets` flag, please remove it from your config. Also note that the previous `@astrojs/image` integration is incompatible, and must be removed.
This also brings two important changes to using images in Astro:
- New ESM shape: importing an image will now return an object with different properties describing the image such as its path, format and dimensions. This is a breaking change and may require you to update your existing images.
- In Markdown, MDX, and Markdoc, the `![]()` syntax will now resolve relative images located anywhere in your project in addition to remote images and images stored in the `public/` folder. This notably unlocks storing images next to your content.
Please see our existing [Assets page in Docs](https://docs.astro.build/en/guides/assets/) for more information about using `astro:assets`.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
fix: reinsert attribute to specify direction of ViewTransition (forward / back)

View file

@ -0,0 +1,5 @@
---
'astro': minor
---
Add a new `astro/errors` module. Developers can import `AstroUserError`, and provide a `message` and an optional `hint`

View file

@ -0,0 +1,23 @@
---
'@astrojs/cloudflare': major
---
The configuration `build.split` and `build.excludeMiddleware` are deprecated.
You can now configure this behavior using `functionPerRoute` in your Cloudflare integration config:
```diff
import {defineConfig} from "astro/config";
import cloudflare from '@astrojs/cloudflare';
export default defineConfig({
- build: {
- split: true
- },
- adapter: cloudflare()
+ adapter: cloudflare({
+ mode: 'directory',
+ functionPerRoute: true
+ })
})
```

View file

@ -0,0 +1,26 @@
---
'astro': patch
---
Deprecate returning simple objects from endpoints. Endpoints should only return a `Response`.
To return a result with a custom encoding not supported by a `Response`, you can use the `ResponseWithEncoding` utility class instead.
Before:
```ts
export function GET() {
return {
body: '...',
encoding: 'binary',
};
}
```
After:
```ts
export function GET({ ResponseWithEncoding }) {
return new ResponseWithEncoding('...', undefined, 'binary');
}
```

View file

@ -0,0 +1,5 @@
---
'astro': major
---
Remove MDX special `components` export handling

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/basics",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/blog",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/deno",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/docs",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-alpine",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-lit",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-multiple",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-preact",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-react",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-solid",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-svelte",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-vue",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/hackernews",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/minimal",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/non-html-pages",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/portfolio",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/ssr",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-markdown-plugins",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-markdown-shiki",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-mdx",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-nanostores",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-tailwindcss",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-vite-plugin-pwa",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-vitest",
"portsAttributes": {
"3000": {
"4321": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"forwardPorts": [4321],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -2,7 +2,6 @@
packages/**/*.min.js
packages/**/dist/**/*
packages/**/fixtures/**/*
packages/webapi/**/*
packages/astro/vendor/vite/**/*
examples/**/*
scripts/**/*

View file

@ -10,33 +10,13 @@ body:
Thank you for taking the time to file a bug report! Please fill out this form as completely as possible.
✅ I am using the **latest version of Astro** and all plugins.
✅ I am using a version of Node that supports ESM (`v14.18.0+`, or `v16.12.0+`)
- type: input
id: astro-version
✅ I am using a version of Node that Astro supports (`>=18.14.1`)
- type: textarea
id: astro-info
attributes:
label: What version of `astro` are you using?
placeholder: 0.0.0
validations:
required: true
- type: input
id: ssr-adapter
attributes:
label: Are you using an SSR adapter? If so, which one?
placeholder: None, or Netlify, Vercel, Cloudflare, etc.
validations:
required: true
- type: input
id: package-manager
attributes:
label: What package manager are you using?
placeholder: npm, yarn, pnpm
validations:
required: true
- type: input
id: os
attributes:
label: What operating system are you using?
placeholder: Mac, Windows, Linux
label: Astro info
description: Run the command `astro info` in your terminal and paste the output here. Please review the data before submitting in case there is any sensitive information you don't want to share.
render: block
validations:
required: true
- type: input

View file

@ -34,7 +34,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: "pnpm"
- name: Install dependencies

View file

@ -38,7 +38,7 @@ jobs:
strategy:
matrix:
OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [16]
NODE_VERSION: [18]
fail-fast: true
steps:
# Disable crlf so all OS can share the same Turbo cache
@ -85,7 +85,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: "pnpm"
- name: Install dependencies
@ -108,12 +108,12 @@ jobs:
strategy:
matrix:
OS: [ubuntu-latest]
NODE_VERSION: [16, 18]
NODE_VERSION: [18, 20]
include:
- os: macos-latest
NODE_VERSION: 16
NODE_VERSION: 18
- os: windows-latest
NODE_VERSION: 16
NODE_VERSION: 18
fail-fast: false
env:
NODE_VERSION: ${{ matrix.NODE_VERSION }}
@ -155,7 +155,7 @@ jobs:
strategy:
matrix:
OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [16]
NODE_VERSION: [18]
fail-fast: false
env:
NODE_VERSION: ${{ matrix.NODE_VERSION }}
@ -192,7 +192,7 @@ jobs:
strategy:
matrix:
OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [16]
NODE_VERSION: [18]
env:
NODE_VERSION: ${{ matrix.NODE_VERSION }}
steps:

View file

@ -38,7 +38,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: "pnpm"
- name: Install dependencies

View file

@ -30,7 +30,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: "pnpm"
- name: Install dependencies

View file

@ -37,7 +37,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
cache: "pnpm"
- name: Install dependencies

View file

@ -58,7 +58,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
node-version: 18
registry-url: "https://registry.npmjs.org"
cache: "pnpm"

View file

@ -18,7 +18,7 @@ vscode:
- esbenp.prettier-vscode
- dbaeumer.vscode-eslint
ports:
- port: 3000
- port: 4321
onOpen: open-preview
github:
prebuilds:

Some files were not shown because too many files have changed in this diff Show more