Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
91 KiB
@astrojs/node
9.5.1
Patch Changes
9.5.0
Minor Changes
-
#14441
62ec8eaThanks @upsuper! - Updates redirect handling to be consistent acrossstaticandserveroutput, aligning with the behavior of other adapters.Previously, the Node.js adapter used default HTML files with meta refresh tags when in
staticoutput. This often resulted in an extra flash of the page on redirect, while also not applying the proper status code for redirections. It's also likely less friendly to search engines.This update ensures that configured redirects are always handled as HTTP redirects regardless of output mode, and the default HTML files for the redirects are no longer generated in
staticoutput. It makes the Node.js adapter more consistent with the other official adapters.No change to your project is required to take advantage of this new adapter functionality. It is not expected to cause any breaking changes. However, if you relied on the previous redirecting behavior, you may need to handle your redirects differently now. Otherwise you should notice smoother redirects, with more accurate HTTP status codes, and may potentially see some SEO gains.
9.4.6
Patch Changes
- #14514
66a26d7Thanks @matthewp! - Fixes compatibility issue with older versions of Astro by makinggetAllowedDomains()call optional and updating peer dependency to requireastro@^5.14.3
9.4.5
Patch Changes
- Updated dependencies [
b8ca69b]:- @astrojs/internal-helpers@0.7.4
9.4.4
Patch Changes
- Updated dependencies [
1e2499e]:- @astrojs/internal-helpers@0.7.3
9.4.3
Patch Changes
9.4.2
Patch Changes
- Updated dependencies [
4d16de7]:- @astrojs/internal-helpers@0.7.2
9.4.1
Patch Changes
5fc3c59Thanks @ematipico! - Fixes a routing bug in standalone mode withtrailingSlashset to"always".
9.4.0
Minor Changes
-
#14188
e3422aaThanks @ascorbic! - Adds support for specifying a host to load prerendered error pagesBy default, if a user defines a custom error page that is prerendered, Astro will load it from the same host as the one that the request is made to. This change allows users to specify a different host for loading prerendered error pages. This can be useful in scenarios such as where the server is running behind a reverse proxy or when prerendered pages are hosted on a different domain.
To use this feature, set the
experimentalErrorPageHostadapter option in your Astro configuration to the desired host URL. For example, if your server is running on localhost and served via a proxy, you can ensure the prerendered error pages are fetched via the localhost URL:import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ // If your server is running on localhost and served via a proxy, set the host like this to ensure prerendered error pages are fetched via the localhost URL experimentalErrorPageHost: 'http://localhost:4321', }), });For more information on enabling and using this experimental feature, see the
@astrojs/nodeadapter docs.
9.3.3
Patch Changes
- Updated dependencies [
0567fb7]:- @astrojs/internal-helpers@0.7.1
9.3.2
Patch Changes
- Updated dependencies [
f4e8889]:- @astrojs/internal-helpers@0.7.0
9.3.1
Patch Changes
- #14148
e4d74baThanks @ColoredCarrot! - fix(node): emit set-cookie header from middlewares for not-found routes (#14136)
9.3.0
Minor Changes
-
#14012
a125a14Thanks @florian-lefebvre! - Adds a new experimental configuration optionexperimentalDisableStreamingto allow you to opt out of Astro's default HTML streaming for pages rendered on demand.HTML streaming helps with performance and generally provides a better visitor experience. In most cases, disabling streaming is not recommended.
However, when you need to disable HTML streaming (e.g. your host only supports non-streamed HTML caching at the CDN level), you can now opt out of the default behavior:
import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone', + experimentalDisableStreaming: true, }), }); -
#13972
db8f8beThanks @ematipico! - Adds support for the experimental static headers Astro feature.When the feature is enabled via the option
experimentalStaticHeaders, and experimental Content Security Policy is enabled, the adapter will generateResponseheaders for static pages, which allows support for CSP directives that are not supported inside a<meta>tag (e.g.frame-ancestors).import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone', experimentalStaticHeaders: true, }), experimental: { cps: true, }, });
9.2.2
Patch Changes
- #13507
660e83fThanks @TheOtterlord! - Handle errors where a module is not found when loading the server entrypoint
9.2.1
Patch Changes
- #13591
5dd2d3fThanks @florian-lefebvre! - Removes unused code
9.2.0
Minor Changes
-
#13527
2fd6a6bThanks @ascorbic! - The experimental session API introduced in Astro 5.1 is now stable and ready for production use.Sessions are used to store user state between requests for on-demand rendered pages. You can use them to store user data, such as authentication tokens, shopping cart contents, or any other data that needs to persist across requests:
--- export const prerender = false; // Not needed with 'server' output const cart = await Astro.session.get('cart'); --- <a href="/checkout">🛒 {cart?.length ?? 0} items</a>Configuring session storage
Sessions require a storage driver to store the data. The Node, Cloudflare and Netlify adapters automatically configure a default driver for you, but other adapters currently require you to specify a custom storage driver in your configuration.
If you are using an adapter that doesn't have a default driver, or if you want to choose a different driver, you can configure it using the
sessionconfiguration option:import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel'; export default defineConfig({ adapter: vercel(), session: { driver: 'upstash', }, });Using sessions
Sessions are available in on-demand rendered pages, API endpoints, actions and middleware.
In pages and components, you can access the session using
Astro.session:--- const cart = await Astro.session.get('cart'); --- <a href="/checkout">🛒 {cart?.length ?? 0} items</a>In endpoints, actions, and middleware, you can access the session using
context.session:export async function GET(context) { const cart = await context.session.get('cart'); return Response.json({ cart }); }If you attempt to access the session when there is no storage driver configured, or in a prerendered page, the session object will be
undefinedand an error will be logged in the console:--- export const prerender = true; const cart = await Astro.session?.get('cart'); // Logs an error. Astro.session is undefined ---Upgrading from Experimental to Stable
If you were previously using the experimental API, please remove the
experimental.sessionflag from your configuration:import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ mode: "standalone", }), - experimental: { - session: true, - }, });See the sessions guide for more information.
9.1.3
Patch Changes
- Updated dependencies [
042d1de]:- @astrojs/internal-helpers@0.6.1
9.1.2
Patch Changes
- Updated dependencies [
1e11f5e]:- @astrojs/internal-helpers@0.6.0
9.1.1
Patch Changes
- #13190
c6bf6b3Thanks @lee-arnold! - Fixes the image endpoint entrypoint
9.1.0
Minor Changes
-
#13145
8d4e566Thanks @ascorbic! - Automatically configures filesystem storage when experimental session enabledIf the
experimental.sessionflag is enabled when using the Node adapter, Astro will automatically configure session storage using the filesystem driver. You can still manually configure session storage if you need to use a different driver or want to customize the session storage configuration.See the experimental session docs for more information on configuring session storage.
9.0.3
Patch Changes
- #13223
23094a1Thanks @ascorbic! - Fixes a bug that caused incorrect redirects for static files with numbers in the file extension
9.0.2
Patch Changes
- #514
ea4297bThanks @ascorbic! - Fixes a bug that caused the preview server to ignore wildcard host options
9.0.1
Patch Changes
- #454
83cedadThanks @alexanderniebuhr! - Improves Astro 5 support
9.0.0
Major Changes
-
#375
e7881f7Thanks @Princesseuh! - Updates internal code to works with Astro 5 changes to hybrid rendering. No changes are necessary to your project, apart from using Astro 5 -
#397
776a266Thanks @Princesseuh! - Welcome to the Astro 5 beta! This release has no changes from the latest alpha of this package, but it does bring us one step closer to the final, stable release.Starting from this release, no breaking changes will be introduced unless absolutely necessary.
To learn how to upgrade, check out the Astro v5.0 upgrade guide in our beta docs site.
-
#392
3a49eb7Thanks @Princesseuh! - Updates internal code for Astro 5 changes. No changes is required to your project, apart from using Astro 5 -
#451
167b369Thanks @ematipico! - Updatessenddependency to v1.1.0
Minor Changes
- #385
bb725b7Thanks @florian-lefebvre! - Cleans upastro:envsupport
9.0.0-beta.3
Major Changes
9.0.0-beta.2
Major Changes
-
#375
e7881f7Thanks @Princesseuh! - Updates internal code to works with Astro 5 changes to hybrid rendering. No changes are necessary to your project, apart from using Astro 5 -
#397
776a266Thanks @Princesseuh! - Welcome to the Astro 5 beta! This release has no changes from the latest alpha of this package, but it does bring us one step closer to the final, stable release.Starting from this release, no breaking changes will be introduced unless absolutely necessary.
To learn how to upgrade, check out the Astro v5.0 upgrade guide in our beta docs site.
-
#392
3a49eb7Thanks @Princesseuh! - Updates internal code for Astro 5 changes. No changes is required to your project, apart from using Astro 5
Minor Changes
- #385
bb725b7Thanks @florian-lefebvre! - Cleans upastro:envsupport
9.0.0-alpha.1
Major Changes
-
#11679
ea71b90Thanks @florian-lefebvre! - Adds stable support forastro:env -
#11770
cfa6a47Thanks @Princesseuh! - Removed support for the Squoosh image service. As the underlying librarylibsquooshis no longer maintained, and the image service sees very little usage we have decided to remove it from Astro.Our recommendation is to use the base Sharp image service, which is more powerful, faster, and more actively maintained.
- import { squooshImageService } from "astro/config"; import { defineConfig } from "astro/config"; export default defineConfig({ - image: { - service: squooshImageService() - } });If you are using this service, and cannot migrate to the base Sharp image service, a third-party extraction of the previous service is available here: https://github.com/Princesseuh/astro-image-service-squoosh
9.0.0-alpha.0
Patch Changes
8.3.4
Patch Changes
8.3.4
Patch Changes
8.3.3
Patch Changes
-
#11535
932bd2eThanks @matthewp! - Move polyfills up before awaiting the env module in the Node.js adapter.Previously the env setting was happening before the polyfills were applied. This means that if the Astro env code (or any dependencies) depended on
crypto, it would not be polyfilled in time.Polyfills should be applied ASAP to prevent races. This moves it to the top of the Node adapter.
8.3.2
Patch Changes
- #11296
5848d97Thanks @florian-lefebvre! - Fixesastro:envgetSecret compatibility
8.3.1
Patch Changes
-
#11261
f5f8ed2Thanks @matthewp! - Fix backwards compat with Astro <= 4.9 -
#11263
7d59750Thanks @wackbyte! - Refactor to use Astro's integration logger for logging
8.3.0
Minor Changes
- #11199
2bdca27Thanks @florian-lefebvre! - Adds support for experimentalastro:envreleased in Astro 4.10
8.2.6
Patch Changes
- #11202
d0248bcThanks @dkobierski! - Fixes suppressed logs when error occurs
8.2.5
Patch Changes
- #10491
28e33a2f9c04373eae5da2e6edb0dc2981bce790Thanks @castarco! - Fixes a bug where the preview server wrongly appends trailing slashes to subresource URLs.
8.2.4
Patch Changes
- #10454
83f9105cd50e2756d02ca2be73ab84f9d582d3f8Thanks @lilnasy! - Prevents crashes caused by rejections of offshoot promises.
8.2.3
Patch Changes
- #10285
d5277df5a4d1e9a8a7b6c8d7b87912e13a163f7fThanks @Princesseuh! - Fixes an issue where malformed requests could cause the server to error in certain cases.
8.2.2
Patch Changes
- #10282
b47dcaa25968ec85ba96fce23381c94a94e389f6Thanks @SatanshuMishra! - Fixes theserver.hostoption to properly listen on all network interfaces when set totrue
8.2.1
Patch Changes
- #10208
8cd38f02456640c063552aef00b2b8a216b3935dThanks @log101! - Fixes custom headers are not added to the Node standalone server responses in preview mode
8.2.0
Minor Changes
- #9143
041fdd5c89920f7ccf944b095f29e451f78b0e28Thanks @ematipico! - Adds experimental support for internationalization domains
8.1.0
Minor Changes
- #9080
a12196d6b59e39f5d405734ecdbf6f6b42b39a93Thanks @msxdan! - Add trailingSlash support to NodeJS adapter
8.0.0
Major Changes
-
#9661
d6edc7540864cf5d294d7b881eb886a3804f6d05Thanks @ematipico! - If host is unset in standalone mode, the server host will now fallback tolocalhostinstead of127.0.0.1. Whenlocalhostis used, the operating system can decide to use either::1(ipv6) or127.0.0.1(ipv4) itself. This aligns with how the Astro dev and preview server works by default.If you relied on
127.0.0.1(ipv4) before, you can set theHOSTenvironment variable to127.0.0.1to explicitly use ipv4. For example,HOST=127.0.0.1 node ./dist/server/entry.mjs. -
#9661
d6edc7540864cf5d294d7b881eb886a3804f6d05Thanks @ematipico! - Breaking: Minimum required Astro version is now 4.2.0. Reorganizes internals to be more maintainable.
Patch Changes
- #9661
d6edc7540864cf5d294d7b881eb886a3804f6d05Thanks @ematipico! - Fixes an issue where the preview server appeared to be ready to serve requests before binding to a port.
7.0.4
Patch Changes
- #9533
48f47b50a0f8bc0fa51760215def36640f79050dThanks @lilnasy! - Fixes a bug where an error while serving response stopped the server.
7.0.3
Patch Changes
- #9479
1baf0b0d3cbd0564954c2366a7278794fad6726eThanks @sarah11918! - Updates README
7.0.2
Patch Changes
- #9471
6bf470cfbThanks @alexnguyennz! - Fix typo in @astrojs/node README
7.0.1
Patch Changes
- #9366
1b4e91898Thanks @lilnasy! - Updates NPM package to refer to the stable Astro version instead of a beta.
7.0.0
Major Changes
- #9199
49aa215a0Thanks @lilnasy! - The internals of the integration have been updated to support Astro 4.0. Make sure to upgrade your Astro version as Astro 3.0 is no longer supported.
7.0.0-beta.1
Major Changes
- #9199
49aa215a0Thanks @lilnasy! - The internals of the integration have been updated to support Astro 4.0. Make sure to upgrade your Astro version as Astro 3.0 is no longer supported.
7.0.0-beta.0
Patch Changes
- Updated dependencies [
abf601233,6201bbe96,cdabf6ef0,1c48ed286,37697a2c5,bd0c2e9ae,0fe3a7ed5,710be505c,153a5abb9]:- astro@4.0.0-beta.0
6.1.0
Minor Changes
- #9125
8f1d50957Thanks @matthewp! - Automatically sets immutable cache headers for assets served from the/_astrodirectory.
6.1.0
Minor Changes
- #9125
8f1d50957Thanks @matthewp! - Automatically sets immutable cache headers for assets served from the/_astrodirectory.
6.0.4
Patch Changes
- #9071
c9487138dThanks @pilcrowOnPaper! - Fixes a bug where the response stream would not cancel when the connection closed
6.0.3
Patch Changes
-
#8737
6f60da805Thanks @ematipico! - Add provenance statement when publishing the library from CI -
Updated dependencies [
6f60da805,d78806dfe,d1c75fe15,aa265d730,78adbc443,21e0757ea,357270f2a]:- astro@3.2.3
6.0.2
Patch Changes
-
#8698
47ea310f0Thanks @Princesseuh! - Use a Node-specific image endpoint to resolve images in dev and Node SSR. This should fix many issues related to getting 404 from the _image endpoint under certain configurations -
Updated dependencies [
31c59ad8b,47ea310f0,345808170]:- astro@3.2.1
6.0.1
Patch Changes
-
#8599
2e1d5f873Thanks @lilnasy! - The node adapter now logs uncaught errors encountered during rendering a page. -
Updated dependencies [
bcad715ce,bdd267d08,e522a5eb4,ed54d4644,70f2a8003,4398e9298,8f8b9069d,5a988eaf6]:- astro@3.1.2
6.0.0
Major Changes
-
#8188
d0679a666Thanks @ematipico! - 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. -
#8179
6011d52d3Thanks @matthewp! - Astro 3.0 Release Candidate -
#8188
148e61d24Thanks @ematipico! - 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.
Minor Changes
-
#8188
cd2d7e769Thanks @ematipico! - 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.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, }, }, }; }
Patch Changes
- Updated dependencies [
d0679a666,db39206cb,adf9fccfd,0c7b42dc6,46c4c0e05,364d861bd,2484dc408,81545197a,6011d52d3,c2c71d90c,cd2d7e769,80f1494cd,e45f30293,c0de7a7b0,65c354969,3c3100851,34cb20021,a824863ab,44f7a2872,1048aca55,be6bbd2c8,9e021a91c,7511a4980,c37632a20,acf652fc1,42785c7b7,8450379db,dbc97b121,7d2f311d4,2540feedb,ea7ff5177,68efd4a8b,7bd1b86f8,036388f66,519a1c4e8,1f58a7a1b,2ae9d37f0,a8f35777e,70f34f5a3,5208a3c8f,84af8ed9d,f003e7364,ffc9e2d3d,732111cdc,0f637c71e,33b8910cf,8a5b0c1f3,148e61d24,e79e3779d,632579dc2,3674584e0,1db4e92c1,e7f872e91,16f09dfff,4477bb41c,55c10d1d5,3e834293d,96beb883a,997a0db8a,80f1494cd,0f0625504,e1ae56e72,f32d093a2,f01eb585e,b76c166bd,a87cbe400,866ed4098,767eb6866,32669cd47]:- astro@3.0.0
6.0.0-rc.1
Major Changes
Patch Changes
-
#8176
d08c83ee3Thanks @ematipico! - Fix an issue whereexpresscouldn't use thehandlerinmiddlewaremode. -
Updated dependencies [
adf9fccfd,582132328,81545197a,6011d52d3,be6bbd2c8,42785c7b7,95120efbe,2ae9d37f0,f003e7364,732111cdc,33b8910cf,e79e3779d,179796405,a87cbe400,767eb6866]:- astro@3.0.0-rc.5
6.0.0-beta.0
Major Changes
-
1eae2e3f7Thanks @Princesseuh! - 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. -
3dc1ca2faThanks @Princesseuh! - 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.
Minor Changes
-
9b4f70a62Thanks @ematipico! - 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.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, }, }, }; }
Patch Changes
- Updated dependencies [
1eae2e3f7,76ddef19c,9b4f70a62,3fdf509b2,2f951cd40,c022a4217,67becaa58,bc37331d8,dfc2d93e3,3dc1ca2fa,1be84dfee,35f01df79,3fdf509b2,78de801f2,59d6e569f,7723c4cc9,fb5cd6b56,631b9c410]:- astro@3.0.0-beta.0
5.3.6
Patch Changes
-
#8176
d08c83ee3Thanks @ematipico! - Fix an issue whereexpresscouldn't use thehandlerinmiddlewaremode. -
Updated dependencies [
582132328,fddd4dc71,cfc465dde,95120efbe,273335cb0,9142178b1,179796405]:
5.3.5
Patch Changes
-
#8141
4c15c0696Thanks @lilnasy! - Fixed an issue where the preview mode handled 404 and 500 routes differently from running app with node directly. -
Updated dependencies [
04caa99c4]:
5.3.4
Patch Changes
-
#8084
560e45924Thanks @hbgl! - Stream request body instead of buffering it in memory. -
Updated dependencies [
c19987df0,560e45924,afc45af20,d1f7143f9,3e46634fd,a12027b6a]:
5.3.3
Patch Changes
-
#6928
b16cb787fThanks @JerryWu1234! - Support the--hostflag when running the standalone server (also works forastro preview --host) -
Updated dependencies [
1b8d30209,405913cdf,87d4b1843,c23377caa,86bee2812]:
5.3.2
Patch Changes
-
#7708
4dd6c7900Thanks @DixCouleur! - fix issuse #7590 "res.writeHead is not a function" in Express/Node middleware -
Updated dependencies [
41afb8405,c00b6f0c4,1f0ee494a,00cb28f49,c264be349,e1e958a75]:
5.3.1
Patch Changes
-
#7754
298dbb89fThanks @natemoo-re! - Improve404behavior in middleware mode -
Updated dependencies [
298dbb89f,9e2203847,5c5da8d2f,0b8375fe8,89d015db6,ebf7ebbf7]:- astro@2.9.7
5.3.0
Minor Changes
- #7385
8e2923cc6Thanks @ematipico! -Astro.localsis now exposed to the adapter API. Node Adapter can now pass in alocalsobject in the SSR handler middleware.
Patch Changes
- Updated dependencies [
30bb36371,3943fa390,7877a06d8,e314a04bf,33cdc8622,76fcdb84d,8e2923cc6,459b5bd05]:- astro@2.7.0
5.2.0
Minor Changes
- #7227
4929332c3Thanks @alex-sherwin! - Fixes NodeJS adapter for multiple set-cookie headers and combining AstroCookies and Response.headers cookies
Patch Changes
-
#7243
409c60028Thanks @Riki-WangJJ! - Support directory redirects and query params at the same time -
#7260
39403c32fThanks @natemoo-re! - Unflags support foroutput: 'hybrid'mode, which enables pre-rendering by default. The additionalexperimental.hybridOutputflag can be safely removed from your configuration. -
Updated dependencies [
57f8d14c0,414eb19d2,a7e2b37ff,dd1a6b6c9,d72cfa7ca,144813f73,b5213654b,e3b8c6296,890a2bc98,39403c32f,101f03209]:- astro@2.6.0
5.1.4
Patch Changes
-
#6991
719002ca5Thanks @MoustaphaDev! - Enable experimental support for hybrid SSR with pre-rendering enabled by defaultastro.config.mjs
import { defineConfig } from 'astro/config'; export default defineConfig({ output: 'hybrid', experimental: { hybridOutput: true, }, });Then add
export const prerender = falseto any page or endpoint you want to opt-out of pre-rendering.src/pages/contact.astro
--- export const prerender = false; if (Astro.request.method === 'POST') { // handle form submission } --- <form method="POST"> <input type="text" name="name" /> <input type="email" name="email" /> <button type="submit">Submit</button> </form> -
#7104
826e02890Thanks @bluwy! - Specify"files"field to only publish necessary files -
Updated dependencies [
4516d7b22,e186ecc5e,c6d7ebefd,914c439bc,e9fc2c221,075eee08f,719002ca5,fc52681ba,fb84622af,cada10a46,cd410c5eb,73ec6f6c1,410428672,763ff2d1e,c1669c001,3d525efc9]:- astro@2.5.0
5.1.3
Patch Changes
5.1.2
Patch Changes
-
#6935
c405cef64Thanks @matthewp! - Catch errors that occur within the stream in the Node adapter -
Updated dependencies [
a98df9374,ac57b5549,50975f2ea,ebae1eaf8,dc062f669]:- astro@2.3.3
- @astrojs/webapi@2.1.1
5.1.1
Patch Changes
-
#6746
4cc1bf61bThanks @Princesseuh! - Fix malformed URLs crashing the server in certain cases -
Updated dependencies [
489dd8d69,a1a4f45b5,a1108e037,8b88e4cf1,d54cbe413,4c347ab51,ff0430786,2f2e572e9,7116c021a]:- astro@2.2.0
5.1.0
Minor Changes
- #6213
afbbc4d5bThanks @Princesseuh! - Updated compilation settings to disable downlevelling for Node 14
Patch Changes
- Updated dependencies [
fec583909,b087b83fe,694918a56,a20610609,a4a74ab70,75921b3cd,afbbc4d5b]:- astro@2.1.0
- @astrojs/webapi@2.1.0
5.0.4
Patch Changes
-
#6323
5e26bc891Thanks @Princesseuh! - Updated Undici to 5.20.0. This fixes a security issue and handling of cookies in certain cases in dev -
Updated dependencies [
5e26bc891,a156ecbb7,ccd72e6bb,504c7bacb,63dda6ded,f91a7f376]:- astro@2.0.15
5.0.3
Patch Changes
5.0.2
Patch Changes
- #6088
6a03649f0Thanks @QingXia-Ela! - fix incorrent encoded when path has other language characters
5.0.1
Patch Changes
-
#5992
60b32d585Thanks @HiDeoo! - FixAstro.url.protocolwhen using the @astrojs/node SSR adapter with HTTPS -
Updated dependencies [
b53e0717b,60b32d585,883e0cc29,dabce6b8c,aedf23f85]:- astro@2.0.2
5.0.0
Major Changes
-
#5782
1f92d64eaThanks @Princesseuh! - Remove support for Node 14. Minimum supported Node version is now >=16.12.0 -
#5707
5eba34fccThanks @bluwy! - Removeastro:build:startbackwards compatibility code -
#5806
7572f7402Thanks @matthewp! - Make astro apeerDependencyof integrationsThis marks
astroas apeerDependencyof several packages that are already gettingmajorversion bumps. This is so we can more properly track the dependency between them and what version of Astro they are being used with.
Minor Changes
- #5832
2303f9514Thanks @HiDeoo! - Add support for serving well-known URIs with the @astrojs/node SSR adapter
Patch Changes
-
#5701
9869f2f6dThanks @wulinsheng123! - Support custom 404 page in standalone mode -
Updated dependencies [
93e633922,16dc36a87,01f3f463b,e2019be6f,05caf445d,49ab4f231,a342a486c,8fb28648f,1f92d64ea,c2180746b,ae8a012a7,cf2de5422,ce5c5dbd4,ec09bb664,665a2c222,259a539d7,f7aa1ec25,4987d6f44,304823811,302e0ef8f,55cea0a9d,dd56c1941,9963c6e4d,46ecd5de3,be901dc98,f6cf92b48,e818cc046,8c100a6fe,116d8835c,840412128,1f49cddf9,7325df412,16c7d0bfd,c55fbcb8e,a9c292026,2a5786419,4a1cabfe6,a8d3e7924,fa8c131f8,64b8082e7,c4b0cb8bf,1f92d64ea,23dc9ea96,63a6ceb38,a3a7fc929,52209ca2a,5fd9208d4,5eba34fcc,899214298,3a00ecb3e,5eba34fcc,2303f9514,1ca81c16b,b66d7195c]:- astro@2.0.0
- @astrojs/webapi@2.0.0
5.0.0-beta.1
See changes in 5.0.0-beta.1
Major Changes
-
#5782
1f92d64eaThanks @Princesseuh! - Remove support for Node 14. Minimum supported Node version is now >=16.12.0 -
#5806
7572f7402Thanks @matthewp! - Make astro apeerDependencyof integrationsThis marks
astroas apeerDependencyof several packages that are already gettingmajorversion bumps. This is so we can more properly track the dependency between them and what version of Astro they are being used with.
Minor Changes
- #5832
2303f9514Thanks @HiDeoo! - Add support for serving well-known URIs with the @astrojs/node SSR adapter
Patch Changes
-
#5701
9869f2f6dThanks @wulinsheng123! - Support custom 404 page in standalone mode -
Updated dependencies [
01f3f463b,1f92d64ea,c2180746b,ae8a012a7,cf2de5422,ec09bb664,665a2c222,f7aa1ec25,302e0ef8f,840412128,1f49cddf9,c55fbcb8e,4a1cabfe6,c4b0cb8bf,1f92d64ea,23dc9ea96,63a6ceb38,52209ca2a,2303f9514]:- astro@2.0.0-beta.2
- @astrojs/webapi@2.0.0-beta.0
5.0.0-beta.0
See changes in 5.0.0-beta.0
Major Changes
Patch Changes
4.0.0
Patch Changes
- Updated dependencies [
d85ec7484,d2960984c,31ec84797,5ec0f6ed5,dced4a8a2,6b156dd3b]:- astro@1.7.0
3.1.1
Patch Changes
-
#5560
281ea9fc3Thanks @natemoo-re! - Improve error message when serverEntrypoint does not exist -
Updated dependencies [
b2f0210c4,02bb0a1cc,2bd23e454]:- astro@1.6.15
3.1.0
Minor Changes
-
#5418
aa16b6cebThanks @jbanety! - Sometimes Astro sends a ReadableStream as a response and it raise an error TypeError: body is not async iterable.I added a function to get a response iterator from different response types (sourced from apollo-client).
With this, node adapter can handle all the Astro response types.
-
#5421
12236dbc0Thanks @Scttpr! - Allow HOST env variable to be provided at runtime
Patch Changes
3.0.0
Major Changes
-
#5290
b2b291d29Thanks @matthewp! - Handle base configuration in adaptersThis allows adapters to correctly handle
baseconfiguration. Internally Astro now matches routes when the URL includes thebase.Adapters now also have access to the
removeBasemethod which will remove thebasefrom a pathname. This is useful to look up files for static assets.
Patch Changes
2.0.2
Patch Changes
2.0.1
Patch Changes
-
#5114
5c0c6e1acThanks @matthewp! - Fixes finding the client folder for serving assets -
#5111
df4d84610Thanks @rishi-raj-jain! - fix port in standalone mode
2.0.0
Major Changes
-
#5056
e55af8a23Thanks @matthewp! - # Standalone mode for the Node.js adapterNew in
@astrojs/nodeis support for standalone mode. With standalone mode you can start your production server without needing to write any server JavaScript yourself. The server starts simply by running the script like so:node ./dist/server/entry.mjsTo enable standalone mode, set the new
modeto'standalone'option in your Astro config:import { defineConfig } from 'astro/config'; import nodejs from '@astrojs/node'; export default defineConfig({ output: 'server', adapter: nodejs({ mode: 'standalone', }), });See the @astrojs/node documentation to learn all of the options available in standalone mode.
Breaking change
This is a semver major change because the new
modeoption is required. Existing @astrojs/node users who are using their own HTTP server framework such as Express can upgrade by setting themodeoption to'middleware'in order to build to a middleware mode, which is the same behavior and API as before.import { defineConfig } from 'astro/config'; import nodejs from '@astrojs/node'; export default defineConfig({ output: 'server', adapter: nodejs({ mode: 'middleware', }), });
Minor Changes
-
#5056
e55af8a23Thanks @matthewp! - # Adapter support forastro previewAdapters are now about to support the
astro previewcommand via a new integration option. The Node.js adapter@astrojs/nodeis the first of the built-in adapters to gain support for this. What this means is that if you are using@astrojs/nodeyou can new preview your SSR app by running:npm run previewAdapter API
We will be updating the other first party Astro adapters to support preview over time. Adapters can opt in to this feature by providing the
previewEntrypointvia thesetAdapterfunction inastro:config:donehook. The Node.js adapter's code looks like this:export default function() { return { name: '@astrojs/node', hooks: { 'astro:config:done': ({ setAdapter, config }) => { setAdapter({ name: '@astrojs/node', serverEntrypoint: '@astrojs/node/server.js', + previewEntrypoint: '@astrojs/node/preview.js', exports: ['handler'], }); // more here } } }; }The
previewEntrypointis a module in the adapter's package that is a Node.js script. This script is run whenastro previewis run and is charged with starting up the built server. See the Node.js implementation in@astrojs/nodeto see how that is implemented. -
#5056
e55af8a23Thanks @matthewp! - # New build configurationThe ability to customize SSR build configuration more granularly is now available in Astro. You can now customize the output folder for
server(the server code for SSR),client(your client-side JavaScript and assets), andserverEntry(the name of the entrypoint server module). Here are the defaults:import { defineConfig } from 'astro/config'; export default defineConfig({ output: 'server', build: { server: './dist/server/', client: './dist/client/', serverEntry: 'entry.mjs', }, });These new configuration options are only supported in SSR mode and are ignored when building to SSG (a static site).
Integration hook change
The integration hook
astro:build:startincludes a parambuildConfigwhich includes all of these same options. You can continue to use this param in Astro 1.x, but it is deprecated in favor of the newbuild.configoptions. All of the built-in adapters have been updated to the new format. If you have an integration that depends on this param we suggest upgrading to do this instead:export default function myIntegration() { return { name: 'my-integration', hooks: { 'astro:config:setup': ({ updateConfig }) => { updateConfig({ build: { server: '...', }, }); }, }, }; }
1.1.0
Minor Changes
-
#4876
d3091f89eThanks @matthewp! - Adds the Astro.cookies APIAstro.cookiesis a new API for manipulating cookies in Astro components and API routes.In Astro components, the new
Astro.cookiesobject is a map-like object that allows you to get, set, delete, and check for a cookie's existence (has):--- type Prefs = { darkMode: boolean; }; Astro.cookies.set<Prefs>( 'prefs', { darkMode: true }, { expires: '1 month', }, ); const prefs = Astro.cookies.get<Prefs>('prefs').json(); --- <body data-theme={prefs.darkMode ? 'dark' : 'light'}></body>Once you've set a cookie with Astro.cookies it will automatically be included in the outgoing response.
This API is also available with the same functionality in API routes:
export function post({ cookies }) { cookies.set('loggedIn', false); return new Response(null, { status: 302, headers: { Location: '/login', }, }); }See the RFC to learn more.
1.0.1
Patch Changes
- #4558
742966456Thanks @tony-sull! - Adding thewithastrokeyword to include the adapters on the Integrations Catalog
1.0.0
Major Changes
-
04ad44563- > Astro v1.0 is out! Read the official announcement post.No breaking changes. This package is now officially stable and compatible with
astro@1.0.0!
Patch Changes
- Updated dependencies [
04ad44563]:- @astrojs/webapi@1.0.0
0.2.1
Patch Changes
0.2.0
Minor Changes
-
#4015
6fd161d76Thanks @matthewp! - Newoutputconfiguration optionThis change introduces a new "output target" configuration option (
output). Setting the output target lets you decide the format of your final build, either:"static"(default): A static site. Your final build will be a collection of static assets (HTML, CSS, JS) that you can deploy to any static site host."server": A dynamic server application. Your final build will be an application that will run in a hosted server environment, generating HTML dynamically for different requests.
If
outputis omitted from your config, the default value"static"will be used.When using the
"server"output target, you must also include a runtime adapter via theadapterconfiguration. An adapter will adapt your final build to run on the deployed platform of your choice (Netlify, Vercel, Node.js, Deno, etc).To migrate: No action is required for most users. If you currently define an
adapter, you will need to also addoutput: 'server'to your config file to make it explicit that you are building a server. Here is an example of what that change would look like for someone deploying to Netlify:import { defineConfig } from 'astro/config'; import netlify from '@astrojs/netlify/functions'; export default defineConfig({ adapter: netlify(), + output: 'server', });
-
#3973
5a23483efThanks @matthewp! - Adds support for Astro.clientAddressThe new
Astro.clientAddressproperty allows you to get the IP address of the requested user.This property is only available when building for SSR, and only if the adapter you are using supports providing the IP address. If you attempt to access the property in a SSG app it will throw an error.
Patch Changes
0.1.6
Patch Changes
0.1.5
Patch Changes
- #3854
b012ee55Thanks @bholmesdev! - [astro add] Support adapters and third party packages
0.1.4
Patch Changes
0.1.3
Patch Changes
0.1.2
Patch Changes
- Updated dependencies [
4de53ecc]:
0.1.1
Patch Changes
815d62f1Thanks @FredKSchott! - no changes.
0.1.0
Minor Changes
- #2979
9d7a4b59Thanks @FredKSchott! - Welcome to the Astro v1.0.0 Beta! Read the official announcement for more details.
0.0.2
Patch Changes
-
#2879
80034c6cThanks @matthewp! - Netlify AdapterThis change adds a Netlify adapter that uses Netlify Functions. You can use it like so:
import { defineConfig } from 'astro/config'; import netlify from '@astrojs/netlify/functions'; export default defineConfig({ adapter: netlify(), });