Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
140 KiB
@astrojs/cloudflare
12.6.12
Patch Changes
-
#14777
9720b70Thanks @iclectic! - Updates assets handling to use@astrojs/internal-helpers -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.6.11
Patch Changes
- Updated dependencies [
9e9c528,0f75f6b]:- @astrojs/internal-helpers@0.7.5
- @astrojs/underscore-redirects@1.0.0
12.6.10
Patch Changes
-
Updated dependencies [
b8ca69b]:- @astrojs/internal-helpers@0.7.4
- @astrojs/underscore-redirects@1.0.0
12.6.9
Patch Changes
- Updated dependencies [
1e2499e]:- @astrojs/internal-helpers@0.7.3
- @astrojs/underscore-redirects@1.0.0
12.6.8
Patch Changes
-
#14326
c24a8f4Thanks @jsparkdev! - Updatesviteversion to fix CVE -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.6.7
Patch Changes
-
#14281
dfd88deThanks @ascorbic! - Fixes a regression that broke sites that used the compile image service without nodejs_compat set -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.6.6
Patch Changes
-
9ecf359Thanks @alexanderniebuhr! - Improves the image proxy endpoint when using the default compile option to adhere to user configuration regarding the allowed remote domains -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.6.5
Patch Changes
-
#14259
02366e9Thanks @ascorbic! - Removes warning when using the adapter with a static build.The Cloudflare adapter now has several uses outside of on-demand rendered pages, so this warning is misleading. Similar warnings have already been removed from other adapters.
-
#14234
15b55f3Thanks @yanthomasdev! - Fixes an issue that could cause duplicate exports when configuringworkerEntrypoint.namedExports -
#14240
77b18fbThanks @delucis! - Increases the minimum supported version of Astro to 5.7.0 -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.6.4
Patch Changes
- Updated dependencies [
4d16de7]:- @astrojs/internal-helpers@0.7.2
- @astrojs/underscore-redirects@1.0.0
12.6.3
Patch Changes
-
#14066
7abde79Thanks @alexanderniebuhr! - Refactors the internal solution which powers Astro Sessions when running local development with ˋastro devˋ.The adapter now utilizes Cloudflare's local support for Cloudflare KV. This internal change is a drop-in replacement and does not require any change to your projectct code.
However, you now have the ability to connect to the remote Cloudflare KV Namespace if desired and use production data during local development.
-
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.6.2
Patch Changes
-
#13894
b36e72fThanks @florian-lefebvre! - Removes special handling of theASTRO_STUDIO_APP_TOKENenvironment variable -
Updated dependencies [
0567fb7]:- @astrojs/internal-helpers@0.7.1
- @astrojs/underscore-redirects@1.0.0
12.6.1
Patch Changes
- Updated dependencies [
f4e8889]:- @astrojs/internal-helpers@0.7.0
- @astrojs/underscore-redirects@1.0.0
12.6.0
Minor Changes
-
#13837
7cef86fThanks @alexanderniebuhr! - Adds new configuration options to allow you to set a customworkerEntryPointfor Cloudflare Workers. This is useful if you want to use features that require handlers (e.g. Durable Objects, Cloudflare Queues, Scheduled Invocations) not supported by the basic generic entry file.This feature is not supported when running the Astro dev server. However, you can run
astro buildfollowed by eitherwrangler deploy(to deploy it) orwrangler devto preview it.The following example configures a custom entry file that registers a Durable Object and a queue handler:
// astro.config.ts import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ workerEntryPoint: { path: 'src/worker.ts', namedExports: ['MyDurableObject'], }, }), });// src/worker.ts import type { SSRManifest } from 'astro'; import { App } from 'astro/app'; import { handle } from '@astrojs/cloudflare/handler'; import { DurableObject } from 'cloudflare:workers'; class MyDurableObject extends DurableObject<Env> { constructor(ctx: DurableObjectState, env: Env) { super(ctx, env); } } export function createExports(manifest: SSRManifest) { const app = new App(manifest); return { default: { async fetch(request, env, ctx) { await env.MY_QUEUE.send('log'); return handle(manifest, app, request, env, ctx); }, async queue(batch, _env) { let messages = JSON.stringify(batch.messages); console.log(`consumed from our queue: ${messages}`); }, } satisfies ExportedHandler<Env>, MyDurableObject, }; }
Patch Changes
-
#13963
c667c55Thanks @florian-lefebvre! - Fixes a case where the platform proxy would not be disposed when the dev process ended -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0
12.5.5
Patch Changes
-
#13930
acb9b30Thanks @alexanderniebuhr! - Fixes an issue where setting values forAstro.responseresulted in a Cloudflare runtime exception. -
Updated dependencies [
de82ef2,de82ef2,de82ef2]:- @astrojs/underscore-redirects@1.0.0
12.5.4
Patch Changes
-
#13817
b7258f1Thanks @yanthomasdev! - Clarifies and reduces a few logs when starting the dev server with@astrojs/cloudflare.Warnings about sharp support will now be suppressed when you have explicitly set an
imageServiceoption. -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.1
12.5.3
Patch Changes
-
#13792
7910feaThanks @alexeyzimarev! - Unify imported images detection across adapters -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.1
12.5.2
Patch Changes
-
#13731
c3e80c2Thanks @jsparkdev! - update vite to latest version for fixing CVE -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.1
12.5.1
Patch Changes
-
#13591
5dd2d3fThanks @florian-lefebvre! - Removes unused code -
Updated dependencies [
5dd2d3f]:- @astrojs/underscore-redirects@0.6.1
12.5.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.
Patch Changes
- Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
12.4.1
Patch Changes
-
#13596
3752519Thanks @jsparkdev! - update vite to latest version to fix CVE -
#13547
360cb91Thanks @jsparkdev! - Updates vite to the latest version -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
12.4.0
Minor Changes
-
#13514
a9aafecThanks @ascorbic! - Automatically configures Cloudflare KV storage when experimental sessions are enabledIf the
experimental.sessionflag is enabled when using the Cloudflare adapter, Astro will automatically configure the session storage using the Cloudflare KV driver. You can still manually configure the session storage if you need to use a different driver or want to customize the session storage configuration. If you want to use sessions, you will need to create the KV namespace and declare it in your wrangler config. You can do this using the Wrangler CLI:npx wrangler kv namespace create SESSIONThis will log the id of the created namespace. You can then add it to your
wrangler.json/wrangler.tomlfile like this:// wrangler.json { "kv_namespaces": [ { "binding": "SESSION", "id": "<your kv namespace id here>", }, ], }By default it uses the binding name
SESSION, but if you want to use a different binding name you can do so by passing thesessionKVBindingNameoption to the adapter. For example:import { defineConfig } from 'astro/config'; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ output: 'server', site: `http://example.com`, adapter: cloudflare({ platformProxy: { enabled: true, }, sessionKVBindingName: 'MY_SESSION', }), experimental: { session: true, }, });See the Cloudflare KV docs for more details on setting up KV namespaces.
See the experimental session docs for more information on configuring session storage.
Patch Changes
-
#13526
ff9d69eThanks @jsparkdev! - updateviteto the latest version -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
12.3.1
Patch Changes
-
#13505
a98ae5bThanks @ematipico! - Updates the dependencyviteto the latest. -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
12.3.0
Minor Changes
-
#13444
9721f4aThanks @florian-lefebvre! - Adds globalastro:envsupportCloudflare workers now support importing
envin the global scope. Until now, callingastro:envAPIs had to be done within request scope or the values wereundefined.With this release, they can be called anywhere server-side, like any other official adapter.
Patch Changes
-
#13463
d5ad591Thanks @ascorbic! - Fixes a bug that caused builds to fail when a base directory is configured -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
12.2.4
Patch Changes
- Updated dependencies [
042d1de]:- @astrojs/internal-helpers@0.6.1
- @astrojs/underscore-redirects@0.6.0
12.2.3
Patch Changes
-
#13323
80926faThanks @ematipico! - Updatesesbuildandviteto the latest to avoid false positives audits warnings caused byesbuild. -
Updated dependencies [
1e11f5e]:- @astrojs/internal-helpers@0.6.0
- @astrojs/underscore-redirects@0.6.0
12.2.2
Patch Changes
-
#13304
6efd57dThanks @ematipico! - Fixes a small issue where the package was pulling an outdated version of its internal dependencies. -
#13201
065157cThanks @ekwoka! - Includes onerror passthrough param for Cloudflare Image Service -
#13299
2e1321eThanks @bluwy! - Usestinyglobbyfor globbing files -
Updated dependencies []:
- @astrojs/underscore-redirects@0.6.0
12.2.1
Patch Changes
12.2.0
Minor Changes
- #496
4b5cd22Thanks @florian-lefebvre! - Stabilizesastro:envsecrets support
Patch Changes
-
#454
83cedadThanks @alexanderniebuhr! - Improves Astro 5 support -
#501
012b31dThanks @florian-lefebvre! - Refactor of the redirects logic
12.1.0
Minor Changes
- #455
1d4e6fcThanks @meyer! - Addswrangler.jsoncto the default watched config files. If a config file is specified inplatformProxy.configPath, that file location is watched instead of the defaults.
Patch Changes
12.0.1
Patch Changes
- #465
70e0054Thanks @bluwy! - Fixes setting customworkerdandworkerconditions for the ssr environment only
12.0.0
Major Changes
-
#367
e02b54aThanks @alexanderniebuhr! - 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
-
#367
e02b54aThanks @alexanderniebuhr! - Deprecates thefunctionPerRouteoptionThis option is now deprecated, and will be removed entirely in Astro v5.0. We suggest removing this option from your configuration as soon as you are able to:
import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel/serverless'; export default defineConfig({ // ... output: 'server', adapter: vercel({ - functionPerRoute: true, }), }); -
#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.
-
#451
f248546Thanks @ematipico! - Updates esbuild dependency to v0.24.0 -
#392
3a49eb7Thanks @Princesseuh! - Updates internal code for Astro 5 changes. No changes is required to your project, apart from using Astro 5
Patch Changes
12.0.0-beta.1
Major Changes
12.0.0-beta.0
Major Changes
-
#367
e02b54aThanks @alexanderniebuhr! - 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
-
#367
e02b54aThanks @alexanderniebuhr! - Deprecates thefunctionPerRouteoptionThis option is now deprecated, and will be removed entirely in Astro v5.0. We suggest removing this option from your configuration as soon as you are able to:
import { defineConfig } from 'astro/config'; import vercel from '@astrojs/vercel/serverless'; export default defineConfig({ // ... output: 'server', adapter: vercel({ - functionPerRoute: true, }), }); -
#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
11.2.0
Minor Changes
- #423
169ac24Thanks @schummar! - Changes the logic which generates the_routes.jsonfile to improve generation for projects with many static pages, while still making sure all routes work as expected.
Patch Changes
- #409
d63bed8Thanks @alexanderniebuhr! - Fixes an issue wherecloudflare:scoped imports made the build fail. We externalize all imports with thecloudflare:scope by default now.
11.1.0
Minor Changes
- #394
44dfa99Thanks @veitbjarsch! - Added functionality to compare include and exclude rules to reduce the amount of cloudflare rules
11.0.5
Patch Changes
- #387
04e5c38Thanks @veitbjarsch! - Fixes a bug which was caused on windows when splitting static file paths
11.0.4
Patch Changes
11.0.3
Patch Changes
-
#341
a430ab1Thanks @alexanderniebuhr! - Fixes an issue if environment variables where used inside the middleware and a prerendering occured. -
#335
237f332Thanks @alexanderniebuhr! - Fixes an issue displaying images which are optimized duringastro build
11.0.2
Patch Changes
- #340
45d0abbThanks @alexanderniebuhr! - Fixes an issue if environment variables where used inside the middleware and a prerendering occured.
11.0.1
Patch Changes
- #302
dc0039fThanks @alexanderniebuhr! - Fixes an issue where projects break when nowrangler.tomlfile was present
11.0.0
Major Changes
-
#290
1c4145eThanks @alexanderniebuhr! - Cloudflare v11Upgrades
Supported Astro versions
This release drops support for Astro versions
<= 4.10.2. The new supported and required Astro versions are>= 4.10.3. This allowed us to remove additional workarounds related to projects with many prerendered pages. This should fix all bundling issues that are not caused by an upstream package.What should I do?
If you still observe an issue, please check current open issues or create a new one in the repository.
To upgrade an existing project, use the automated
@astrojs/upgradeCLI tool. Alternatively, upgrade manually by running the upgrade command from your package manager:# Recommended: npx @astrojs/upgrade # Manual: npm install astro@latest pnpm upgrade astro --latest yarn upgrade astro --latestChanges
astro:envThis release adds experimental support for
astro:env, which helps to streamline the usage of environment variables for Astro projects. You can read more about it in Astro Docs. IMPORTANT: Cloudflare Bindings are not supported byastro:env, and still should be accessed by usingAstro.locals.runtime.envorcontext.locals.runtime.env.astro:envsupports environment variables only.What should I do?
If you observe any issues, please check current open issues or create a new one in the repository.
To add environment variables to your project, you still need to make sure they are available in three places. You're setup might require different steps to achieve this, so we can't give you a complete step-by-step guide, on how to achieve the requirements, but here are some guidance to get you started:
process.envduring build in your node process (astro build)wrangler.tomlfor local development (astro dev)Cloudflare Pages Dashboardfor production deployments
Add "public" environment variables to your
wrangler.toml. (If you addpages_build_output_dir = "./dist"to yourwrangler.toml, these will be synced to your Cloudflare Pages Dashboard, and you don't have to add them there manually):# wrangler.toml name = "test" +[vars] +API_URL = "https://google.de" +PORT = 4322 # ...If you also need "secret" environment variables (e.g. API Keys, etc.), you add them to your
.dev.varsfile. (These won't be synced automatically, and you need to add them manually as encrypted variables to the Cloudflare Pages Dashboard or usewranglerCLI to push them):# .dev.vars + API_SECRET=123456789With your environment variables added to those two files and synced to the Cloudflare Pages Dashboard, you should be able to use them with
astro:envwhen runningastro dev&astro build, but you need to use Cloudflare's Build Pipeline and Cloudflare's GitHub App connection.However if you build your project locally or inside a custom GitHub Action and deploy with direct upload to Cloudflare, you need to ensure that the environment variables are also available for your build process. The simplest but not safest is to use your shell, e.g.
API_URL=https://google.de PORT=4322 API_SECRET=123456789 astro build. For more complex setups, you should find out the way for your specific setup to provide environment variables to the build process.Additionally, you need to define your schema inside your
astro.config.mjsfile:import { defineConfig, envField } from "astro/config" export default defineConfig({ + experimental: { + env: { + schema: { + API_URL: envField.string({ context: "client", access: "public", optional: true }), + PORT: envField.number({ context: "server", access: "public", default: 4321 }), + API_SECRET: envField.string({ context: "server", access: "secret" }), + } + } + } })Finally, you should be able to access your environment variables in your Astro project, according to the Astro Docs, e.g.
import { API_URL } from "astro:env/client"orimport { PORT, API_SECRET } from "astro:env/server".NOTE: If you want to use environment variables in other files that are not
.astroormiddlewarefiles, you still need to make sure you don't access the variable in a global scope. We recommend wrapping your logic with a function, which you then call from your.astroormiddlewarefiles inside the request scope.// foo.ts import { MY_SECRET } from 'astro:env/server'; // DOESN'T WORK const client = myLib(MY_SECRET); // WORKS export const bar = () => { const client = myLib(MY_SECRET); return client; };watch config files
This release starts monitoring your
wrangler.tomland.dev.varsfiles for changes and restarting the dev server if you update them.What should I do?
If you observe any issues, please check current open issues or create a new one in the repository.
BREAKING:
imageServiceThis release changes the default behavior of
imageService. In the past the default behavior was falling back to anoopservice, which disabled image optimization for your project, because Cloudflare doesn's support it. The new default iscompile, which enables image optimization for prerendered pages during build, but disallows the usage of anyastro:assetsfeature inside of on-demand pages.What should I do?
If you experience issues with the new setting, you can revert back to the old setting by setting
imageServicetopassthrough. Furthermore if you observe any issues, please check current open issues or create a new one in the repository.// astro.config.mjs // ... adapter: cloudflare({ - imageService: 'compile', }), // ...BREAKING:
platformProxyThis release enables
platformProxyby default. While most projects shouldn't be affected, this is a breaking change on paper.What should I do?
If you experience issues with the new default, you can deactivate it by setting
platformProxy.enabledtofalse. Furthermore if you observe any issues, please check current open issues or create a new one in the repository.// astro.config.mjs // ... adapter: cloudflare({ - platformProxy: { - enabled: true, - }, }), // ...BREAKING:
passThroughOnExceptionThis release throws an error if you use Cloudflare's
passThroughOnExceptionfunction because, as stated in Cloudflare docs, the function doesn't work with Cloudflare Pages.What should I do?
If you observe any issues, please check current open issues or create a new one in the repository.
Deprecations
wasmModuleImportsThis release removes the previous deprecated
wasmModuleImportsadapter option and replaces it with thecloudflareModulesoption, which offers flexibility and support for more file types.What should I do?
If you observe any issues, please check current open issues or create a new one in the repository.
// astro.config.mjs // ... adapter: cloudflare({ - wasmModuleImports: true, }), // ...
10.4.2
Patch Changes
- #292
8972d60Thanks @florian-lefebvre! - Removes experimental support forastro:env
10.4.1
Patch Changes
- #282
65337f3Thanks @alexanderniebuhr! - Fixes backwards compatibility with Astro <= 4.9
10.4.0
Minor Changes
- #258
033847dThanks @alexanderniebuhr! - Adds support for experimentalastro:envreleased in Astro 4.10
10.3.0
Minor Changes
- #251
b826675Thanks @adrianlyjak! - Adds support for.binand.txtfiles
10.2.6
Patch Changes
- #226
de6f3ebThanks @alexanderniebuhr! - Fixes chunk issues when bundling node_modules dependencies
10.2.5
Patch Changes
- #249
72fc8acThanks @adrianlyjak! - Fixes build errors when wasm modules are imported from a file that is shared in both prerendered static pages and server side rendered pages
10.2.4
Patch Changes
- #247
e08cd4cThanks @alexanderniebuhr! - Fixes an issue where redirect rules where not excluded from routing due to ordering issues
10.2.3
Patch Changes
- #243
71ba51dThanks @alexanderniebuhr! - Fixes an issue where the bundle was not cleaned up correctly
10.2.2
Patch Changes
- #241
82d81d9Thanks @alexanderniebuhr! - Removes a debug log
10.2.1
Patch Changes
- #238
1927f94Thanks @alexanderniebuhr! - Fixesastro buildwhich throws an error if it can't clean up dynamic imports for prerendered pages.
10.2.0
Minor Changes
- #222
8f312daThanks @Fryuni! - Fixes an issue, where unused code was not removed from the output, which led to issues with large projects with a lot of prerendered pages.
10.1.0
Minor Changes
- #229
1f4e40bThanks @FlorianFlatscher! - Adds a new option for the Image service to the Cloudflare adapter.imageService: 'custom'does use the user defined settings, without applying any modification to it. You need to make sure that the configured settings are compatible with Cloudflare'sworkerdruntime yourself.
10.0.3
Patch Changes
- #225
9e7d0eaThanks @alexanderniebuhr! - Fixeslocals.runtimeAPI to match betweenastro devandastro build
10.0.2
Patch Changes
-
#217
0349bd4Thanks @alexanderniebuhr! - fixes an issue where the automatic_routes.jsongeneration was not working as expected for some projects, which had a dynamic route as the first segment -
#217
0349bd4Thanks @alexanderniebuhr! - fixes an issue where the automatic_routes.jsongeneration was not limited correctly, which had manual extend patterns
10.0.1
Patch Changes
-
#212
c22bb21Thanks @alexanderniebuhr! - fixes an issue where projects using@astrojs/solid-jswere unusable, due to wrong vite config -
#210
317bd95Thanks @alexanderniebuhr! - fixes an issue where projects using@astrojs/vuewere unusable, due to marking dependencies as external
10.0.0
Major Changes
-
#159
adb8bf2a4caeead9a1a255740c7abe8666a6f852Thanks @alexanderniebuhr! - Updates and prepares the adapter to be more flexibile, stable and composable for the future. Includes several breaking changes.Upgrade Guide
We are commited to provide a smooth upgrade path for our users. This guide will describe what has changed from v9.x to v10 to help you to migrate your existing projects to the latest version of the adapter. For complete documentation of all v10 configuration settings and usage, please see the current, updated Cloudflare adapter documentation.
We will provide at least 4 weeks of limited maintanance support for the previous version 9 of the adapter. Please plan to upgrade your project within this time frame, using the instructions below.
Adapter's
modeoption & Cloudflare FunctionsThe
modeoption has been removed from the adapter. The adapter now defaults to the previousadvancedmode and this is the only official supported option moving forward.If you are already using
mode: 'advanced'in yourastro.config.mjsfile, you can safely remove it.import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ - mode: 'advanced', }), });If you are using
mode: 'directory', and don't have any custom Cloudflare functions in the/functionfolder, you should be able to remove themodeoption, without any issues.import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ - mode: 'directory', }), });If you are using
mode: 'directory', and you have custom Cloudflare functions in the/functionfolder, you will need to manually migrate them to Astro Server Endpoints (API Routes). If you need to access Cloudflare Bindings, you can usectx.locals. For further reference, please check the Adapters Documentation on Cloudflare Runtime Usage.Adapter's
functionPerRouteoptionThe
functionPerRouteoption has been removed from the adapter. The adapter now defaults to the previousfalsevalue. If you are usingfunctionPerRoute: truein yourastro.config.mjsfile, you can safely remove it. This change will not break any existing projects, but you will no longer be generating a single function for each route.import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ - functionPerRoute: true, }), });Local Runtime
The adapter replaces the
runtimeoptions with a new set ofplatformProxyoptions to enable local runtime support when usingastro dev.If you are already using a
wrangler.tomlfile, you can safely replace your existingruntimeoptions with the appropriateplatformProxyoptions.import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ - runtime: { - mode: 'local', - type: 'workers', - }, + platformProxy: { + enabled: true, + }, }), });If you define your bindings in the
astro.config.mjsfile, you need to first migrate your project to use awrangler.tomlconfiguration file for defining your bindings. You can find more information on how to do this in the Cloudflare docs about wrangler. Then, replaceruntimeoptions with the new correspondingplatformProxyoptions as above.import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ - runtime: { - mode: 'local', - type: 'pages', - bindings: { - // ... - }, - }, + platformProxy: { + enabled: true, + }, }), });If you have typed
localsin your./src/env.d.tsfile, you need to runwrangler typesin your project and update the file./// <reference types="astro/client" /> - type KVNamespace = import('@cloudflare/workers-types/experimental').KVNamespace; - type ENV = { - SERVER_URL: string; - KV_BINDING: KVNamespace; - }; - type Runtime = import('@astrojs/cloudflare').AdvancedRuntime<ENV>; + type Runtime = import('@astrojs/cloudflare').Runtime<Env>; declare namespace App { interface Locals extends Runtime { name: string; surname: string; }; } }Routes
The
routes.strategyoption has been removed as you will no longer have the option to choose a strategy in v10 of this adpater.If you are using
routes.strategy, you can remove it. You might observe a differentdist/_routes.jsonfile, but it should not affect your project's behavior.import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ - routes: { - strategy: 'include', - }, }), });Additionally the
routes.include&routes.excludeoptions have changed their name and type. If you were previously using them, move these to the newroutes.extendproperty and update their types:import cloudflare from '@astrojs/cloudflare'; import { defineConfig } from 'astro/config'; export default defineConfig({ adapter: cloudflare({ routes: { - include: ['/api/*'], - exclude: ['/fonts/*'], + extend: { + include: [{ pattern: '/api/*' }], + exclude: [{ pattern: '/fonts/*' }], + }, }, }), });process.env
In the old version of the adapter we used to expose all the environment variables to
process.env. This is no longer the case, as it was unsafe. If you need to use environment variables, you need to use eitherAstro.locals.runtime.envorcontext.locals.runtime.env. There is no way to access the environment variables directly fromprocess.envor in the global scope.If you need to access the environment variables in global scope, you should refactor your code to pass the environment variables as arguments to your function or file.
If you rely on any third library that uses
process.env, please open an issue and we can investigate what the best way to handle this is.Node.js APIs compatibility
The adapter still supports the same Node.js APIs as Cloudflare does, but you need to adapt your vite configuration and enable the Cloudflare
nodejs_compatflag.import {defineConfig} from "astro/config"; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ adapter: cloudflare({}), output: 'server', + vite: { + ssr: { + external: ['node:buffer'], + }, + }, })
9.2.1
Patch Changes
- #204
826bb4fe1fa2a95a38397f927210cdf37079c38aThanks @dario-piotrowicz! - Fixes a typo for a Cloudflare runtime .dev.vars warning
9.2.0
Minor Changes
-
#192
256b7024624ab45d5087d774cb4c30b117f1636aThanks @alexanderniebuhr! - Prepares for major breaking changes to adapter configuration in the upcoming v10 release.(Full documentation to help you migrate your project to the upgraded Cloudflare adapter will be provided with the release of v10.0.)
Deprecates the following adapter configuration options (to be removed entirely in v10):
mode: All projects will deploy to Cloudflare pages using advanced mode (the previous default setting). This is no longer a configurable option. Cloudflare Functions will no longer be supported. If you were usingmode: 'directory', please migrate to Astro Endpoints.functionPerRoute: Discontinued due to Cloudflare's single execution context approach. You will no longer have the option to compile a separate bundle for each page.routes.strategy: Projects will use the auto-generated_route.jsonfor route management unless you provide your ownpublic/_routes.json. This change aims to eliminate confusion and promote consistency.routes.include: Will be replaced by a newroutes.extend.includeoption to allow you to include additional routes.routes.exclude: Will be replaced by a newroutes.extend.excludeoption to allow you to exclude additional routes.runtime: Local runtime bindings will be configured inwrangler.tomlat the root of your project as described in the adapters documentation. You will no longer configure these directly in the adapter configuration. A newplatformProxysetting will be introduced to enable and configure the platformProxy (local runtime) provided by wrangler.
These changes are part of ongoing efforts to streamline functionality, improve performance, and align with best practices and platform capabilities.
We strongly recommend upgrading to v10 upon its release. To ensure a smooth migration, we commit to at least 4 weeks of additional maintenance for v9 following the release of v10. During this period, we will actively assist with migration efforts to ensure that all users can transition without major issues.
9.1.0
Minor Changes
- #179
6ad25929ce37344d9de7063643434ca0b01df306Thanks @F0rce! - Adds Service bindings to the runtime bindings.
9.0.2
Patch Changes
- #171
0463483141c2a09ed983fd8053e6bee6d4b0567dThanks @alexanderniebuhr! - Fixes an error with automatic deduplication of_routes.jsonfor more complex project structures
9.0.1
Patch Changes
- #168
25908149cd5b9e82d6746529e44473ae93be6e32Thanks @alexanderniebuhr! - Fixes an error where theastro devcommand would fail if the cache directory already existed
9.0.0
Major Changes
- #130
2b5aaa4cfeda4bc7f1bf8db6210162c495866a95Thanks @asdfjkalsdfla! - Updates the internals of the integration to support Astro 4.0. See this upstream pull request for additional details. Warning: Make sure to upgrade your Astro version to>4.2as previous versions are no longer supported.
Patch Changes
- #137
d67df0e24ad0d9fca317f01e877f3dc650831488Thanks @alexanderniebuhr! - Fixes an issue with_routes.jsongeneration, where duplicates where not removed correctly and an explicit user strategy setting was ignored.
8.1.0
Minor Changes
-
#58
ecdb8f5bc21b19cc86e581711a1c360fc723a007Thanks @alexanderniebuhr! - Adds the option to only run image optimization on images during build-time. Warning: This mode does not work with on-demand (SSR) image optimization.import {defineConfig} from "astro/config"; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ output: 'server' adapter: cloudflare({ + imageService: 'compile' }), })
8.0.2
Patch Changes
- #125
200dea9Thanks @alexanderniebuhr! - Updates miniflare version
8.0.1
Patch Changes
- #108
63fa4e6Thanks @sarah11918! - Updates Cloudflare README.md
8.0.0
Major Changes
-
#94
13ddae8Thanks @alexanderniebuhr! - Removes deprecated optionbuild.split. UsefunctionPerRouteinstead. -
#94
13ddae8Thanks @alexanderniebuhr! - Changes the way that bindings are configured for the local runtime usingastro dev. This change is developed in cooperation with Cloudflare and aligns Astro more closely to the behavior of Wrangler.⚠️ This is a breaking change for anyone deploying to Cloudflare Pages. You need to update your astro config file to set new the bindings. Follow the updated docs for configuring
@astrojs/cloudflare
Patch Changes
-
#94
13ddae8Thanks @alexanderniebuhr! - Improves compatibility with Astro 4.0. using WASM modules -
#94
13ddae8Thanks @alexanderniebuhr! - UpdatespeerDependencyofastroto be less strict
7.7.1
Patch Changes
-
#69
473e9faThanks @alexanderniebuhr! - Fixes a regression which caused the adapter to falsely generate_routes.jsonfor on-demand rendered 404 pages, which causes unexpected behavior in Cloudflare's SPA routing. -
#66
5b62509Thanks @ToxiWoxi! - Fixes a regression which caused the adapter to falsely return an empty 404 response, caused by an upstream change https://github.com/withastro/astro/pull/7754.
7.7.0
Minor Changes
-
#34
4e1060bThanks @alexanderniebuhr! - Adds animageServiceadapter option to configure which image service is used. Read more in the Cloudflare adapter docs. -
#34
4e1060bThanks @alexanderniebuhr! - Adds support for using Cloudflare's Image Resizing service as an external image service in Astro. See Cloudflare's image docs for more information about pricing and features.
7.6.4
Patch Changes
- #51
acf4c82Thanks @alexanderniebuhr! - Updates dependencies
7.6.3
Patch Changes
- #46
1611ff7Thanks @alexanderniebuhr! - Fixes a regression introduced in 7.6.2, which breaks building
7.6.2
Patch Changes
- #33
78baf24Thanks @alexanderniebuhr! - Fixes override of a validastro:assetsimage service configuration. Now overrides are only applied when the configuration is known to be incompatible with Cloudflare.
7.6.1
Patch Changes
-
#28
1665a39Thanks @alexanderniebuhr! - Fixes missing persistence setting forcache -
#30
625c41bThanks @alexanderniebuhr! - Fixes a regression introduced in 7.6.0, which breaks when no argument is set
7.6.0
Minor Changes
-
#23
4a03af2Thanks @alexanderniebuhr! - Adds a new propertypersistTowhich allows setting the directory for local state files when using Cloudflare runtime withastro dev. This is useful when you want to persist state between restarts of the dev server, for example when using KV, D1, R2 to store data.Additionally, updates the format of the
runtimeconfiguration and adds a warning when the deprecated format is used. The current format is nowruntime: { mode: 'off' | 'local', persistTo: string }. See runtime documentation for more information.
7.5.4
Patch Changes
- #21
09d2504Thanks @alexanderniebuhr! - Updates repository information
7.5.3
Patch Changes
-
#8782
75781643aThanks @helloimalastair! - fixesAdvancedRuntime&DirectoryRuntimetypes to work woth Cloudflare caches -
Updated dependencies [
2993055be,c4270e476,bd5aa1cd3,f369fa250,391729686,f999365b8,b2ae9ee0c,0abff97fe,3bef32f81]:- astro@3.3.0
- @astrojs/underscore-redirects@0.3.1
7.5.2
Patch Changes
-
#8766
054c5c644Thanks @jadbox! - Addscloudflare:socketscompile support -
#8788
0ab6bad7dThanks @alexanderniebuhr! - Adds support fornode:crypto -
Updated dependencies [
160d1cd75,30de32436,c4a7ec425,c24f70d91,93b092266,29cdfa024,eaed844ea]:- astro@3.2.4
- @astrojs/underscore-redirects@0.3.1
7.5.1
Patch Changes
-
#8737
6f60da805Thanks @ematipico! - Add provenance statement when publishing the library from CI -
Updated dependencies [
6f60da805,d78806dfe,d1c75fe15,aa265d730,78adbc443,21e0757ea,357270f2a]:- @astrojs/underscore-redirects@0.3.1
- astro@3.2.3
7.5.0
Minor Changes
-
#8655
3dd65bf88Thanks @alexanderniebuhr! - Introduces support for local KV bindings. Enhances development experience by allowing direct integration withastro dev. -
#8655
3dd65bf88Thanks @alexanderniebuhr! - Introduces support for local Durable Objects bindings. Enhances development experience by allowing direct integration withastro dev. -
#8655
3dd65bf88Thanks @alexanderniebuhr! - Introduces support for local D1 bindings. Enhances development experience by allowing direct integration withastro dev. -
#8655
3dd65bf88Thanks @alexanderniebuhr! - Introduces support for local R2 bindings. Enhances development experience by allowing direct integration withastro dev. -
#8655
3dd65bf88Thanks @alexanderniebuhr! - Introduces support for local Caches bindings. Enhances development experience by allowing direct integration withastro dev.
Patch Changes
7.4.0
Minor Changes
- #8682
c3572fd5eThanks @dario-piotrowicz! - Change build target fromes2020toes2022, for better support
Patch Changes
- Updated dependencies [
31c59ad8b,47ea310f0,345808170]:- astro@3.2.1
- @astrojs/underscore-redirects@0.3.0
7.3.1
Patch Changes
-
#7776
f5c617e3aThanks @aditsachde! - Include generated files starting with a dot in _routes.json -
#8654
f6ba533dfThanks @alexanderniebuhr! - Refactor codebase to enhance code readability and structure, to prioritize maintainability for long-term. -
Updated dependencies [
2167ffd72,408b50c5e,2167ffd72,2167ffd72,2167ffd72,e797b6816,824dd4670,2167ffd72,cfd895d87]:- astro@3.2.0
- @astrojs/underscore-redirects@0.3.0
7.3.0
Minor Changes
-
#8459
2365c1246Thanks @schummar! - Adds three new config options for_routes.jsongeneration:routes.strategy,routes.include, androutes.exclude. -
#8542
faeead423Thanks @adrianlyjak! - Add support for loading wasm modules in the cloudflare adapter
Patch Changes
- Updated dependencies [
863f5171e,63141f3f3,974d5117a,cb838b84b,f36c4295b,4c4ad9d16]:- astro@3.1.3
- @astrojs/underscore-redirects@0.3.0
7.2.0
Minor Changes
-
#8595
5b0b3c9a8Thanks @alexanderniebuhr! - Add support for the following Node.js Runtime APIs, which are availabe in Cloudflare using thenode:syntax.- assert
- AsyncLocalStorage
- Buffer
- Diagnostics Channel
- EventEmitter
- path
- process
- Streams
- StringDecoder
- util
import { Buffer } from 'node:buffer';
Patch Changes
- Updated dependencies [
bcad715ce,bdd267d08,e522a5eb4,ed54d4644,70f2a8003,4398e9298,8f8b9069d,5a988eaf6]:- astro@3.1.2
- @astrojs/underscore-redirects@0.3.0
7.1.1
Patch Changes
-
#8560
3da5d8404Thanks @alexanderniebuhr! - add the option to type environment variables using a generic -
Updated dependencies [
8d361169b,95b5f6280,0586e20e8]:- astro@3.1.1
- @astrojs/underscore-redirects@0.3.0
7.1.0
Minor Changes
- #8426
2c9614469Thanks @alexanderniebuhr! - Add support for Cloudflare Runtime (env vars, caches and req object), usingastro dev
Patch Changes
- Updated dependencies [
78b82bb39,5e1099f68,644825845,fa77fa63d,23f9536de,2db9762eb,435b10549,a6a516d94,43bc5f2a5,0ca332ba4]:- astro@3.0.13
- @astrojs/underscore-redirects@0.3.0
7.0.2
Patch Changes
-
#8429
bd8aa9a99Thanks @sarah11918! - Update code sample in the README to use uppercaseGET. -
Updated dependencies [
7d95bd9ba,1947ef7a9,61ad70fdc,d2f2a11cd,5126c6a40,48ff7855b,923a443cb,8935b3b46]:- astro@3.0.9
- @astrojs/underscore-redirects@0.3.0
7.0.1
Patch Changes
-
Updated dependencies [
c5633434f,405ad9501,6b1e79814]:- astro@3.0.7
- @astrojs/underscore-redirects@0.3.0
7.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
7511a4980Thanks @ematipico! - 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 ofastro:assetssuch as enforcingalt, no CLS etc to users -
#8078
2540feedbThanks @alexanderniebuhr! - The configurationbuild.splitandbuild.excludeMiddlewareare deprecated.You can now configure this behavior using
functionPerRoutein your Cloudflare integration config:import {defineConfig} from "astro/config"; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ - build: { - split: true - }, - adapter: cloudflare() + adapter: cloudflare({ + mode: 'directory', + functionPerRoute: true + }) })
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
-
#8079
7b77b34ceThanks @alexanderniebuhr! - Sync Astro Asset support across both modes -
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
- @astrojs/underscore-redirects@0.3.0
7.0.0-rc.3
Major Changes
Patch Changes
- Updated dependencies [
adf9fccfd,582132328,81545197a,6011d52d3,be6bbd2c8,42785c7b7,95120efbe,2ae9d37f0,f003e7364,732111cdc,33b8910cf,e79e3779d,179796405,a87cbe400,767eb6866]:- astro@3.0.0-rc.5
- @astrojs/underscore-redirects@0.3.0-rc.1
7.0.0-beta.2
Major Changes
-
#8078
2540feedbThanks @alexanderniebuhr! - The configurationbuild.splitandbuild.excludeMiddlewareare deprecated.You can now configure this behavior using
functionPerRoutein your Cloudflare integration config:import {defineConfig} from "astro/config"; import cloudflare from '@astrojs/cloudflare'; export default defineConfig({ - build: { - split: true - }, - adapter: cloudflare() + adapter: cloudflare({ + mode: 'directory', + functionPerRoute: true + }) })
Patch Changes
-
#8079
7b77b34ceThanks @alexanderniebuhr! - Sync Astro Asset support across both modes -
Updated dependencies [
2484dc408,c2c71d90c,7177f7579,097a8e4e9,dbc97b121,2540feedb,ea7ff5177,68efd4a8b,0e0fa605d,5208a3c8f,8a5b0c1f3,d6b494376,4477bb41c,3e834293d,b76c166bd]:- astro@3.0.0-beta.3
- @astrojs/underscore-redirects@0.3.0-beta.0
7.0.0-beta.1
Minor Changes
Patch Changes
- Updated dependencies [
65c354969,3c3100851,34cb20021,7bd1b86f8,519a1c4e8,70f34f5a3,0f637c71e,866ed4098,5b1e39ef6]:- astro@3.0.0-beta.1
- @astrojs/underscore-redirects@0.3.0-beta.0
7.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. -
c022a4217Thanks @Princesseuh! - 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 ofastro:assetssuch as enforcingalt, no CLS etc to users
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
- @astrojs/underscore-redirects@0.3.0-beta.0
6.8.1
Patch Changes
-
#8190
0be8d9bfaThanks @ematipico! - Improve documentation and export the types needed to type theruntimeobject. -
Updated dependencies [
52606a390]:
6.8.0
Minor Changes
-
#7541
ffcfcddb7Thanks @alexanderniebuhr! - ThegetRuntimeutility has been deprecated and should be updated to the newAstro.localsAPI.- import { getRuntime } from '@astrojs/cloudflare/runtime'; - getRuntime(Astro.request); + const runtime = Astro.locals.runtime;
Patch Changes
6.7.0
Minor Changes
Patch Changes
- Updated dependencies [
5b1e39ef6]:
6.6.2
Patch Changes
-
#7568
6ec040761Thanks @alexanderniebuhr! - Fix a bug where asset redirects caused Cloudflare error -
#7679
1a6f833c4Thanks @bluwy! - Fix runtime env var handling -
#7568
6ec040761Thanks @alexanderniebuhr! - Fix bug where.tsfiles are not renamed to.js -
Updated dependencies [
cc8e9de88,1a6f833c4,cc0f81c04]:- astro@2.8.4
6.6.1
Patch Changes
6.6.0
Minor Changes
-
#7464
1a59185ddThanks @alexanderniebuhr! - Split Support in CloudflareAdds support for configuring
build.splitwhen using the Cloudflare adapter
Patch Changes
6.5.1
Patch Changes
-
#7419
94afaa3e5Thanks @TorbjornHoltmon! - Fixed issue with cloudflare runtimewaitUntilnot working as intended. -
Updated dependencies [
2b34fc492,89a483520]:- astro@2.6.6
6.5.0
Minor Changes
- #7386
6d8aa4b61Thanks @beynar! - Expose cf metadata and Cloudflare Worker Cache API throughcachesin runtime.
Patch Changes
6.4.0
Minor Changes
-
#7067
57f8d14c0Thanks @matthewp! - Support for experimental redirectsThis adds support for the redirects RFC in the Cloudflare adapter. No changes are necessary, simply use configured redirects and the adapter will update your
_redirectsfile.
Patch Changes
-
#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
6.3.0
Minor Changes
- #7092
2a1fa09b3Thanks @johannesspohr! - Addworkedandworkerimport condition for worker bundling
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 defaultdefineConfig({ 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> -
#7101
2994bc52dThanks @bluwy! - Always build edge/worker runtime with VitewebworkerSSR target -
#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
6.2.4
Patch Changes
-
#6925
d11d18595Thanks @Yan-Thomas! - Fix missing code language in Cloudflare README -
Updated dependencies [
a98df9374,50975f2ea,ebae1eaf8,dc062f669]:- astro@2.3.3
6.2.3
Patch Changes
-
#6222
081b2402cThanks @AirBorne04! - add option to compile unminified code -
Updated dependencies [
b89042553]:- astro@2.3.2
6.2.2
Patch Changes
-
#6550
2c829fdf6Thanks @RichiCoder1! - fixconfig.basetrimming logic for cloudflare integration_routes.jsongeneration -
Updated dependencies [
04dddd783,ea9b3dd72,bf024cb34,22955b895,f413446a8,90e5f87d0,388190102,035c0c4df,f112c12b1,689884251,fa132e35c,f5fddafc2,283734525,66858f1f2,6c465e958]:- astro@2.1.4
6.2.1
Patch Changes
-
#6531
4ddf34893Thanks @matthewp! - Remove false-positive warnings from Cloudflare's build.Cloudflare includes warnings when it bundles the already-built output from astro.build. Those warnings are mostly due to
"sideEffects": falsepackages that are included in the Vite built output because they are marked as external. Rollup will remove unused imports from these packages but will not remove the actual import, causing the false-positive warning. -
#6473
1c3e8f6c3Thanks @RichiCoder1! - fix automatic routes generation not respecting config.base -
#6494
a13e9d7e3Thanks @Yan-Thomas! - Consistency improvements to several package descriptions -
Updated dependencies [
acf78c5e2,04e624d06,cc90d7219,a9a6ae298,6a7cf0712,bfd67ea74,f6eddffa0,c63874090,d637d1ea5,637f9bc72,77a046e88]:- astro@2.1.3
6.2.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
6.1.3
Patch Changes
-
#6208
79f49acbeThanks @mfrachet! - Fix path file that was generated outside the functions folder -
Updated dependencies [
79783fc01,baa2dbb3b,8b7cb64da]:- astro@2.0.11
6.1.2
Patch Changes
-
#6075
45b41d98fThanks @NachoVazquez! - Uses config root path as location for Cloudflare Pages Functions -
Updated dependencies [
f6fc662c3,592386b75,1b591a143,bf8d7366a,ec38a8921,f20a85b64,9f22ac3d0,cee70f5c6,ac7fb04d6,d1f5611fe,2189170be,32abe49bd]:- astro@2.0.7
6.1.1
Patch Changes
-
#6046
df3201165Thanks @matthewp! - Cloudflare fix for building to directory mode -
Updated dependencies [
41e97158b,e779c6242]:- astro@2.0.4
6.1.0
Minor Changes
- #5914
088f5194cThanks @AngusMorton! - Re-enable streaming in Cloudflare Pages.
Patch Changes
-
#5993
9855db676Thanks @matthewp! - Support for prerendering in the Cloudflare integrationThis fixes prerendering in the Cloudflare adapter. Now any prerendered routes are added to the
_routes.jsonconfig so that the worker script is skipped for those routes. -
Updated dependencies [
b53e0717b,60b32d585,883e0cc29,dabce6b8c,aedf23f85]:- astro@2.0.2
6.0.0
Major Changes
-
#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.
Patch Changes
- 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,be901dc98,f6cf92b48,e818cc046,8c100a6fe,116d8835c,840412128,1f49cddf9,7325df412,16c7d0bfd,a9c292026,2a5786419,4a1cabfe6,a8d3e7924,fa8c131f8,64b8082e7,c4b0cb8bf,23dc9ea96,63a6ceb38,a3a7fc929,52209ca2a,5fd9208d4,5eba34fcc,899214298,3a00ecb3e,5eba34fcc,2303f9514,1ca81c16b,b66d7195c]:- astro@2.0.0
6.0.0-beta.1
See changes in 6.0.0-beta.1
Major Changes
-
#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.
Patch Changes
6.0.0-beta.0
See changes in 6.0.0-beta.0
Major Changes
Patch Changes
5.0.0
Patch Changes
- Updated dependencies [
d85ec7484,d2960984c,31ec84797,5ec0f6ed5,dced4a8a2,6b156dd3b]:- astro@1.7.0
4.1.1
Patch Changes
-
Updated dependencies [
9082a850e,4f7f20616,05915fec0,1aeabe417,795f00f73,2c836b9d1,8f3f67c96]:- astro@1.6.14
4.1.0
Minor Changes
- #5347
743000cc7Thanks @AirBorne04! - Now building for Cloudflare directory mode takes advantage of the standard asset handling from Cloudflare Pages, and therefore does not call a function script to deliver static assets anymore. Also supports the use of_routes.json,_redirectsand_headersfiles when placed into thepublicfolder.
Patch Changes
4.0.1
Patch Changes
-
#5301
a79a37cadThanks @bluwy! - Fix environment variables usage in worker output and warn if environment variables are accessedd too early -
Updated dependencies [
88c1bbe3a,a79a37cad]:- astro@1.6.5
4.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
3.1.2
Patch Changes
3.1.1
Patch Changes
- #5103
d151d9f3fThanks @AirBorne04! - enable access to Cloudflare runtime [KV, R2, Durable Objects]- access native Cloudflare runtime through
import { getRuntime } from "@astrojs/cloudflare/runtime"; now you can callgetRuntime(Astro.request)and get access to the runtime environment.
- access native Cloudflare runtime through
3.1.0
Minor Changes
-
#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: '...', }, }); }, }, }; }
3.0.0
Major Changes
- #4888
2dc582ac5Thanks @AirBorne04! - adjusting the build settings for cloudflare (reverting back to platform browser over neutral) adjusting the ssr settings for solidjs (to build for node)
2.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.
2.0.0
Major Changes
- #4815
ce0b92ba7Thanks @AirBorne04! - adjusted esbuild config to work with worker environment (fixing solid js ssr)
1.0.2
Patch Changes
- #4558
742966456Thanks @tony-sull! - Adding thewithastrokeyword to include the adapters on the Integrations Catalog
1.0.1
Patch Changes
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!
0.5.0
Minor Changes
- #3806
f4c571bdbThanks @nrgnrg! - add support for compiling functions to a functions directory rather than_worker.js
0.4.0
Minor Changes
Patch Changes
0.3.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.
0.2.4
Patch Changes
0.2.3
Patch Changes
- #3854
b012ee55Thanks @bholmesdev! - [astro add] Support adapters and third party packages
0.2.2
Patch Changes
- #3777
976e1f17Thanks @tony-sull! - Disables HTTP streaming in Cloudflare Pages deployments