fix(deps): update dependency astro to v4 #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^3.0.8
->^4.0.0
Release Notes
withastro/astro (astro)
v4.14.6
Compare Source
Patch Changes
#11847
45b599c
Thanks @ascorbic! - Fixes a case where Vite would be imported by the SSR runtime, causing bundling errors and bloat.#11822
6fcaab8
Thanks @bluwy! - Marks internalvite-plugin-fileurl
plugin withenforce: 'pre'
#11713
497324c
Thanks @voidfill! - Prevents prefetching of the same urls with different hashes.#11814
2bb72c6
Thanks @eduardocereto! - Updates the documentation for experimental Content Layer API with a corrected code example#11842
1ffaae0
Thanks @stephan281094! - Fixes a typo in theMissingImageDimension
error message#11828
20d47aa
Thanks @bholmesdev! - Improves error message when invalid data is returned by an Action.v4.14.5
Compare Source
Patch Changes
#11809
62e97a2
Thanks @bholmesdev! - Fixes usage of.transform()
,.refine()
,.passthrough()
, and other effects on Action form inputs.#11812
260c4be
Thanks @bholmesdev! - ExposesActionAPIContext
type from theastro:actions
module.#11813
3f7630a
Thanks @bholmesdev! - Fixes unexpectedundefined
value when calling an action from the client without a return value.v4.14.4
Compare Source
Patch Changes
#11794
3691a62
Thanks @bholmesdev! - Fixes unexpected warning log when using Actions on "hybrid" rendered projects.#11801
9f943c1
Thanks @delucis! - Fixes a bug where thefilePath
property was not available on content collection entries when using the content layerfile()
loader with a JSON file that contained an object instead of an array. This was breaking use of theimage()
schema utility among other things.v4.14.3
Compare Source
Patch Changes
#11780
c6622ad
Thanks @Princesseuh! - Deprecates the Squoosh image service, to be removed in Astro 5.0. We recommend migrating to the default Sharp service.#11790
41c3fcb
Thanks @sarah11918! - Updates the documentation for experimentalastro:env
with a corrected link to the RFC proposal#11773
86a3391
Thanks @ematipico! - Changes messages logged when using unsupported, deprecated, or experimental adapter features for clarity#11745
89bab1e
Thanks @bluwy! - Prints prerender dynamic value usage warning only if it's used#11774
c6400ab
Thanks @florian-lefebvre! - Fixes the path returned byinjectTypes
#11730
2df49a6
Thanks @florian-lefebvre! - Simplifies path operations ofastro sync
#11771
49650a4
Thanks @florian-lefebvre! - Fixes an error thrown byastro sync
when anastro:env
virtual module is imported inside the Content Collections config#11744
b677429
Thanks @bluwy! - Disables the WebSocket server when creating a Vite server for loading config filesv4.14.2
Compare Source
Patch Changes
391324d
Thanks @bluwy! - Reverts back toyargs-parser
package for CLI argument parsingv4.14.1
Compare Source
Patch Changes
#11725
6c1560f
Thanks @ascorbic! - Prevents content layer importing node builtins in runtime#11692
35af73a
Thanks @matthewp! - Prevent errant HTML from crashing server islandsWhen an HTML minifier strips away the server island comment, the script can't correctly know where the end of the fallback content is. This makes it so that it simply doesn't remove any DOM in that scenario. This means the fallback isn't removed, but it also doesn't crash the browser.
#11727
3c2f93b
Thanks @florian-lefebvre! - Fixes a type issue when using the Content Layer in devv4.14.0
Compare Source
Minor Changes
#11657
a23c69d
Thanks @bluwy! - Deprecates the option for route-generating files to export a dynamic value forprerender
. Only static values are now supported (e.g.export const prerender = true
or= false
). This allows for better treeshaking and bundling configuration in the future.Adds a new
"astro:route:setup"
hook to the Integrations API to allow you to dynamically set options for a route at build or request time through an integration, such as enabling on-demand server rendering.To migrate from a dynamic export to the new hook, update or remove any dynamic
prerender
exports from individual routing files:// src/pages/blog/[slug].astro - export const prerender = import.meta.env.PRERENDER
Instead, create an integration with the
"astro:route:setup"
hook and update the route'sprerender
option:#11360
a79a8b0
Thanks @ascorbic! - Adds a newinjectTypes()
utility to the Integration API and refactors how type generation worksUse
injectTypes()
in theastro:config:done
hook to inject types into your user's project by adding a new a*.d.ts
file.The
filename
property will be used to generate a file at/.astro/integrations/<normalized_integration_name>/<normalized_filename>.d.ts
and must end with".d.ts"
.The
content
property will create the body of the file, and must be valid TypeScript.Additionally,
injectTypes()
returns a URL to the normalized path so you can overwrite its content later on, or manipulate it in any way you want.Codegen has been refactored. Although
src/env.d.ts
will continue to work as is, we recommend you update it:#11605
d3d99fb
Thanks @jcayzac! - Adds a new propertymeta
to Astro's built-in<Code />
component.This allows you to provide a value for Shiki's
meta
attribute to pass options to transformers.The following example passes an option to highlight lines 1 and 3 to Shiki's
tranformerMetaHighlight
:v4.13.4
Compare Source
Patch Changes
#11678
34da907
Thanks @ematipico! - Fixes a case where omitting a semicolon and line ending with carriage return - CRLF - in theprerender
option could throw an error.#11535
932bd2e
Thanks @matthewp! - Encrypt server island propsServer island props are now encrypted with a key generated at build-time. This is intended to prevent accidentally leaking secrets caused by exposing secrets through prop-passing. This is not intended to allow a server island to be trusted to skip authentication, or to protect against any other vulnerabilities other than secret leakage.
See the RFC for an explanation: https://github.com/withastro/roadmap/blob/server-islands/proposals/server-islands.md#props-serialization
#11655
dc0a297
Thanks @billy-le! - Fixes Astro Actionsinput
validation when usingdefault
values with a form input.#11689
c7bda4c
Thanks @ematipico! - Fixes an issue in the Astro actions, where the size of the generated cookie was exceeding the size permitted by theSet-Cookie
header.v4.13.3
Compare Source
Patch Changes
#11653
32be549
Thanks @florian-lefebvre! - Updatesastro:env
docs to reflect current developments and usage guidance#11658
13b912a
Thanks @bholmesdev! - FixesorThrow()
type when calling an Action without aninput
validator.#11603
f31d466
Thanks @bholmesdev! - Improves user experience when render an Action result from a form POST request:?_astroAction=NAME
flag when a result is rendered.Also improves the DX of directing to a new route on success. Actions will now redirect to the route specified in your
action
string on success, and redirect back to the previous page on error. This follows the routing convention of established backend frameworks like Laravel.For example, say you want to redirect to a
/success
route whenactions.signup
succeeds. You can add/success
to youraction
string like so:/success
.You can retrieve the action result from either page using the
Astro.getActionResult()
function.Note on security
This uses a temporary cookie to forward the action result to the next page. The cookie will be deleted when that page is rendered.
⚠ The action result is not encrypted. In general, we recommend returning minimal data from an action handler to a) avoid leaking sensitive information, and b) avoid unexpected render issues once the temporary cookie is deleted. For example, a
login
function may return a user's session id to retrieve from your Astro frontmatter, rather than the entire user object.v4.13.2
Compare Source
Patch Changes
#11648
589d351
Thanks @bholmesdev! - Fixes unexpected error when refreshing a POST request from a form using Actions.#11600
09ec2ca
Thanks @ArmandPhilippot! - DeprecatesgetEntryBySlug
andgetDataEntryById
functions exported byastro:content
in favor ofgetEntry
.#11593
81d7150
Thanks @bholmesdev! - Adds support forDate()
,Map()
, andSet()
from action results. See devalue for a complete list of supported values.Also fixes serialization exceptions when deploying Actions with edge middleware on Netlify and Vercel.
#11617
196092a
Thanks @abubakriz! - Fix toolbar audit incorrectly flagging images as above the fold.#11634
2716f52
Thanks @bholmesdev! - Fixes internal server error when calling an Astro Action without arguments on Vercel.#11628
9aaf58c
Thanks @madbook! - Ensures consistent CSS chunk hashes across different environmentsv4.13.1
Compare Source
Patch Changes
#11584
a65ffe3
Thanks @bholmesdev! - Removes async local storage dependency from Astro Actions. This allows Actions to run in Cloudflare and Stackblitz without opt-in flags or other configuration.This also introduces a new convention for calling actions from server code. Instead of calling actions directly, you must wrap function calls with the new
Astro.callAction()
utility.v4.13.0
Compare Source
Minor Changes
#11507
a62345f
Thanks @ematipico! - Adds color-coding to the console output during the build to highlight slow pages.Pages that take more than 500 milliseconds to render will have their build time logged in red. This change can help you discover pages of your site that are not performant and may need attention.
#11379
e5e2d3e
Thanks @alexanderniebuhr! - Theexperimental.contentCollectionJsonSchema
feature introduced behind a flag in v4.5.0 is no longer experimental and is available for general use.If you are working with collections of type
data
, Astro will now auto-generate JSON schema files for your editor to get IntelliSense and type-checking. A separate file will be created for each data collection in your project based on your collections defined insrc/content/config.ts
using a library calledzod-to-json-schema
.This feature requires you to manually set your schema's file path as the value for
$schema
in each data entry file of the collection:Alternatively, you can set this value in your editor settings. For example, to set this value in VSCode's
json.schemas
setting, provide the path of files to match and the location of your JSON schema:If you were previously using this feature, please remove the experimental flag from your Astro config:
If you have been waiting for stabilization before using JSON Schema generation for content collections, you can now do so.
Please see the content collections guide for more about this feature.
#11542
45ad326
Thanks @ematipico! - Theexperimental.rewriting
feature introduced behind a flag in v4.8.0 is no longer experimental and is available for general use.Astro.rewrite()
andcontext.rewrite()
allow you to render a different page without changing the URL in the browser. Unlike using a redirect, your visitor is kept on the original page they visited.Rewrites can be useful for showing the same content at multiple paths (e.g. /products/shoes/men/ and /products/men/shoes/) without needing to maintain two identical source files.
Rewrites are supported in Astro pages, endpoints, and middleware.
Return
Astro.rewrite()
in the frontmatter of a.astro
page component to display a different page's content, such as fallback localized content:v4.12.3
Compare Source
Patch Changes
#11509
dfbca06
Thanks @bluwy! - Excludes hoisted scripts and styles from Astro components imported with?url
or?raw
#11561
904f1e5
Thanks @ArmandPhilippot! - Uses the correct pageSize default inpage.size
JSDoc comment#11571
1c3265a
Thanks @bholmesdev! - BREAKING CHANGE to the experimental Actions API only. Install the latest@astrojs/react
integration as well if you're using React 19 features.Make
.safe()
the default return value for actions. This means{ data, error }
will be returned when calling an action directly. If you prefer to get the data while allowing errors to throw, chain the.orThrow()
modifier.v4.12.2
Compare Source
Patch Changes
#11505
8ff7658
Thanks @ematipico! - Enhances the dev server logging when rewrites occur during the lifecycle or rendering.The dev server will log the status code before and after a rewrite:
#11506
026e8ba
Thanks @sarah11918! - Fixes typo in documenting theslot="fallback"
attribute for Server Islands experimental feature.#11508
ca335e1
Thanks @cramforce! - Escapes HTML in serialized props#11501
4db78ae
Thanks @martrapp! - Adds the missing export for accessing thegetFallback()
function of the client site router.v4.12.1
Compare Source
Patch Changes
#11486
9c0c849
Thanks @ematipico! - Adds a new function calledaddClientRenderer
to the Container API.This function should be used when rendering components using the
client:*
directives. TheaddClientRenderer
API must be usedafter the use of the
addServerRenderer
:#11500
4e142d3
Thanks @Princesseuh! - Fixes inferRemoteSize type not working#11496
53ccd20
Thanks @alfawal! - Hide the dev toolbar onwindow.print()
(CTRL + P)v4.12.0
Compare Source
Minor Changes
#11341
49b5145
Thanks @madcampos! - Adds support for Shiki'sdefaultColor
option.This option allows you to override the values of a theme's inline style, adding only CSS variables to give you more flexibility in applying multiple color themes.
Configure
defaultColor: false
in your Shiki config to apply throughout your site, or pass to Astro's built-in<Code>
component to style an individual code block.v4.11.6
Compare Source
Patch Changes
#11459
bc2e74d
Thanks @mingjunlu! - Fixes false positive audit warnings on elements with the role "tabpanel".#11472
cb4e6d0
Thanks @delucis! - Avoids targeting all files in thesrc/
directory for eager optimization by Vite. After this change, only JSX, Vue, Svelte, and Astro components get scanned for early optimization.#11387
b498461
Thanks @bluwy! - Fixes prerendering not removing unused dynamic imported chunks#11437
6ccb30e
Thanks @NuroDev! - Fixes a case where Astro's configexperimental.env.schema
keys did not allow numbers. Numbers are still not allowed as the first character to be able to generate valid JavaScript identifiers#11439
08baf56
Thanks @bholmesdev! - Expands theisInputError()
utility fromastro:actions
to accept errors of any type. This should now allow type narrowing from a try / catch block.#11452
0e66849
Thanks @FugiTech! - Fixes an issue where using .nullish() in a formdata Astro action would always parse as a string#11438
619f07d
Thanks @bholmesdev! - Exposes utility types fromastro:actions
for thedefineAction
handler (ActionHandler
) and theActionError
code (ActionErrorCode
).#11456
17e048d
Thanks @RickyC0626! - Fixesastro dev --open
unexpected behavior that spawns a new tab every time a config file is saved#11337
0a4b31f
Thanks @florian-lefebvre! - Adds a new propertyexperimental.env.validateSecrets
to allow validating private variables on the server.By default, this is set to
false
and only public variables are checked on start. If enabled, secrets will also be checked on start (dev/build modes). This is useful for example in some CIs to make sure all your secrets are correctly set before deploying.#11443
ea4bc04
Thanks @bholmesdev! - Expose newActionReturnType
utility fromastro:actions
. This infers the return type of an action by passingtypeof actions.name
as a type argument. This example defines alike
action that returnslikes
as an object:In your client code, you can infer this handler return value with
ActionReturnType
:#11436
7dca68f
Thanks @bholmesdev! - Fixesastro:actions
autocompletion for thedefineAction
accept
property#11455
645e128
Thanks @florian-lefebvre! - Improvesastro:env
invalid variables errorsv4.11.5
Compare Source
Patch Changes
b9e906f
Thanks @matthewp! - Revert change to how boolean attributes workv4.11.4
Compare Source
Patch Changes
#11362
93993b7
Thanks @ematipico! - Fixes an issue where creating manually the i18n middleware could break the logic of the functions of the virtual moduleastro:i18n
#11349
98d9ce4
Thanks @ematipico! - Fixes an issue where Astro didn't throw an error whenAstro.rewrite
was used without providing the experimental flag#11352
a55ee02
Thanks @ematipico! - Fixes an issue where the rewrites didn't update the status code when using manual i18n routing.#11388
3a223b4
Thanks @mingjunlu! - Adjusts the color of punctuations in error overlay.#11369
e6de11f
Thanks @bluwy! - Fixes attribute rendering for non-boolean attributes with boolean valuesv4.11.3
Compare Source
Patch Changes
#11347
33bdc54
Thanks @bluwy! - Fixes installed packages detection when runningastro check
#11327
0df8142
Thanks @ematipico! - Fixes an issue with the container APIs where a runtime error was thrown during the build, when usingpnpm
as package manager.v4.11.2
Compare Source
Patch Changes
#11335
4c4741b
Thanks @ematipico! - Reverts #11292, which caused a regression to the input type#11326
41121fb
Thanks @florian-lefebvre! - Fixes a case where runningastro sync
when using the experimentalastro:env
feature would fail if environment variables were missing#11338
9752a0b
Thanks @zaaakher! - Fixes svg icon margin in devtool tooltip title to look coherent inrtl
andltr
layouts#11331
f1b78a4
Thanks @bluwy! - Removesresolve
package and simplify internal resolve check#11339
8fdbf0e
Thanks @matthewp! - Remove non-fatal errors from telemetryPreviously we tracked non-fatal errors in telemetry to get a good idea of the types of errors that occur in
astro dev
. However this has become noisy over time and results in a lot of data that isn't particularly useful. This removes those non-fatal errors from being tracked.v4.11.1
Compare Source
Patch Changes
#11308
44c61dd
Thanks @ematipico! - Fixes an issue where custom404.astro
and500.astro
were not returning the correct status code when rendered inside a rewriting cycle.#11302
0622567
Thanks @martrapp! - Fixes an issue with the view transition router when redirecting to an URL with different origin.Updated dependencies [
b6afe6a
,41064ce
]:v4.11.0
Compare Source
Minor Changes
#11197
4b46bd9
Thanks @braebo! - AddsShikiTransformer
support to the<Code />
component with a newtransformers
prop.Note that
transformers
only applies classes and you must provide your own CSS rules to target the elements of your code block.v4.10.3
Compare Source
Patch Changes
#11213
94ac7ef
Thanks @florian-lefebvre! - Removes thePUBLIC_
prefix constraint forastro:env
public variables#11213
94ac7ef
Thanks @florian-lefebvre! - BREAKING CHANGE to the experimentalastro:env
feature onlyServer secrets specified in the schema must now be imported from
astro:env/server
. UsinggetSecret()
is no longer required to use these environment variables in your schema:Note that using
getSecret()
with these keys is still possible, but no longer involves any special handling and the raw value will be returned, just like retrieving secrets not specified in your schema.#11234
4385bf7
Thanks @ematipico! - Adds a new function calledaddServerRenderer
to the Container API. Use this function to manually store renderers inside the instance of your container.This new function should be preferred when using the Container API in environments like on-demand pages:
#11249
de60c69
Thanks @markgaze! - Fixes a performance issue with JSON schema generation#11242
e4fc2a0
Thanks @ematipico! - Fixes a case where the virtual moduleastro:container
wasn't resolved#11236
39bc3a5
Thanks @ascorbic! - Fixes a case where symlinked content collection directories were not correctly resolved#11258
d996db6
Thanks @ascorbic! - Adds a new errorRewriteWithBodyUsed
that throws whenAstro.rewrite
is used after the request body has already been read.#11243
ba2b14c
Thanks @V3RON! - Fixes a prerendering issue for libraries innode_modules
when a folder with an underscore is in the path.#11244
d07d2f7
Thanks @ematipico! - Improves the developer experience of the custom500.astro
page in development mode.Before, in development, an error thrown during the rendering phase would display the default error overlay, even when users had the
500.astro
page.Now, the development server will display the
500.astro
and the original error is logged in the console.#11240
2851b0a
Thanks @ascorbic! - Ignores query strings in module identifiers when matching ".astro" file extensions in Vite plugin#11245
e22be22
Thanks @bluwy! - Refactors prerendering chunk handling to correctly remove unused code during the SSR runtimev4.10.2
Compare Source
Patch Changes
#11231
58d7dbb
Thanks @ematipico! - Fixes a regression forgetViteConfig
, where the inline config wasn't merged in the final config.#11228
1e293a1
Thanks @ascorbic! - UpdatesgetCollection()
to always return a cloned array#11207
7d9aac3
Thanks @ematipico! - Fixes an issue in the rewriting logic where old data was not purged during the rewrite flow. This caused some false positives when checking the validity of URL path names during the rendering phase.#11189
75a8fe7
Thanks @ematipico! - Improve error message when usinggetLocaleByPath
on path that doesn't contain any locales.#11195
0a6ab6f
Thanks @florian-lefebvre! - Adds support for enums toastro:env
You can now call
envField.enum
:#11210
66fc028
Thanks @matthewp! - Close the iterator only after rendering is complete#11195
0a6ab6f
Thanks @florian-lefebvre! - Adds additional validation options toastro:env
astro:env
schema datatypesstring
andnumber
now have new optional validation rules:#11211
97724da
Thanks @matthewp! - Let middleware handle the original request URL#10607
7327c6a
Thanks @frankbits! - Fixes an issue where a leading slash created incorrect conflict resolution between pages generated from static routes and catch-all dynamic routesv4.10.1
Compare Source
Patch Changes
#11198
8b9a499
Thanks @florian-lefebvre! - Fixes a case whereastro:env
getSecret
would not retrieve environment variables properly in dev and build modes#11206
734b98f
Thanks @florian-lefebvre! - BREAKING CHANGE to the experimentalastro:env
feature onlyUpdates the adapter
astro:env
entrypoint fromastro:env/setup
toastro/env/setup
#11205
8c45391
Thanks @Nin3lee! - Fixes a typo in the config referencev4.10.0
Compare Source
Minor Changes
#10974
2668ef9
Thanks @florian-lefebvre! - Adds experimental support for theastro:env
API.The
astro:env
API lets you configure a type-safe schema for your environment variables, and indicate whether they should be available on the server or the client. Import and use your defined variables from the appropriate/client
or/server
module:v4.9.3
Compare Source
Patch Changes
#11171
ff8004f
Thanks @Princesseuh! - Guard globalThis.astroAsset usage in proxy code to avoid errors in wonky situations#11178
1734c49
Thanks @theoephraim! - ImprovesisPromise
utility to check the presence ofthen
on an object before trying to access it - which can cause undesired side-effects on Proxy objects#11183
3cfa2ac
Thanks @66Leo66! - Suggestpnpm dlx
instead ofpnpx
in update check.#11147
2d93902
Thanks @kitschpatrol! - Fixes invalid MIME types in Picture source elements for jpg and svg extensions, which was preventing otherwise valid source variations from being shown by the browser#11141 [
19df89f
](https://togithub.com/withasConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.