diff --git a/packages/integrations/cloudflare/.gitignore b/packages/integrations/cloudflare/.gitignore
deleted file mode 100644
index 0134f82df..000000000
--- a/packages/integrations/cloudflare/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Astro cloudflare directory mode creates a function directory
-functions
-.mf
diff --git a/packages/integrations/cloudflare/CHANGELOG.md b/packages/integrations/cloudflare/CHANGELOG.md
deleted file mode 100644
index 9dd7772cc..000000000
--- a/packages/integrations/cloudflare/CHANGELOG.md
+++ /dev/null
@@ -1,874 +0,0 @@
-# @astrojs/cloudflare
-
-## 7.5.1
-
-### Patch Changes
-
-- [#8737](https://github.com/withastro/astro/pull/8737) [`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c) Thanks [@ematipico](https://github.com/ematipico)! - Add provenance statement when publishing the library from CI
-
-- Updated dependencies [[`6f60da805`](https://github.com/withastro/astro/commit/6f60da805e0014bc50dd07bef972e91c73560c3c), [`d78806dfe`](https://github.com/withastro/astro/commit/d78806dfe0301ea7ffe6c7c1f783bd415ac7cda9), [`d1c75fe15`](https://github.com/withastro/astro/commit/d1c75fe158839699c59728cf3a83888e8c72a459), [`aa265d730`](https://github.com/withastro/astro/commit/aa265d73024422967c1b1c68ad268c419c6c798f), [`78adbc443`](https://github.com/withastro/astro/commit/78adbc4433208458291e36713909762e148e1e5d), [`21e0757ea`](https://github.com/withastro/astro/commit/21e0757ea22a57d344c934045ca19db93b684436), [`357270f2a`](https://github.com/withastro/astro/commit/357270f2a3d0bf2aa634ba7e52e9d17618eff4a7)]:
- - @astrojs/underscore-redirects@0.3.1
- - astro@3.2.3
-
-## 7.5.0
-
-### Minor Changes
-
-- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local KV bindings. Enhances development experience by allowing direct integration with `astro dev`.
-
-- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local Durable Objects bindings. Enhances development experience by allowing direct integration with `astro dev`.
-
-- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local D1 bindings. Enhances development experience by allowing direct integration with `astro dev`.
-
-- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local R2 bindings. Enhances development experience by allowing direct integration with `astro dev`.
-
-- [#8655](https://github.com/withastro/astro/pull/8655) [`3dd65bf88`](https://github.com/withastro/astro/commit/3dd65bf8895faedfa4c92599961acca07457c62f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Introduces support for local Caches bindings. Enhances development experience by allowing direct integration with `astro dev`.
-
-### Patch Changes
-
-- Updated dependencies [[`455af3235`](https://github.com/withastro/astro/commit/455af3235b3268852e6988accecc796f03f6d16e), [`4c2bec681`](https://github.com/withastro/astro/commit/4c2bec681b0752e7215b8a32bd2d44bf477adac1)]:
- - astro@3.2.2
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.4.0
-
-### Minor Changes
-
-- [#8682](https://github.com/withastro/astro/pull/8682) [`c3572fd5e`](https://github.com/withastro/astro/commit/c3572fd5e0e3864cd728f83502a52e9274793ee2) Thanks [@dario-piotrowicz](https://github.com/dario-piotrowicz)! - Change build target from `es2020` to `es2022`, for better support
-
-### Patch Changes
-
-- Updated dependencies [[`31c59ad8b`](https://github.com/withastro/astro/commit/31c59ad8b6a72f95c98a306ecf92d198c03110b4), [`47ea310f0`](https://github.com/withastro/astro/commit/47ea310f01d06ed1562c790bec348718a2fa8277), [`345808170`](https://github.com/withastro/astro/commit/345808170fce783ddd3c9a4035a91fa64dcc5f46)]:
- - astro@3.2.1
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.3.1
-
-### Patch Changes
-
-- [#7776](https://github.com/withastro/astro/pull/7776) [`f5c617e3a`](https://github.com/withastro/astro/commit/f5c617e3a3ed8f010ff28f0cfe0f322ad54ed6e0) Thanks [@aditsachde](https://github.com/aditsachde)! - Include generated files starting with a dot in \_routes.json
-
-- [#8654](https://github.com/withastro/astro/pull/8654) [`f6ba533df`](https://github.com/withastro/astro/commit/f6ba533df6861e09d39a29f6ef7a80271bbc8d0a) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Refactor codebase to enhance code readability and structure, to prioritize maintainability for long-term.
-
-- Updated dependencies [[`2167ffd72`](https://github.com/withastro/astro/commit/2167ffd72f58904f449ffc6e53581a2d8faf7317), [`408b50c5e`](https://github.com/withastro/astro/commit/408b50c5ea5aba66252424f54788557274a58571), [`2167ffd72`](https://github.com/withastro/astro/commit/2167ffd72f58904f449ffc6e53581a2d8faf7317), [`2167ffd72`](https://github.com/withastro/astro/commit/2167ffd72f58904f449ffc6e53581a2d8faf7317), [`2167ffd72`](https://github.com/withastro/astro/commit/2167ffd72f58904f449ffc6e53581a2d8faf7317), [`e797b6816`](https://github.com/withastro/astro/commit/e797b6816072f63f38d9a91dd2a66765c558d46c), [`824dd4670`](https://github.com/withastro/astro/commit/824dd4670a145c47337eff84a5ae412bf7443117), [`2167ffd72`](https://github.com/withastro/astro/commit/2167ffd72f58904f449ffc6e53581a2d8faf7317), [`cfd895d87`](https://github.com/withastro/astro/commit/cfd895d877fdb7fc69e745665a374fc32cb3ef7d)]:
- - astro@3.2.0
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.3.0
-
-### Minor Changes
-
-- [#8459](https://github.com/withastro/astro/pull/8459) [`2365c1246`](https://github.com/withastro/astro/commit/2365c124645d5067a12987f205cee23a45d1d13d) Thanks [@schummar](https://github.com/schummar)! - Adds three new config options for `_routes.json` generation: `routes.strategy`, `routes.include`, and `routes.exclude`.
-
-- [#8542](https://github.com/withastro/astro/pull/8542) [`faeead423`](https://github.com/withastro/astro/commit/faeead42325f378f9edac4e081eb7d6d50905136) Thanks [@adrianlyjak](https://github.com/adrianlyjak)! - Add support for loading wasm modules in the cloudflare adapter
-
-### Patch Changes
-
-- Updated dependencies [[`863f5171e`](https://github.com/withastro/astro/commit/863f5171e8e7516c9d72f2e48ea7db1dea71c4f5), [`63141f3f3`](https://github.com/withastro/astro/commit/63141f3f3e4a57d2f55ccfebd7e506ea1033a1ab), [`974d5117a`](https://github.com/withastro/astro/commit/974d5117abc8b47f8225e455b9285c88e305272f), [`cb838b84b`](https://github.com/withastro/astro/commit/cb838b84b457041b0442996f7611b04aa940a620), [`f36c4295b`](https://github.com/withastro/astro/commit/f36c4295be1ef2bcfa4aecb3c59551388419c53d), [`4c4ad9d16`](https://github.com/withastro/astro/commit/4c4ad9d167e8d15ff2c15e3336ede8ca22f646b2)]:
- - astro@3.1.3
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.2.0
-
-### Minor Changes
-
-- [#8595](https://github.com/withastro/astro/pull/8595) [`5b0b3c9a8`](https://github.com/withastro/astro/commit/5b0b3c9a8e0c0e6b6c7472b82008ab57985f2a04) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Add support for the following Node.js Runtime APIs, which are availabe in [Cloudflare](https://developers.cloudflare.com/workers/runtime-apis/nodejs) using the `node:` syntax.
-
- - assert
- - AsyncLocalStorage
- - Buffer
- - Diagnostics Channel
- - EventEmitter
- - path
- - process
- - Streams
- - StringDecoder
- - util
-
- ```js
- import { Buffer } from 'node:buffer';
- ```
-
-### Patch Changes
-
-- Updated dependencies [[`bcad715ce`](https://github.com/withastro/astro/commit/bcad715ce67bc73a7927c941d1e7f02a82d638c2), [`bdd267d08`](https://github.com/withastro/astro/commit/bdd267d08937611984d074a2872af11ecf3e1a12), [`e522a5eb4`](https://github.com/withastro/astro/commit/e522a5eb41c7df1e62c307c84cd14d53777439ff), [`ed54d4644`](https://github.com/withastro/astro/commit/ed54d46449accc99ad117d6b0d50a8905e4d65d7), [`70f2a8003`](https://github.com/withastro/astro/commit/70f2a80039d232731f63ea735e896997ec0eac7a), [`4398e9298`](https://github.com/withastro/astro/commit/4398e929877dfadd2067af28413284afdfde9d8b), [`8f8b9069d`](https://github.com/withastro/astro/commit/8f8b9069ddd21cf57d37955ab3a92710492226f5), [`5a988eaf6`](https://github.com/withastro/astro/commit/5a988eaf609ddc1b9609acb0cdc2dda43d10a5c2)]:
- - astro@3.1.2
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.1.1
-
-### Patch Changes
-
-- [#8560](https://github.com/withastro/astro/pull/8560) [`3da5d8404`](https://github.com/withastro/astro/commit/3da5d8404e56a05da93f6b0a70841acda5ca1a8f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - add the option to type environment variables using a generic
-
-- Updated dependencies [[`8d361169b`](https://github.com/withastro/astro/commit/8d361169b8e487933d671ce347f0ce74922c80cc), [`95b5f6280`](https://github.com/withastro/astro/commit/95b5f6280d124f8d6f866dc3286406c272ee91bf), [`0586e20e8`](https://github.com/withastro/astro/commit/0586e20e8338e077b8eb1a3a96bdd19f5950c22f)]:
- - astro@3.1.1
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.1.0
-
-### Minor Changes
-
-- [#8426](https://github.com/withastro/astro/pull/8426) [`2c9614469`](https://github.com/withastro/astro/commit/2c9614469674509b3e3bc21a4471a1aeb9b4141f) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Add support for Cloudflare Runtime (env vars, caches and req object), using `astro dev`
-
-### Patch Changes
-
-- Updated dependencies [[`78b82bb39`](https://github.com/withastro/astro/commit/78b82bb3929bee5d8d9bd32d65374956ddb05859), [`5e1099f68`](https://github.com/withastro/astro/commit/5e1099f686abcc7026bd4fa74727f3b311c6d6d6), [`644825845`](https://github.com/withastro/astro/commit/644825845c11c8d100a9b0d16b69a23c165c529e), [`fa77fa63d`](https://github.com/withastro/astro/commit/fa77fa63d944f709a37f08be93f0d14fe1d91188), [`23f9536de`](https://github.com/withastro/astro/commit/23f9536de0456ed2ddc9a77f7aef773ab6a8e73c), [`2db9762eb`](https://github.com/withastro/astro/commit/2db9762eb06d8a95021556c64e0cbb56c61352d5), [`435b10549`](https://github.com/withastro/astro/commit/435b10549878281ad2bb60207cb86f312a4a809f), [`a6a516d94`](https://github.com/withastro/astro/commit/a6a516d9446a50cc32fbd7201b243c63b3a4db43), [`43bc5f2a5`](https://github.com/withastro/astro/commit/43bc5f2a55173218bcfeec50242b72ae999930e2), [`0ca332ba4`](https://github.com/withastro/astro/commit/0ca332ba4ab82cc04872776398952867b0f43d33)]:
- - astro@3.0.13
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.0.2
-
-### Patch Changes
-
-- [#8429](https://github.com/withastro/astro/pull/8429) [`bd8aa9a99`](https://github.com/withastro/astro/commit/bd8aa9a996c8a9f9283995360fd495c291d1f766) Thanks [@sarah11918](https://github.com/sarah11918)! - Update code sample in the README to use uppercase `GET`.
-
-- Updated dependencies [[`7d95bd9ba`](https://github.com/withastro/astro/commit/7d95bd9baaf755239fd7d35e4813861b2dbccf42), [`1947ef7a9`](https://github.com/withastro/astro/commit/1947ef7a99ce3d1d6ea797842edd31d5edffa5de), [`61ad70fdc`](https://github.com/withastro/astro/commit/61ad70fdc52035964c43ecdb4cf7468f6c2b61e7), [`d2f2a11cd`](https://github.com/withastro/astro/commit/d2f2a11cdb42b0de79be21c798eda8e7e7b2a277), [`5126c6a40`](https://github.com/withastro/astro/commit/5126c6a40f88bff66ee5d3c3a21eea8c4a44ce7a), [`48ff7855b`](https://github.com/withastro/astro/commit/48ff7855b238536a3df17cb29335c90029fc41a4), [`923a443cb`](https://github.com/withastro/astro/commit/923a443cb060a0e936a0e1cc87c0360232f77914), [`8935b3b46`](https://github.com/withastro/astro/commit/8935b3b4672d6c54c7b79e6c4575298f75eeb9f4)]:
- - astro@3.0.9
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.0.1
-
-### Patch Changes
-
-- [#8346](https://github.com/withastro/astro/pull/8346) [`b74dacdb6`](https://github.com/withastro/astro/commit/b74dacdb6a49755f979f15091355f06bd6bd64bf) Thanks [@delucis](https://github.com/delucis)! - Update README
-
-- Updated dependencies [[`c5633434f`](https://github.com/withastro/astro/commit/c5633434f02cc477ee8da380e22efaccfa55d459), [`405ad9501`](https://github.com/withastro/astro/commit/405ad950173dadddc519cf1c2e7f2523bf5326a8), [`6b1e79814`](https://github.com/withastro/astro/commit/6b1e7981469d30aa4c3658487abed6ffea94797f)]:
- - astro@3.0.7
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.0.0
-
-### Major Changes
-
-- [#8188](https://github.com/withastro/astro/pull/8188) [`d0679a666`](https://github.com/withastro/astro/commit/d0679a666f37da0fca396d42b9b32bbb25d29312) Thanks [@ematipico](https://github.com/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](https://github.com/withastro/astro/pull/8179) [`6011d52d3`](https://github.com/withastro/astro/commit/6011d52d38e43c3e3d52bc3bc41a60e36061b7b7) Thanks [@matthewp](https://github.com/matthewp)! - Astro 3.0 Release Candidate
-
-- [#8188](https://github.com/withastro/astro/pull/8188) [`7511a4980`](https://github.com/withastro/astro/commit/7511a4980fd36536464c317de33a5190427f430a) Thanks [@ematipico](https://github.com/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 of `astro:assets` such as enforcing `alt`, no CLS etc to users
-
-- [#8078](https://github.com/withastro/astro/pull/8078) [`2540feedb`](https://github.com/withastro/astro/commit/2540feedb06785d5a20eecc3668849f147d778d4) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - The configuration `build.split` and `build.excludeMiddleware` are deprecated.
-
- You can now configure this behavior using `functionPerRoute` in your Cloudflare integration config:
-
- ```diff
- import {defineConfig} from "astro/config";
- import cloudflare from '@astrojs/cloudflare';
-
- export default defineConfig({
- - build: {
- - split: true
- - },
- - adapter: cloudflare()
- + adapter: cloudflare({
- + mode: 'directory',
- + functionPerRoute: true
- + })
- })
- ```
-
-### Minor Changes
-
-- [#8188](https://github.com/withastro/astro/pull/8188) [`cd2d7e769`](https://github.com/withastro/astro/commit/cd2d7e76981ef9b9013453aa2629838e1e9fd422) Thanks [@ematipico](https://github.com/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.
-
- ```ts
- import { AstroIntegration } from './astro';
-
- function myIntegration(): AstroIntegration {
- return {
- name: 'astro-awesome-list',
- // new feature map
- supportedAstroFeatures: {
- hybridOutput: 'experimental',
- staticOutput: 'stable',
- serverOutput: 'stable',
- assets: {
- supportKind: 'stable',
- isSharpCompatible: false,
- isSquooshCompatible: false,
- },
- },
- };
- }
- ```
-
-### Patch Changes
-
-- [#8079](https://github.com/withastro/astro/pull/8079) [`7b77b34ce`](https://github.com/withastro/astro/commit/7b77b34cef8b46c4d14ecf9e5fcb45fb276331ec) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Sync Astro Asset support across both modes
-
-- Updated dependencies [[`d0679a666`](https://github.com/withastro/astro/commit/d0679a666f37da0fca396d42b9b32bbb25d29312), [`db39206cb`](https://github.com/withastro/astro/commit/db39206cbb85b034859ac416179f141184bb2bff), [`adf9fccfd`](https://github.com/withastro/astro/commit/adf9fccfdda107c2224558f1c2e6a77847ac0a8a), [`0c7b42dc6`](https://github.com/withastro/astro/commit/0c7b42dc6780e687e416137539f55a3a427d1d10), [`46c4c0e05`](https://github.com/withastro/astro/commit/46c4c0e053f830585b9ef229ce1c259df00a80f8), [`364d861bd`](https://github.com/withastro/astro/commit/364d861bd527b8511968e2837728148f090bedef), [`2484dc408`](https://github.com/withastro/astro/commit/2484dc4080e5cd84b9a53648a1de426d7c907be2), [`81545197a`](https://github.com/withastro/astro/commit/81545197a32fd015d763fc386c8b67e0e08b7393), [`6011d52d3`](https://github.com/withastro/astro/commit/6011d52d38e43c3e3d52bc3bc41a60e36061b7b7), [`c2c71d90c`](https://github.com/withastro/astro/commit/c2c71d90c264a2524f99e0373ab59015f23ad4b1), [`cd2d7e769`](https://github.com/withastro/astro/commit/cd2d7e76981ef9b9013453aa2629838e1e9fd422), [`80f1494cd`](https://github.com/withastro/astro/commit/80f1494cdaf72e58a420adb4f7c712d4089e1923), [`e45f30293`](https://github.com/withastro/astro/commit/e45f3029340db718b6ed7e91b5d14f5cf14cd71d), [`c0de7a7b0`](https://github.com/withastro/astro/commit/c0de7a7b0f042cd49cbea4f4ac1b2ab6f9fef644), [`65c354969`](https://github.com/withastro/astro/commit/65c354969e6fe0ef6d622e8f4c545e2f717ce8c6), [`3c3100851`](https://github.com/withastro/astro/commit/3c31008519ce68b5b1b1cb23b71fbe0a2d506882), [`34cb20021`](https://github.com/withastro/astro/commit/34cb2002161ba88df6bcb72fecfd12ed867c134b), [`a824863ab`](https://github.com/withastro/astro/commit/a824863ab1c451f4068eac54f28dd240573e1cba), [`44f7a2872`](https://github.com/withastro/astro/commit/44f7a28728c56c04ac377b6e917329f324874043), [`1048aca55`](https://github.com/withastro/astro/commit/1048aca550769415e528016e42b358ffbfd44b61), [`be6bbd2c8`](https://github.com/withastro/astro/commit/be6bbd2c86b9bf5268e765bb937dda00ff15781a), [`9e021a91c`](https://github.com/withastro/astro/commit/9e021a91c57d10809f588dd47968fc0e7f8b4d5c), [`7511a4980`](https://github.com/withastro/astro/commit/7511a4980fd36536464c317de33a5190427f430a), [`c37632a20`](https://github.com/withastro/astro/commit/c37632a20d06164fb97a4c2fc48df6d960398832), [`acf652fc1`](https://github.com/withastro/astro/commit/acf652fc1d5db166231e87e22d0d50444f5556d8), [`42785c7b7`](https://github.com/withastro/astro/commit/42785c7b784b151e6d582570e5d74482129e8eb8), [`8450379db`](https://github.com/withastro/astro/commit/8450379db854fb1eaa9f38f21d65db240bc616cd), [`dbc97b121`](https://github.com/withastro/astro/commit/dbc97b121f42583728f1cdfdbf14575fda943f5b), [`7d2f311d4`](https://github.com/withastro/astro/commit/7d2f311d428e3d1c8c13b9bf2a708d6435713fc2), [`2540feedb`](https://github.com/withastro/astro/commit/2540feedb06785d5a20eecc3668849f147d778d4), [`ea7ff5177`](https://github.com/withastro/astro/commit/ea7ff5177dbcd7b2508cb1eef1b22b8ee1f47079), [`68efd4a8b`](https://github.com/withastro/astro/commit/68efd4a8b29f248397667801465b3152dc98e9a7), [`7bd1b86f8`](https://github.com/withastro/astro/commit/7bd1b86f85c06fdde0a1ed9146d01bac69990671), [`036388f66`](https://github.com/withastro/astro/commit/036388f66dab68ad54b895ed86f9176958dd83c8), [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae), [`1f58a7a1b`](https://github.com/withastro/astro/commit/1f58a7a1bea6888868b689dac94801d554319b02), [`2ae9d37f0`](https://github.com/withastro/astro/commit/2ae9d37f0a9cb21ab288d3c30aecb6d84db87788), [`a8f35777e`](https://github.com/withastro/astro/commit/a8f35777e7e322068a4e2f520c2c9e43ade19e58), [`70f34f5a3`](https://github.com/withastro/astro/commit/70f34f5a355f42526ee9e5355f3de8e510002ea2), [`5208a3c8f`](https://github.com/withastro/astro/commit/5208a3c8fefcec7694857fb344af351f4631fc34), [`84af8ed9d`](https://github.com/withastro/astro/commit/84af8ed9d1e6401c6ebc9c60fe8cddb44d5044b0), [`f003e7364`](https://github.com/withastro/astro/commit/f003e7364317cafdb8589913b26b28e928dd07c9), [`ffc9e2d3d`](https://github.com/withastro/astro/commit/ffc9e2d3de46049bf3d82140ef018f524fb03187), [`732111cdc`](https://github.com/withastro/astro/commit/732111cdce441639db31f40f621df48442d00969), [`0f637c71e`](https://github.com/withastro/astro/commit/0f637c71e511cb4c51712128d217a26c8eee4d40), [`33b8910cf`](https://github.com/withastro/astro/commit/33b8910cfdce5713891c50a84a0a8fe926311710), [`8a5b0c1f3`](https://github.com/withastro/astro/commit/8a5b0c1f3a4be6bb62db66ec70144109ff5b4c59), [`148e61d24`](https://github.com/withastro/astro/commit/148e61d2492456811f8a3c8daaab1c3429a2ffdc), [`e79e3779d`](https://github.com/withastro/astro/commit/e79e3779df0ad35253abcdb931d622847d9adb12), [`632579dc2`](https://github.com/withastro/astro/commit/632579dc2094cc342929261c89e689f0dd358284), [`3674584e0`](https://github.com/withastro/astro/commit/3674584e02b161a698b429ceb66723918fdc56ac), [`1db4e92c1`](https://github.com/withastro/astro/commit/1db4e92c12ed73681217f5cefd39f2f47542f961), [`e7f872e91`](https://github.com/withastro/astro/commit/e7f872e91e852b901cf221a5151077dec64305bf), [`16f09dfff`](https://github.com/withastro/astro/commit/16f09dfff7722fda99dd0412e3006a7a39c80829), [`4477bb41c`](https://github.com/withastro/astro/commit/4477bb41c8ed688785c545731ef5b184b629f4e5), [`55c10d1d5`](https://github.com/withastro/astro/commit/55c10d1d564e805efc3c1a7c48e0d9a1cdf0c7ed), [`3e834293d`](https://github.com/withastro/astro/commit/3e834293d47ab2761a7aa013916e8371871efb7f), [`96beb883a`](https://github.com/withastro/astro/commit/96beb883ad87f8bbf5b2f57e14a743763d2a6f58), [`997a0db8a`](https://github.com/withastro/astro/commit/997a0db8a4e3851edd69384cf5eadbb969e1d547), [`80f1494cd`](https://github.com/withastro/astro/commit/80f1494cdaf72e58a420adb4f7c712d4089e1923), [`0f0625504`](https://github.com/withastro/astro/commit/0f0625504145f18cba7dc6cf20291cb2abddc5a9), [`e1ae56e72`](https://github.com/withastro/astro/commit/e1ae56e724d0f83db1230359e06cd6bc26f5fa26), [`f32d093a2`](https://github.com/withastro/astro/commit/f32d093a280faafff024228c12bb438156ec34d7), [`f01eb585e`](https://github.com/withastro/astro/commit/f01eb585e7c972d940761309b1595f682b6922d2), [`b76c166bd`](https://github.com/withastro/astro/commit/b76c166bdd8e28683f62806aef968d1e0c3b06d9), [`a87cbe400`](https://github.com/withastro/astro/commit/a87cbe400314341d5f72abf86ea264e6b47c091f), [`866ed4098`](https://github.com/withastro/astro/commit/866ed4098edffb052239cdb26e076cf8db61b1d9), [`767eb6866`](https://github.com/withastro/astro/commit/767eb68666eb777965baa0d6ade20bbafecf95bf), [`32669cd47`](https://github.com/withastro/astro/commit/32669cd47555e9c7433c3998a2b6e624dfb2d8e9)]:
- - astro@3.0.0
- - @astrojs/underscore-redirects@0.3.0
-
-## 7.0.0-rc.3
-
-### Major Changes
-
-- [#8179](https://github.com/withastro/astro/pull/8179) [`6011d52d3`](https://github.com/withastro/astro/commit/6011d52d38e43c3e3d52bc3bc41a60e36061b7b7) Thanks [@matthewp](https://github.com/matthewp)! - Astro 3.0 Release Candidate
-
-### Patch Changes
-
-- Updated dependencies [[`adf9fccfd`](https://github.com/withastro/astro/commit/adf9fccfdda107c2224558f1c2e6a77847ac0a8a), [`582132328`](https://github.com/withastro/astro/commit/5821323285646aee7ff9194a505f708028e4db57), [`81545197a`](https://github.com/withastro/astro/commit/81545197a32fd015d763fc386c8b67e0e08b7393), [`6011d52d3`](https://github.com/withastro/astro/commit/6011d52d38e43c3e3d52bc3bc41a60e36061b7b7), [`be6bbd2c8`](https://github.com/withastro/astro/commit/be6bbd2c86b9bf5268e765bb937dda00ff15781a), [`42785c7b7`](https://github.com/withastro/astro/commit/42785c7b784b151e6d582570e5d74482129e8eb8), [`95120efbe`](https://github.com/withastro/astro/commit/95120efbe817163663492181cbeb225849354493), [`2ae9d37f0`](https://github.com/withastro/astro/commit/2ae9d37f0a9cb21ab288d3c30aecb6d84db87788), [`f003e7364`](https://github.com/withastro/astro/commit/f003e7364317cafdb8589913b26b28e928dd07c9), [`732111cdc`](https://github.com/withastro/astro/commit/732111cdce441639db31f40f621df48442d00969), [`33b8910cf`](https://github.com/withastro/astro/commit/33b8910cfdce5713891c50a84a0a8fe926311710), [`e79e3779d`](https://github.com/withastro/astro/commit/e79e3779df0ad35253abcdb931d622847d9adb12), [`179796405`](https://github.com/withastro/astro/commit/179796405e053b559d83f84507e5a465861a029a), [`a87cbe400`](https://github.com/withastro/astro/commit/a87cbe400314341d5f72abf86ea264e6b47c091f), [`767eb6866`](https://github.com/withastro/astro/commit/767eb68666eb777965baa0d6ade20bbafecf95bf)]:
- - astro@3.0.0-rc.5
- - @astrojs/underscore-redirects@0.3.0-rc.1
-
-## 7.0.0-beta.2
-
-### Major Changes
-
-- [#8078](https://github.com/withastro/astro/pull/8078) [`2540feedb`](https://github.com/withastro/astro/commit/2540feedb06785d5a20eecc3668849f147d778d4) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - The configuration `build.split` and `build.excludeMiddleware` are deprecated.
-
- You can now configure this behavior using `functionPerRoute` in your Cloudflare integration config:
-
- ```diff
- import {defineConfig} from "astro/config";
- import cloudflare from '@astrojs/cloudflare';
-
- export default defineConfig({
- - build: {
- - split: true
- - },
- - adapter: cloudflare()
- + adapter: cloudflare({
- + mode: 'directory',
- + functionPerRoute: true
- + })
- })
- ```
-
-### Patch Changes
-
-- [#8079](https://github.com/withastro/astro/pull/8079) [`7b77b34ce`](https://github.com/withastro/astro/commit/7b77b34cef8b46c4d14ecf9e5fcb45fb276331ec) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Sync Astro Asset support across both modes
-
-- Updated dependencies [[`2484dc408`](https://github.com/withastro/astro/commit/2484dc4080e5cd84b9a53648a1de426d7c907be2), [`c2c71d90c`](https://github.com/withastro/astro/commit/c2c71d90c264a2524f99e0373ab59015f23ad4b1), [`7177f7579`](https://github.com/withastro/astro/commit/7177f7579b6e866f0fd895b3fd079d8ba330b1a9), [`097a8e4e9`](https://github.com/withastro/astro/commit/097a8e4e916c7df18eafdaa6c8d6ce2991c17ab6), [`dbc97b121`](https://github.com/withastro/astro/commit/dbc97b121f42583728f1cdfdbf14575fda943f5b), [`2540feedb`](https://github.com/withastro/astro/commit/2540feedb06785d5a20eecc3668849f147d778d4), [`ea7ff5177`](https://github.com/withastro/astro/commit/ea7ff5177dbcd7b2508cb1eef1b22b8ee1f47079), [`68efd4a8b`](https://github.com/withastro/astro/commit/68efd4a8b29f248397667801465b3152dc98e9a7), [`0e0fa605d`](https://github.com/withastro/astro/commit/0e0fa605d109cc91e08a1ae1cc560ea240fe631b), [`5208a3c8f`](https://github.com/withastro/astro/commit/5208a3c8fefcec7694857fb344af351f4631fc34), [`8a5b0c1f3`](https://github.com/withastro/astro/commit/8a5b0c1f3a4be6bb62db66ec70144109ff5b4c59), [`d6b494376`](https://github.com/withastro/astro/commit/d6b4943764989c0e89df2d6875cd19691566dfb3), [`4477bb41c`](https://github.com/withastro/astro/commit/4477bb41c8ed688785c545731ef5b184b629f4e5), [`3e834293d`](https://github.com/withastro/astro/commit/3e834293d47ab2761a7aa013916e8371871efb7f), [`b76c166bd`](https://github.com/withastro/astro/commit/b76c166bdd8e28683f62806aef968d1e0c3b06d9)]:
- - astro@3.0.0-beta.3
- - @astrojs/underscore-redirects@0.3.0-beta.0
-
-## 7.0.0-beta.1
-
-### Minor Changes
-
-- [#7846](https://github.com/withastro/astro/pull/7846) [`ea30a9d4f`](https://github.com/withastro/astro/commit/ea30a9d4f2d7a12345869e971f3051cf803dbe74) Thanks [@schummar](https://github.com/schummar)! - More efficient \_routes.json
-
-### Patch Changes
-
-- Updated dependencies [[`65c354969`](https://github.com/withastro/astro/commit/65c354969e6fe0ef6d622e8f4c545e2f717ce8c6), [`3c3100851`](https://github.com/withastro/astro/commit/3c31008519ce68b5b1b1cb23b71fbe0a2d506882), [`34cb20021`](https://github.com/withastro/astro/commit/34cb2002161ba88df6bcb72fecfd12ed867c134b), [`7bd1b86f8`](https://github.com/withastro/astro/commit/7bd1b86f85c06fdde0a1ed9146d01bac69990671), [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae), [`70f34f5a3`](https://github.com/withastro/astro/commit/70f34f5a355f42526ee9e5355f3de8e510002ea2), [`0f637c71e`](https://github.com/withastro/astro/commit/0f637c71e511cb4c51712128d217a26c8eee4d40), [`866ed4098`](https://github.com/withastro/astro/commit/866ed4098edffb052239cdb26e076cf8db61b1d9), [`5b1e39ef6`](https://github.com/withastro/astro/commit/5b1e39ef6ec6dcebea96584f95d9530bd9aa715d)]:
- - astro@3.0.0-beta.1
- - @astrojs/underscore-redirects@0.3.0-beta.0
-
-## 7.0.0-beta.0
-
-### Major Changes
-
-- [`1eae2e3f7`](https://github.com/withastro/astro/commit/1eae2e3f7d693c9dfe91c8ccfbe606d32bf2fb81) Thanks [@Princesseuh](https://github.com/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.
-
-- [`c022a4217`](https://github.com/withastro/astro/commit/c022a4217a805d223c1494e9eda4e48bbf810388) Thanks [@Princesseuh](https://github.com/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 of `astro:assets` such as enforcing `alt`, no CLS etc to users
-
-### Minor Changes
-
-- [`9b4f70a62`](https://github.com/withastro/astro/commit/9b4f70a629f55e461759ba46f68af7097a2e9215) Thanks [@ematipico](https://github.com/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.
-
- ```ts
- import { AstroIntegration } from './astro';
-
- function myIntegration(): AstroIntegration {
- return {
- name: 'astro-awesome-list',
- // new feature map
- supportedAstroFeatures: {
- hybridOutput: 'experimental',
- staticOutput: 'stable',
- serverOutput: 'stable',
- assets: {
- supportKind: 'stable',
- isSharpCompatible: false,
- isSquooshCompatible: false,
- },
- },
- };
- }
- ```
-
-### Patch Changes
-
-- Updated dependencies [[`1eae2e3f7`](https://github.com/withastro/astro/commit/1eae2e3f7d693c9dfe91c8ccfbe606d32bf2fb81), [`76ddef19c`](https://github.com/withastro/astro/commit/76ddef19ccab6e5f7d3a5740cd41acf10e334b38), [`9b4f70a62`](https://github.com/withastro/astro/commit/9b4f70a629f55e461759ba46f68af7097a2e9215), [`3fdf509b2`](https://github.com/withastro/astro/commit/3fdf509b2731a9b2f972d89291e57cf78d62c769), [`2f951cd40`](https://github.com/withastro/astro/commit/2f951cd403dfcc2c3ca6aae618ae3e1409516e32), [`c022a4217`](https://github.com/withastro/astro/commit/c022a4217a805d223c1494e9eda4e48bbf810388), [`67becaa58`](https://github.com/withastro/astro/commit/67becaa580b8f787df58de66b7008b7098f1209c), [`bc37331d8`](https://github.com/withastro/astro/commit/bc37331d8154e3e95a8df9131e4e014e78a7a9e7), [`dfc2d93e3`](https://github.com/withastro/astro/commit/dfc2d93e3c645995379358fabbdfa9aab99f43d8), [`3dc1ca2fa`](https://github.com/withastro/astro/commit/3dc1ca2fac8d9965cc5085a5d09e72ed87b4281a), [`1be84dfee`](https://github.com/withastro/astro/commit/1be84dfee3ce8e6f5cc624f99aec4e980f6fde37), [`35f01df79`](https://github.com/withastro/astro/commit/35f01df797d23315f2bee2fc3fd795adb0559c58), [`3fdf509b2`](https://github.com/withastro/astro/commit/3fdf509b2731a9b2f972d89291e57cf78d62c769), [`78de801f2`](https://github.com/withastro/astro/commit/78de801f21fd4ca1653950027d953bf08614566b), [`59d6e569f`](https://github.com/withastro/astro/commit/59d6e569f63e175c97e82e94aa7974febfb76f7c), [`7723c4cc9`](https://github.com/withastro/astro/commit/7723c4cc93298c2e6530e55da7afda048f22cf81), [`fb5cd6b56`](https://github.com/withastro/astro/commit/fb5cd6b56dc27a71366ed5e1ab8bfe9b8f96bac5), [`631b9c410`](https://github.com/withastro/astro/commit/631b9c410d5d66fa384674027ba95d69ebb5063f)]:
- - astro@3.0.0-beta.0
- - @astrojs/underscore-redirects@0.3.0-beta.0
-
-## 6.8.1
-
-### Patch Changes
-
-- [#8190](https://github.com/withastro/astro/pull/8190) [`0be8d9bfa`](https://github.com/withastro/astro/commit/0be8d9bfa9fa811c4b7e15c4ffd2d37c93f856fe) Thanks [@ematipico](https://github.com/ematipico)! - Improve documentation and export the types needed to type the `runtime` object.
-
-- Updated dependencies [[`52606a390`](https://github.com/withastro/astro/commit/52606a3909f9de5ced9b9ba3ba25832f73a8689e)]:
- - astro@2.10.14
-
-## 6.8.0
-
-### Minor Changes
-
-- [#7541](https://github.com/withastro/astro/pull/7541) [`ffcfcddb7`](https://github.com/withastro/astro/commit/ffcfcddb7575030d62b4ef979d46a74425e6d3fe) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - The `getRuntime` utility has been deprecated and should be updated to the new [`Astro.locals`](https://docs.astro.build/en/guides/middleware/#locals) API.
-
- ```diff
- - import { getRuntime } from '@astrojs/cloudflare/runtime';
- - getRuntime(Astro.request);
-
- + const runtime = Astro.locals.runtime;
- ```
-
-### Patch Changes
-
-- Updated dependencies [[`1b8d30209`](https://github.com/withastro/astro/commit/1b8d3020990130dabfaaf753db73a32c6e0c896a), [`405913cdf`](https://github.com/withastro/astro/commit/405913cdf20b26407aa351c090f0a0859a4e6f54), [`87d4b1843`](https://github.com/withastro/astro/commit/87d4b18437c7565c48cad4bea81831c2a244ebb8), [`c23377caa`](https://github.com/withastro/astro/commit/c23377caafbc75deb91c33b9678c1b6868ad40ea), [`86bee2812`](https://github.com/withastro/astro/commit/86bee2812185df6e14025e5962a335f51853587b)]:
- - astro@2.10.6
-
-## 6.7.0
-
-### Minor Changes
-
-- [#7846](https://github.com/withastro/astro/pull/7846) [`ea30a9d4f`](https://github.com/withastro/astro/commit/ea30a9d4f2d7a12345869e971f3051cf803dbe74) Thanks [@schummar](https://github.com/schummar)! - More efficient \_routes.json
-
-### Patch Changes
-
-- Updated dependencies [[`5b1e39ef6`](https://github.com/withastro/astro/commit/5b1e39ef6ec6dcebea96584f95d9530bd9aa715d)]:
- - astro@2.10.5
-
-## 6.6.2
-
-### Patch Changes
-
-- [#7568](https://github.com/withastro/astro/pull/7568) [`6ec040761`](https://github.com/withastro/astro/commit/6ec040761ef657df0e0f5ac103788da4b98fa688) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Fix a bug where asset redirects caused Cloudflare error
-
-- [#7679](https://github.com/withastro/astro/pull/7679) [`1a6f833c4`](https://github.com/withastro/astro/commit/1a6f833c404ba2e64e3497929b64c863b5a348c8) Thanks [@bluwy](https://github.com/bluwy)! - Fix runtime env var handling
-
-- [#7568](https://github.com/withastro/astro/pull/7568) [`6ec040761`](https://github.com/withastro/astro/commit/6ec040761ef657df0e0f5ac103788da4b98fa688) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Fix bug where `.ts` files are not renamed to `.js`
-
-- Updated dependencies [[`cc8e9de88`](https://github.com/withastro/astro/commit/cc8e9de88179d2ed4b70980c60b41448db393429), [`1a6f833c4`](https://github.com/withastro/astro/commit/1a6f833c404ba2e64e3497929b64c863b5a348c8), [`cc0f81c04`](https://github.com/withastro/astro/commit/cc0f81c040e912cff0c09e89327ef1655f96b67d)]:
- - astro@2.8.4
-
-## 6.6.1
-
-### Patch Changes
-
-- Updated dependencies [[`f21357b69`](https://github.com/withastro/astro/commit/f21357b69d94fe8d81f267efddb182d1a3cc678a), [`86e19c7cf`](https://github.com/withastro/astro/commit/86e19c7cf8696e065c1ccdc2eb841ad0a2b61ede)]:
- - @astrojs/underscore-redirects@0.2.0
- - astro@2.8.2
-
-## 6.6.0
-
-### Minor Changes
-
-- [#7464](https://github.com/withastro/astro/pull/7464) [`1a59185dd`](https://github.com/withastro/astro/commit/1a59185ddd393bf8894ec0c981b26d6fecdb3c67) Thanks [@alexanderniebuhr](https://github.com/alexanderniebuhr)! - Split Support in Cloudflare
-
- Adds support for configuring `build.split` when using the Cloudflare adapter
-
-### Patch Changes
-
-- Updated dependencies [[`9e2426f75`](https://github.com/withastro/astro/commit/9e2426f75637a6318961f483de90b635f3fdadeb), [`cdc28326c`](https://github.com/withastro/astro/commit/cdc28326cf21f305924363e9c8c02ce54b6ff895), [`19c2d43ea`](https://github.com/withastro/astro/commit/19c2d43ea41efdd8741007de0774e7e394f174b0), [`2172dd4f0`](https://github.com/withastro/astro/commit/2172dd4f0dd8f87d1adbc5ae90f44724e66eb964), [`1170877b5`](https://github.com/withastro/astro/commit/1170877b51aaa13203e8c488dcf4e39d1b5553ee)]:
- - astro@2.7.3
-
-## 6.5.1
-
-### Patch Changes
-
-- [#7419](https://github.com/withastro/astro/pull/7419) [`94afaa3e5`](https://github.com/withastro/astro/commit/94afaa3e501f77e919c719937eb1dbfe170e3dc9) Thanks [@TorbjornHoltmon](https://github.com/TorbjornHoltmon)! - Fixed issue with cloudflare runtime `waitUntil` not working as intended.
-
-- Updated dependencies [[`2b34fc492`](https://github.com/withastro/astro/commit/2b34fc49282cbf5bf89de46359b51a67a5c4b8bb), [`89a483520`](https://github.com/withastro/astro/commit/89a4835202f05d9571aeb42740dbe907a8afc28b)]:
- - astro@2.6.6
-
-## 6.5.0
-
-### Minor Changes
-
-- [#7386](https://github.com/withastro/astro/pull/7386) [`6d8aa4b61`](https://github.com/withastro/astro/commit/6d8aa4b61f22df2c5052d06dac8e53bbce73f5f5) Thanks [@beynar](https://github.com/beynar)! - Expose cf metadata and Cloudflare Worker Cache API through `caches` in runtime.
-
-### Patch Changes
-
-- Updated dependencies [[`42baf62e7`](https://github.com/withastro/astro/commit/42baf62e7ca0351a2f2c7d06ec58086f90519bb7), [`1c7b63595`](https://github.com/withastro/astro/commit/1c7b6359563f5e83325121efb2e61915d818a35a)]:
- - astro@2.6.4
-
-## 6.4.0
-
-### Minor Changes
-
-- [#7067](https://github.com/withastro/astro/pull/7067) [`57f8d14c0`](https://github.com/withastro/astro/commit/57f8d14c027c30919363e12c664ccff4ed64d0fc) Thanks [@matthewp](https://github.com/matthewp)! - Support for experimental redirects
-
- This adds support for the redirects RFC in the Cloudflare adapter. No changes are necessary, simply use configured redirects and the adapter will update your `_redirects` file.
-
-### Patch Changes
-
-- [#7260](https://github.com/withastro/astro/pull/7260) [`39403c32f`](https://github.com/withastro/astro/commit/39403c32faea58399c61d3344b770f195be60d5b) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Unflags support for `output: 'hybrid'` mode, which enables pre-rendering by default. The additional `experimental.hybridOutput` flag can be safely removed from your configuration.
-
-- Updated dependencies [[`57f8d14c0`](https://github.com/withastro/astro/commit/57f8d14c027c30919363e12c664ccff4ed64d0fc), [`414eb19d2`](https://github.com/withastro/astro/commit/414eb19d2fcb55758f9d053076773b11b62f4c97), [`a7e2b37ff`](https://github.com/withastro/astro/commit/a7e2b37ff73871c46895c615846a86a539f45330), [`dd1a6b6c9`](https://github.com/withastro/astro/commit/dd1a6b6c941aeb7af934bd12db22412af262f5a1), [`d72cfa7ca`](https://github.com/withastro/astro/commit/d72cfa7cad758192163712ceb269405659fd14bc), [`144813f73`](https://github.com/withastro/astro/commit/144813f7308dcb9de64ebe3f0f2c6cba9ad81eb1), [`b5213654b`](https://github.com/withastro/astro/commit/b5213654b1b7f3ba573a48d3be688b2bdde7870f), [`e3b8c6296`](https://github.com/withastro/astro/commit/e3b8c62969d680d1915a122c610d281d6711aa63), [`890a2bc98`](https://github.com/withastro/astro/commit/890a2bc9891a2449ab99b01b65468f6dddba6b12), [`39403c32f`](https://github.com/withastro/astro/commit/39403c32faea58399c61d3344b770f195be60d5b), [`101f03209`](https://github.com/withastro/astro/commit/101f032098148b3daaac8d46ff1e535b79232e43)]:
- - astro@2.6.0
-
-## 6.3.0
-
-### Minor Changes
-
-- [#7092](https://github.com/withastro/astro/pull/7092) [`2a1fa09b3`](https://github.com/withastro/astro/commit/2a1fa09b3199ae35801dd0d02ae293198d9a7382) Thanks [@johannesspohr](https://github.com/johannesspohr)! - Add `worked` and `worker` import condition for worker bundling
-
-### Patch Changes
-
-- [#6991](https://github.com/withastro/astro/pull/6991) [`719002ca5`](https://github.com/withastro/astro/commit/719002ca5b128744fb4316d4a52c5dcd46a42759) Thanks [@MoustaphaDev](https://github.com/MoustaphaDev)! - Enable experimental support for hybrid SSR with pre-rendering enabled by default
-
- **astro.config.mjs**
-
- ```js
- import { defineConfig } from 'astro/config';
- export defaultdefineConfig({
- output: 'hybrid',
- experimental: {
- hybridOutput: true,
- },
- })
- ```
-
- Then add `export const prerender = false` to any page or endpoint you want to opt-out of pre-rendering.
-
- **src/pages/contact.astro**
-
- ```astro
- ---
- export const prerender = false;
-
- if (Astro.request.method === 'POST') {
- // handle form submission
- }
- ---
-
-
- ```
-
-- [#7101](https://github.com/withastro/astro/pull/7101) [`2994bc52d`](https://github.com/withastro/astro/commit/2994bc52d360bf7ca3681c5f6976e64577cf5209) Thanks [@bluwy](https://github.com/bluwy)! - Always build edge/worker runtime with Vite `webworker` SSR target
-
-- [#7104](https://github.com/withastro/astro/pull/7104) [`826e02890`](https://github.com/withastro/astro/commit/826e0289005f645b902375b98d5549c6a95ccafa) Thanks [@bluwy](https://github.com/bluwy)! - Specify `"files"` field to only publish necessary files
-
-- Updated dependencies [[`4516d7b22`](https://github.com/withastro/astro/commit/4516d7b22c5979cde4537f196b53ae2826ba9561), [`e186ecc5e`](https://github.com/withastro/astro/commit/e186ecc5e292de8c6a2c441a2d588512c0813068), [`c6d7ebefd`](https://github.com/withastro/astro/commit/c6d7ebefdd554a9ef29cfeb426ac55cab80d6473), [`914c439bc`](https://github.com/withastro/astro/commit/914c439bccee9fec002c6d92beaa501c398e62ac), [`e9fc2c221`](https://github.com/withastro/astro/commit/e9fc2c2213036d47cd30a47a6cdad5633481a0f8), [`075eee08f`](https://github.com/withastro/astro/commit/075eee08f2e2b0baea008b97f3523f2cb937ee44), [`719002ca5`](https://github.com/withastro/astro/commit/719002ca5b128744fb4316d4a52c5dcd46a42759), [`fc52681ba`](https://github.com/withastro/astro/commit/fc52681ba2f8fe8bcd92eeedf3c6a52fd86a390e), [`fb84622af`](https://github.com/withastro/astro/commit/fb84622af04f795de8d17f24192de105f70fe910), [`cada10a46`](https://github.com/withastro/astro/commit/cada10a466f81f8edb0aa664f9cffdb6b5b8f307), [`cd410c5eb`](https://github.com/withastro/astro/commit/cd410c5eb71f825259279c27c4c39d0ad282c3f0), [`73ec6f6c1`](https://github.com/withastro/astro/commit/73ec6f6c16cadb71dafe9f664f0debde072c3173), [`410428672`](https://github.com/withastro/astro/commit/410428672ed97bba7ca0b3352c1a7ee564921462), [`763ff2d1e`](https://github.com/withastro/astro/commit/763ff2d1e44f54b899d7c65386f1b4b877c95737), [`c1669c001`](https://github.com/withastro/astro/commit/c1669c0011eecfe65a459d727848c18c189a54ca), [`3d525efc9`](https://github.com/withastro/astro/commit/3d525efc95cfb2deb5d9e04856d02965d66901c9)]:
- - astro@2.5.0
-
-## 6.2.4
-
-### Patch Changes
-
-- [#6925](https://github.com/withastro/astro/pull/6925) [`d11d18595`](https://github.com/withastro/astro/commit/d11d1859518f9fdc94390aab9be29f8667bb27cb) Thanks [@Yan-Thomas](https://github.com/Yan-Thomas)! - Fix missing code language in Cloudflare README
-
-- Updated dependencies [[`a98df9374`](https://github.com/withastro/astro/commit/a98df9374dec65c678fa47319cb1481b1af123e2), [`50975f2ea`](https://github.com/withastro/astro/commit/50975f2ea3a59f9e023cc631a9372c0c7986eec9), [`ebae1eaf8`](https://github.com/withastro/astro/commit/ebae1eaf87f49399036033c673b513338f7d9c42), [`dc062f669`](https://github.com/withastro/astro/commit/dc062f6695ce577dc569781fc0678c903012c336)]:
- - astro@2.3.3
-
-## 6.2.3
-
-### Patch Changes
-
-- [#6222](https://github.com/withastro/astro/pull/6222) [`081b2402c`](https://github.com/withastro/astro/commit/081b2402cfb48b5eb8dbd02664d8af2f7c798edf) Thanks [@AirBorne04](https://github.com/AirBorne04)! - add option to compile unminified code
-
-- Updated dependencies [[`b89042553`](https://github.com/withastro/astro/commit/b89042553ec45d5f6bc71747e0f3470ba969e679)]:
- - astro@2.3.2
-
-## 6.2.2
-
-### Patch Changes
-
-- [#6550](https://github.com/withastro/astro/pull/6550) [`2c829fdf6`](https://github.com/withastro/astro/commit/2c829fdf65bcb91485837c9cfb5a3b453c6fccc7) Thanks [@RichiCoder1](https://github.com/RichiCoder1)! - fix `config.base` trimming logic for cloudflare integration `_routes.json` generation
-
-- Updated dependencies [[`04dddd783`](https://github.com/withastro/astro/commit/04dddd783da3235aa9ed523d2856adf86b792b5f), [`ea9b3dd72`](https://github.com/withastro/astro/commit/ea9b3dd72b98b3f5a542ca24a275f673faa6c7c5), [`bf024cb34`](https://github.com/withastro/astro/commit/bf024cb3429c5929d98378108230bc946a376b17), [`22955b895`](https://github.com/withastro/astro/commit/22955b895ce4343e282355db64b3a5c1415f3944), [`f413446a8`](https://github.com/withastro/astro/commit/f413446a859e497395b3612e44d1540cc6b9dad7), [`90e5f87d0`](https://github.com/withastro/astro/commit/90e5f87d03215a833bb6ac91f9548670a25ce659), [`388190102`](https://github.com/withastro/astro/commit/3881901028cbb586f5a4de1b4953e2d6730458ab), [`035c0c4df`](https://github.com/withastro/astro/commit/035c0c4df2a623bcc2f2a1cb9e490df35fa29adc), [`f112c12b1`](https://github.com/withastro/astro/commit/f112c12b15dfbb278d66699f54809674dd1bded0), [`689884251`](https://github.com/withastro/astro/commit/68988425119255382f94c983796574050006f003), [`fa132e35c`](https://github.com/withastro/astro/commit/fa132e35c23f2cfe368fd0a7239584a2bc5c4f12), [`f5fddafc2`](https://github.com/withastro/astro/commit/f5fddafc248bb1ef57b7349bfecc25539ae2b5ea), [`283734525`](https://github.com/withastro/astro/commit/28373452503bc6ca88221ffd39a5590e015e4d71), [`66858f1f2`](https://github.com/withastro/astro/commit/66858f1f238a0edf6ded2b0f693bc738785d5aa3), [`6c465e958`](https://github.com/withastro/astro/commit/6c465e958e088ff55e5b895e67c64c0dfd4277a6)]:
- - astro@2.1.4
-
-## 6.2.1
-
-### Patch Changes
-
-- [#6531](https://github.com/withastro/astro/pull/6531) [`4ddf34893`](https://github.com/withastro/astro/commit/4ddf3489384ed53f25df190a3478da44bd38600e) Thanks [@matthewp](https://github.com/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": false` packages 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](https://github.com/withastro/astro/pull/6473) [`1c3e8f6c3`](https://github.com/withastro/astro/commit/1c3e8f6c3b839087aa51de2e2fb665cd907f2847) Thanks [@RichiCoder1](https://github.com/RichiCoder1)! - fix automatic routes generation not respecting config.base
-
-- [#6494](https://github.com/withastro/astro/pull/6494) [`a13e9d7e3`](https://github.com/withastro/astro/commit/a13e9d7e33baccf51e7d4815f99b481ad174bc57) Thanks [@Yan-Thomas](https://github.com/Yan-Thomas)! - Consistency improvements to several package descriptions
-
-- Updated dependencies [[`acf78c5e2`](https://github.com/withastro/astro/commit/acf78c5e271ec3d4f589782078e2a2044cc1c391), [`04e624d06`](https://github.com/withastro/astro/commit/04e624d062c6ce385f6293afba26f3942c2290c6), [`cc90d7219`](https://github.com/withastro/astro/commit/cc90d72197e1139195e9545105b9a1d339f38e1b), [`a9a6ae298`](https://github.com/withastro/astro/commit/a9a6ae29812339ea00f3b9afd3de09bd9d3733a9), [`6a7cf0712`](https://github.com/withastro/astro/commit/6a7cf0712da23e2c095f4bc4f2512e618bceb38e), [`bfd67ea74`](https://github.com/withastro/astro/commit/bfd67ea749dbc6ffa7c9a671fcc48bea6c04a075), [`f6eddffa0`](https://github.com/withastro/astro/commit/f6eddffa0414d54767e9f9e1ee5a936b8a20146b), [`c63874090`](https://github.com/withastro/astro/commit/c6387409062f1d7c2afc93319748ad57086837c5), [`d637d1ea5`](https://github.com/withastro/astro/commit/d637d1ea5b347b9c724adc895c9006c696ac8fc8), [`637f9bc72`](https://github.com/withastro/astro/commit/637f9bc728ea7d56fc82a862d761385f0dcd9528), [`77a046e88`](https://github.com/withastro/astro/commit/77a046e886c370b737208574b6934f5a1cf2b177)]:
- - astro@2.1.3
-
-## 6.2.0
-
-### Minor Changes
-
-- [#6213](https://github.com/withastro/astro/pull/6213) [`afbbc4d5b`](https://github.com/withastro/astro/commit/afbbc4d5bfafc1779bac00b41c2a1cb1c90f2808) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Updated compilation settings to disable downlevelling for Node 14
-
-### Patch Changes
-
-- Updated dependencies [[`fec583909`](https://github.com/withastro/astro/commit/fec583909ab62829dc0c1600e2387979365f2b94), [`b087b83fe`](https://github.com/withastro/astro/commit/b087b83fe266c431fe34a07d5c2293cc4ab011c6), [`694918a56`](https://github.com/withastro/astro/commit/694918a56b01104831296be0c25456135a63c784), [`a20610609`](https://github.com/withastro/astro/commit/a20610609863ae3b48afe96819b8f11ae4f414d5), [`a4a74ab70`](https://github.com/withastro/astro/commit/a4a74ab70cd2aa0d812a1f6b202c4e240a8913bf), [`75921b3cd`](https://github.com/withastro/astro/commit/75921b3cd916d439f6392c487c21532fde35ed13), [`afbbc4d5b`](https://github.com/withastro/astro/commit/afbbc4d5bfafc1779bac00b41c2a1cb1c90f2808)]:
- - astro@2.1.0
-
-## 6.1.3
-
-### Patch Changes
-
-- [#6208](https://github.com/withastro/astro/pull/6208) [`79f49acbe`](https://github.com/withastro/astro/commit/79f49acbe13673bfc27e794bcfae518f38c4a4fe) Thanks [@mfrachet](https://github.com/mfrachet)! - Fix path file that was generated outside the functions folder
-
-- Updated dependencies [[`79783fc01`](https://github.com/withastro/astro/commit/79783fc0181153a8e379d3f023422510a7467ead), [`baa2dbb3b`](https://github.com/withastro/astro/commit/baa2dbb3b5678b2bd56fb80df99d386f32e274b7), [`8b7cb64da`](https://github.com/withastro/astro/commit/8b7cb64dadfca93c65d62df54754633d398cb2ed)]:
- - astro@2.0.11
-
-## 6.1.2
-
-### Patch Changes
-
-- [#6075](https://github.com/withastro/astro/pull/6075) [`45b41d98f`](https://github.com/withastro/astro/commit/45b41d98f50dc9f76a5004a8b3346f393f1a6cb6) Thanks [@NachoVazquez](https://github.com/NachoVazquez)! - Uses config root path as location for Cloudflare Pages Functions
-
-- Updated dependencies [[`f6fc662c3`](https://github.com/withastro/astro/commit/f6fc662c3c59d164584c6287a930fcd1c9086ee6), [`592386b75`](https://github.com/withastro/astro/commit/592386b75541f3b7f7d95c631f86024b7e2d314d), [`1b591a143`](https://github.com/withastro/astro/commit/1b591a1431b44eacd239ed8f76809916cabca1db), [`bf8d7366a`](https://github.com/withastro/astro/commit/bf8d7366acb57e1b21181cc40fff55a821d8119e), [`ec38a8921`](https://github.com/withastro/astro/commit/ec38a8921f02a275949abcababe1b8afdf8184a2), [`f20a85b64`](https://github.com/withastro/astro/commit/f20a85b642994f240d8c94260fc55ffa1fd14294), [`9f22ac3d0`](https://github.com/withastro/astro/commit/9f22ac3d097ef2cb3b2bbe5343b8a8a49d83425d), [`cee70f5c6`](https://github.com/withastro/astro/commit/cee70f5c6ac9b0d2edc1f8a6f8f5043605576026), [`ac7fb04d6`](https://github.com/withastro/astro/commit/ac7fb04d6b162f28a337918138d5737e2c0fffad), [`d1f5611fe`](https://github.com/withastro/astro/commit/d1f5611febfd020cca4078c71bafe599015edd16), [`2189170be`](https://github.com/withastro/astro/commit/2189170be523f74f244e84ccab22c655219773ce), [`32abe49bd`](https://github.com/withastro/astro/commit/32abe49bd073417b480b1b990f432a837c12eb6f)]:
- - astro@2.0.7
-
-## 6.1.1
-
-### Patch Changes
-
-- [#6046](https://github.com/withastro/astro/pull/6046) [`df3201165`](https://github.com/withastro/astro/commit/df320116528e00ab082396531b4deffbb0707b78) Thanks [@matthewp](https://github.com/matthewp)! - Cloudflare fix for building to directory mode
-
-- Updated dependencies [[`41e97158b`](https://github.com/withastro/astro/commit/41e97158ba90d23d346b6e3ff6c7c14b5ecbe903), [`e779c6242`](https://github.com/withastro/astro/commit/e779c6242418d1d4102e683ca5b851b764c89688)]:
- - astro@2.0.4
-
-## 6.1.0
-
-### Minor Changes
-
-- [#5914](https://github.com/withastro/astro/pull/5914) [`088f5194c`](https://github.com/withastro/astro/commit/088f5194c55a6ec15b2eaf2cfb97f9ef45a24a33) Thanks [@AngusMorton](https://github.com/AngusMorton)! - Re-enable streaming in Cloudflare Pages.
-
-### Patch Changes
-
-- [#5993](https://github.com/withastro/astro/pull/5993) [`9855db676`](https://github.com/withastro/astro/commit/9855db676e61ad616c64382adeaa8c74de05f7e1) Thanks [@matthewp](https://github.com/matthewp)! - Support for prerendering in the Cloudflare integration
-
- This fixes prerendering in the Cloudflare adapter. Now any prerendered routes are added to the `_routes.json` config so that the worker script is skipped for those routes.
-
-- Updated dependencies [[`b53e0717b`](https://github.com/withastro/astro/commit/b53e0717b7f6b042baaeec7f87999e99c76c031c), [`60b32d585`](https://github.com/withastro/astro/commit/60b32d58565d87e87573eb268408293fc28ec657), [`883e0cc29`](https://github.com/withastro/astro/commit/883e0cc29968d51ed6c7515be035a40b28bafdad), [`dabce6b8c`](https://github.com/withastro/astro/commit/dabce6b8c684f851c3535f8acead06cbef6dce2a), [`aedf23f85`](https://github.com/withastro/astro/commit/aedf23f8582e32a6b94b81ddba9b323831f2b22a)]:
- - astro@2.0.2
-
-## 6.0.0
-
-### Major Changes
-
-- [#5707](https://github.com/withastro/astro/pull/5707) [`5eba34fcc`](https://github.com/withastro/astro/commit/5eba34fcc663def20bdf6e0daad02a6a5472776b) Thanks [@bluwy](https://github.com/bluwy)! - Remove `astro:build:start` backwards compatibility code
-
-- [#5806](https://github.com/withastro/astro/pull/5806) [`7572f7402`](https://github.com/withastro/astro/commit/7572f7402238da37de748be58d678fedaf863b53) Thanks [@matthewp](https://github.com/matthewp)! - Make astro a `peerDependency` of integrations
-
- This marks `astro` as a `peerDependency` of several packages that are already getting `major` version 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`](https://github.com/withastro/astro/commit/93e633922c2e449df3bb2357b3683af1d3c0e07b), [`16dc36a87`](https://github.com/withastro/astro/commit/16dc36a870df47a4151a8ed2d91d0bd1bb812458), [`01f3f463b`](https://github.com/withastro/astro/commit/01f3f463bf2918b310d130a9fabbf3ee21d14029), [`e2019be6f`](https://github.com/withastro/astro/commit/e2019be6ffa46fa33d92cfd346f9ecbe51bb7144), [`05caf445d`](https://github.com/withastro/astro/commit/05caf445d4d2728f1010aeb2179a9e756c2fd17d), [`49ab4f231`](https://github.com/withastro/astro/commit/49ab4f231c23b34891c3ee86f4b92bf8d6d267a3), [`a342a486c`](https://github.com/withastro/astro/commit/a342a486c2831461e24e6c2f1ca8a9d3e15477b6), [`8fb28648f`](https://github.com/withastro/astro/commit/8fb28648f66629741cb976bfe34ccd9d8f55661e), [`1f92d64ea`](https://github.com/withastro/astro/commit/1f92d64ea35c03fec43aff64eaf704dc5a9eb30a), [`c2180746b`](https://github.com/withastro/astro/commit/c2180746b4f6d9ef1b6f86924f21f52cc6ab4e63), [`ae8a012a7`](https://github.com/withastro/astro/commit/ae8a012a7b6884a03c50494332ee37b4505c2c3b), [`cf2de5422`](https://github.com/withastro/astro/commit/cf2de5422c26bfdea4c75f76e57b57299ded3e3a), [`ce5c5dbd4`](https://github.com/withastro/astro/commit/ce5c5dbd46afbe738b03600758bf5c35113de522), [`ec09bb664`](https://github.com/withastro/astro/commit/ec09bb6642064dbd7d2f3369afb090363ae18de2), [`665a2c222`](https://github.com/withastro/astro/commit/665a2c2225e42881f5a9550599e8f3fc1deea0b4), [`259a539d7`](https://github.com/withastro/astro/commit/259a539d7d70c783330c797794b15716921629cf), [`f7aa1ec25`](https://github.com/withastro/astro/commit/f7aa1ec25d1584f7abd421903fbef66b1c050e2a), [`4987d6f44`](https://github.com/withastro/astro/commit/4987d6f44cfd0d81d88f21f5c380503403dc1e6a), [`304823811`](https://github.com/withastro/astro/commit/304823811eddd8e72aa1d8e2d39b40ab5cda3565), [`302e0ef8f`](https://github.com/withastro/astro/commit/302e0ef8f5d5232e3348afe680e599f3e537b5c5), [`55cea0a9d`](https://github.com/withastro/astro/commit/55cea0a9d8c8df91a46590fc04a9ac28089b3432), [`dd56c1941`](https://github.com/withastro/astro/commit/dd56c19411b126439b8bc42d681b6fa8c06e8c61), [`9963c6e4d`](https://github.com/withastro/astro/commit/9963c6e4d50c392c3d1ac4492237020f15ccb1de), [`be901dc98`](https://github.com/withastro/astro/commit/be901dc98c4a7f6b5536540aa8f7ba5108e939a0), [`f6cf92b48`](https://github.com/withastro/astro/commit/f6cf92b48317a19a3840ad781b77d6d3cae143bb), [`e818cc046`](https://github.com/withastro/astro/commit/e818cc0466a942919ea3c41585e231c8c80cb3d0), [`8c100a6fe`](https://github.com/withastro/astro/commit/8c100a6fe6cc652c3799d1622e12c2c969f30510), [`116d8835c`](https://github.com/withastro/astro/commit/116d8835ca9e78f8b5e477ee5a3d737b69f80706), [`840412128`](https://github.com/withastro/astro/commit/840412128b00a04515156e92c314a929d6b94f6d), [`1f49cddf9`](https://github.com/withastro/astro/commit/1f49cddf9e9ffc651efc171b2cbde9fbe9e8709d), [`7325df412`](https://github.com/withastro/astro/commit/7325df412107fc0e65cd45c1b568fb686708f723), [`16c7d0bfd`](https://github.com/withastro/astro/commit/16c7d0bfd49d2b9bfae45385f506bcd642f9444a), [`a9c292026`](https://github.com/withastro/astro/commit/a9c2920264e36cc5dc05f4adc1912187979edb0d), [`2a5786419`](https://github.com/withastro/astro/commit/2a5786419599b8674473c699300172b9aacbae2e), [`4a1cabfe6`](https://github.com/withastro/astro/commit/4a1cabfe6b9ef8a6fbbcc0727a0dc6fa300cedaa), [`a8d3e7924`](https://github.com/withastro/astro/commit/a8d3e79246605d252dcddad159e358e2d79bd624), [`fa8c131f8`](https://github.com/withastro/astro/commit/fa8c131f88ef67d14c62f1c00c97ed74d43a80ac), [`64b8082e7`](https://github.com/withastro/astro/commit/64b8082e776b832f1433ed288e6f7888adb626d0), [`c4b0cb8bf`](https://github.com/withastro/astro/commit/c4b0cb8bf2b41887d9106440bb2e70d421a5f481), [`23dc9ea96`](https://github.com/withastro/astro/commit/23dc9ea96a10343852d965efd41fe6665294f1fb), [`63a6ceb38`](https://github.com/withastro/astro/commit/63a6ceb38d88331451dca64d0034c7c58e3d26f1), [`a3a7fc929`](https://github.com/withastro/astro/commit/a3a7fc9298e6d88abb4b7bee1e58f05fa9558cf1), [`52209ca2a`](https://github.com/withastro/astro/commit/52209ca2ad72a30854947dcb3a90ab4db0ac0a6f), [`5fd9208d4`](https://github.com/withastro/astro/commit/5fd9208d447f5ab8909a2188b6c2491a0debd49d), [`5eba34fcc`](https://github.com/withastro/astro/commit/5eba34fcc663def20bdf6e0daad02a6a5472776b), [`899214298`](https://github.com/withastro/astro/commit/899214298cee5f0c975c7245e623c649e1842d73), [`3a00ecb3e`](https://github.com/withastro/astro/commit/3a00ecb3eb4bc44be758c064f2bde6e247e8a593), [`5eba34fcc`](https://github.com/withastro/astro/commit/5eba34fcc663def20bdf6e0daad02a6a5472776b), [`2303f9514`](https://github.com/withastro/astro/commit/2303f95142aa740c99213a098f82b99dd37d74a0), [`1ca81c16b`](https://github.com/withastro/astro/commit/1ca81c16b8b66236e092e6eb6ec3f73f5668421c), [`b66d7195c`](https://github.com/withastro/astro/commit/b66d7195c17a55ea0931bc3744888bd4f5f01ce6)]:
- - astro@2.0.0
-
-## 6.0.0-beta.1
-
-
-See changes in 6.0.0-beta.1
-
-### Major Changes
-
-- [#5806](https://github.com/withastro/astro/pull/5806) [`7572f7402`](https://github.com/withastro/astro/commit/7572f7402238da37de748be58d678fedaf863b53) Thanks [@matthewp](https://github.com/matthewp)! - Make astro a `peerDependency` of integrations
-
- This marks `astro` as a `peerDependency` of several packages that are already getting `major` version 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 [[`01f3f463b`](https://github.com/withastro/astro/commit/01f3f463bf2918b310d130a9fabbf3ee21d14029), [`1f92d64ea`](https://github.com/withastro/astro/commit/1f92d64ea35c03fec43aff64eaf704dc5a9eb30a), [`c2180746b`](https://github.com/withastro/astro/commit/c2180746b4f6d9ef1b6f86924f21f52cc6ab4e63), [`ae8a012a7`](https://github.com/withastro/astro/commit/ae8a012a7b6884a03c50494332ee37b4505c2c3b), [`cf2de5422`](https://github.com/withastro/astro/commit/cf2de5422c26bfdea4c75f76e57b57299ded3e3a), [`ec09bb664`](https://github.com/withastro/astro/commit/ec09bb6642064dbd7d2f3369afb090363ae18de2), [`665a2c222`](https://github.com/withastro/astro/commit/665a2c2225e42881f5a9550599e8f3fc1deea0b4), [`f7aa1ec25`](https://github.com/withastro/astro/commit/f7aa1ec25d1584f7abd421903fbef66b1c050e2a), [`302e0ef8f`](https://github.com/withastro/astro/commit/302e0ef8f5d5232e3348afe680e599f3e537b5c5), [`840412128`](https://github.com/withastro/astro/commit/840412128b00a04515156e92c314a929d6b94f6d), [`1f49cddf9`](https://github.com/withastro/astro/commit/1f49cddf9e9ffc651efc171b2cbde9fbe9e8709d), [`4a1cabfe6`](https://github.com/withastro/astro/commit/4a1cabfe6b9ef8a6fbbcc0727a0dc6fa300cedaa), [`c4b0cb8bf`](https://github.com/withastro/astro/commit/c4b0cb8bf2b41887d9106440bb2e70d421a5f481), [`23dc9ea96`](https://github.com/withastro/astro/commit/23dc9ea96a10343852d965efd41fe6665294f1fb), [`63a6ceb38`](https://github.com/withastro/astro/commit/63a6ceb38d88331451dca64d0034c7c58e3d26f1), [`52209ca2a`](https://github.com/withastro/astro/commit/52209ca2ad72a30854947dcb3a90ab4db0ac0a6f), [`2303f9514`](https://github.com/withastro/astro/commit/2303f95142aa740c99213a098f82b99dd37d74a0)]:
- - astro@2.0.0-beta.2
-
-
-
-## 6.0.0-beta.0
-
-
-See changes in 6.0.0-beta.0
-
-### Major Changes
-
-- [#5707](https://github.com/withastro/astro/pull/5707) [`5eba34fcc`](https://github.com/withastro/astro/commit/5eba34fcc663def20bdf6e0daad02a6a5472776b) Thanks [@bluwy](https://github.com/bluwy)! - Remove `astro:build:start` backwards compatibility code
-
-### Patch Changes
-
-- Updated dependencies [[`e2019be6f`](https://github.com/withastro/astro/commit/e2019be6ffa46fa33d92cfd346f9ecbe51bb7144), [`8fb28648f`](https://github.com/withastro/astro/commit/8fb28648f66629741cb976bfe34ccd9d8f55661e), [`dd56c1941`](https://github.com/withastro/astro/commit/dd56c19411b126439b8bc42d681b6fa8c06e8c61), [`f6cf92b48`](https://github.com/withastro/astro/commit/f6cf92b48317a19a3840ad781b77d6d3cae143bb), [`16c7d0bfd`](https://github.com/withastro/astro/commit/16c7d0bfd49d2b9bfae45385f506bcd642f9444a), [`a9c292026`](https://github.com/withastro/astro/commit/a9c2920264e36cc5dc05f4adc1912187979edb0d), [`5eba34fcc`](https://github.com/withastro/astro/commit/5eba34fcc663def20bdf6e0daad02a6a5472776b), [`5eba34fcc`](https://github.com/withastro/astro/commit/5eba34fcc663def20bdf6e0daad02a6a5472776b)]:
- - astro@2.0.0-beta.0
-
-
-
-## 5.0.0
-
-### Patch Changes
-
-- Updated dependencies [[`d85ec7484`](https://github.com/withastro/astro/commit/d85ec7484ce14a4c7d3f480da8f38fcb9aff388f), [`d2960984c`](https://github.com/withastro/astro/commit/d2960984c59af7b60a3ea472c6c58fb00534a8e6), [`31ec84797`](https://github.com/withastro/astro/commit/31ec8479721a1cd65538ec041458c5ffe8f50ee9), [`5ec0f6ed5`](https://github.com/withastro/astro/commit/5ec0f6ed55b0a14a9663a90a03428345baf126bd), [`dced4a8a2`](https://github.com/withastro/astro/commit/dced4a8a2657887ec569860d9862d20f695dc23a), [`6b156dd3b`](https://github.com/withastro/astro/commit/6b156dd3b467884839a571c53114aadf26fa4b0b)]:
- - astro@1.7.0
-
-## 4.1.1
-
-### Patch Changes
-
-- [#5534](https://github.com/withastro/astro/pull/5534) [`fabd9124b`](https://github.com/withastro/astro/commit/fabd9124bd3e654e885054f30e9c0d01eabf0470) Thanks [@bluwy](https://github.com/bluwy)! - Update esbuild dependency
-
-- Updated dependencies [[`9082a850e`](https://github.com/withastro/astro/commit/9082a850eef4ab0187fc3bfdd5a377f0c7040070), [`4f7f20616`](https://github.com/withastro/astro/commit/4f7f20616ed2b63f94ebf43bc5fdc1be55062a94), [`05915fec0`](https://github.com/withastro/astro/commit/05915fec01a51f27ab5051644f01e6112ecf06bc), [`1aeabe417`](https://github.com/withastro/astro/commit/1aeabe417077505bc0cdb8d2e47366ddbc616072), [`795f00f73`](https://github.com/withastro/astro/commit/795f00f73c549727e05d5b7bf0e39cce87add4e7), [`2c836b9d1`](https://github.com/withastro/astro/commit/2c836b9d1283a0707128d172e92ee2bba767486c), [`8f3f67c96`](https://github.com/withastro/astro/commit/8f3f67c96aee63be64de77f374293761ff73f6ce)]:
- - astro@1.6.14
-
-## 4.1.0
-
-### Minor Changes
-
-- [#5347](https://github.com/withastro/astro/pull/5347) [`743000cc7`](https://github.com/withastro/astro/commit/743000cc70274a2d2fed01c72e2ac51aa6b876a6) Thanks [@AirBorne04](https://github.com/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`, `_redirects` and `_headers` files when placed into the `public` folder.
-
-### Patch Changes
-
-- Updated dependencies [[`936c1e411`](https://github.com/withastro/astro/commit/936c1e411d77c69b2b60a061c54704200716800a), [`4b188132e`](https://github.com/withastro/astro/commit/4b188132ef68f8d9951cec86418ef50bb4df4a96), [`f5ed630bc`](https://github.com/withastro/astro/commit/f5ed630bca05ebbfcc6ac994ced3911e41daedcc)]:
- - astro@1.6.11
-
-## 4.0.1
-
-### Patch Changes
-
-- [#5301](https://github.com/withastro/astro/pull/5301) [`a79a37cad`](https://github.com/withastro/astro/commit/a79a37cad549b21f91599ff86899e456d9dcc7df) Thanks [@bluwy](https://github.com/bluwy)! - Fix environment variables usage in worker output and warn if environment variables are accessedd too early
-
-- Updated dependencies [[`88c1bbe3a`](https://github.com/withastro/astro/commit/88c1bbe3a71f85e92f42f13d0f310c6b2a264ade), [`a79a37cad`](https://github.com/withastro/astro/commit/a79a37cad549b21f91599ff86899e456d9dcc7df)]:
- - astro@1.6.5
-
-## 4.0.0
-
-### Major Changes
-
-- [#5290](https://github.com/withastro/astro/pull/5290) [`b2b291d29`](https://github.com/withastro/astro/commit/b2b291d29143703cece0d12c8e74b2e1151d2061) Thanks [@matthewp](https://github.com/matthewp)! - Handle base configuration in adapters
-
- This allows adapters to correctly handle `base` configuration. Internally Astro now matches routes when the URL includes the `base`.
-
- Adapters now also have access to the `removeBase` method which will remove the `base` from a pathname. This is useful to look up files for static assets.
-
-### Patch Changes
-
-- Updated dependencies [[`b2b291d29`](https://github.com/withastro/astro/commit/b2b291d29143703cece0d12c8e74b2e1151d2061), [`97e2b6ad7`](https://github.com/withastro/astro/commit/97e2b6ad7a6fa23e82be28b2f57cdf3f85fab112), [`4af4d8fa0`](https://github.com/withastro/astro/commit/4af4d8fa0035130fbf31c82d72777c3679bc1ca5), [`f6add3924`](https://github.com/withastro/astro/commit/f6add3924d5cd59925a6ea4bf7f2f731709bc893), [`247eb7411`](https://github.com/withastro/astro/commit/247eb7411f429317e5cd7d401a6660ee73641313)]:
- - astro@1.6.4
-
-## 3.1.2
-
-### Patch Changes
-
-- [#5230](https://github.com/withastro/astro/pull/5230) [`69a532ab6`](https://github.com/withastro/astro/commit/69a532ab60a85d30c2395969593c4d38f9a2fbbe) Thanks [@matthewp](https://github.com/matthewp)! - Exports new runtime entrypoint's types
-
-## 3.1.1
-
-### Patch Changes
-
-- [#5103](https://github.com/withastro/astro/pull/5103) [`d151d9f3f`](https://github.com/withastro/astro/commit/d151d9f3f29c0a57c59b8029a18717808ccc7f8f) Thanks [@AirBorne04](https://github.com/AirBorne04)! - enable access to Cloudflare runtime [KV, R2, Durable Objects]
- - access native Cloudflare runtime through `import { getRuntime } from "@astrojs/cloudflare/runtime"`; now you can call `getRuntime(Astro.request)` and get access to the runtime environment.
-
-## 3.1.0
-
-### Minor Changes
-
-- [#5056](https://github.com/withastro/astro/pull/5056) [`e55af8a23`](https://github.com/withastro/astro/commit/e55af8a23233b6335f45b7a04b9d026990fb616c) Thanks [@matthewp](https://github.com/matthewp)! - # New build configuration
-
- The 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), and `serverEntry` (the name of the entrypoint server module). Here are the defaults:
-
- ```js
- 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:start` includes a param `buildConfig` which 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 new `build.config` options. 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:
-
- ```js
- export default function myIntegration() {
- return {
- name: 'my-integration',
- hooks: {
- 'astro:config:setup': ({ updateConfig }) => {
- updateConfig({
- build: {
- server: '...',
- },
- });
- },
- },
- };
- }
- ```
-
-## 3.0.0
-
-### Major Changes
-
-- [#4888](https://github.com/withastro/astro/pull/4888) [`2dc582ac5`](https://github.com/withastro/astro/commit/2dc582ac5e2d6e1d434ccfe21616182e453feec3) Thanks [@AirBorne04](https://github.com/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](https://github.com/withastro/astro/pull/4876) [`d3091f89e`](https://github.com/withastro/astro/commit/d3091f89e92fcfe1ad48daca74055d54b1c853a3) Thanks [@matthewp](https://github.com/matthewp)! - Adds the Astro.cookies API
-
- `Astro.cookies` is a new API for manipulating cookies in Astro components and API routes.
-
- In Astro components, the new `Astro.cookies` object is a map-like object that allows you to get, set, delete, and check for a cookie's existence (`has`):
-
- ```astro
- ---
- type Prefs = {
- darkMode: boolean;
- };
-
- Astro.cookies.set(
- 'prefs',
- { darkMode: true },
- {
- expires: '1 month',
- }
- );
-
- const prefs = Astro.cookies.get('prefs').json();
- ---
-
-
- ```
-
- 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:
-
- ```js
- export function post({ cookies }) {
- cookies.set('loggedIn', false);
-
- return new Response(null, {
- status: 302,
- headers: {
- Location: '/login',
- },
- });
- }
- ```
-
- See [the RFC](https://github.com/withastro/rfcs/blob/main/proposals/0025-cookie-management.md) to learn more.
-
-## 2.0.0
-
-### Major Changes
-
-- [#4815](https://github.com/withastro/astro/pull/4815) [`ce0b92ba7`](https://github.com/withastro/astro/commit/ce0b92ba73072c0f0143829a53f870155ad4c7ff) Thanks [@AirBorne04](https://github.com/AirBorne04)! - adjusted esbuild config to work with worker environment (fixing solid js ssr)
-
-## 1.0.2
-
-### Patch Changes
-
-- [#4558](https://github.com/withastro/astro/pull/4558) [`742966456`](https://github.com/withastro/astro/commit/7429664566f05ecebf6d57906f950627e62e690c) Thanks [@tony-sull](https://github.com/tony-sull)! - Adding the `withastro` keyword to include the adapters on the [Integrations Catalog](https://astro.build/integrations)
-
-## 1.0.1
-
-### Patch Changes
-
-- [#4232](https://github.com/withastro/astro/pull/4232) [`bfbd32588`](https://github.com/withastro/astro/commit/bfbd32588f7e2c0a9e43cd1a571a0dc9c5f7e645) Thanks [@Ekwuno](https://github.com/Ekwuno)! - Update README
-
-## 1.0.0
-
-### Major Changes
-
-- [`04ad44563`](https://github.com/withastro/astro/commit/04ad445632c67bdd60c1704e1e0dcbcaa27b9308) - > Astro v1.0 is out! Read the [official announcement post](https://astro.build/blog/astro-1/).
-
- **No breaking changes**. This package is now officially stable and compatible with `astro@1.0.0`!
-
-## 0.5.0
-
-### Minor Changes
-
-- [#3806](https://github.com/withastro/astro/pull/3806) [`f4c571bdb`](https://github.com/withastro/astro/commit/f4c571bdb0bbcd0dfed68a484dfbfe274f8a5f45) Thanks [@nrgnrg](https://github.com/nrgnrg)! - add support for compiling functions to a functions directory rather than `_worker.js`
-
-## 0.4.0
-
-### Minor Changes
-
-- [#4068](https://github.com/withastro/astro/pull/4068) [`54b33d50f`](https://github.com/withastro/astro/commit/54b33d50fdb995ac056461be7e2128d911624f2d) Thanks [@matthewp](https://github.com/matthewp)! - Add explicit errors when omitting output config
-
-### Patch Changes
-
-- [#4072](https://github.com/withastro/astro/pull/4072) [`a198028b0`](https://github.com/withastro/astro/commit/a198028b04234d0b8dcb0b6bcb47c5831d7a15f9) Thanks [@matthewp](https://github.com/matthewp)! - Fixes Cloudflare throwing an error for process
-
-## 0.3.0
-
-### Minor Changes
-
-- [#4015](https://github.com/withastro/astro/pull/4015) [`6fd161d76`](https://github.com/withastro/astro/commit/6fd161d7691cbf9d3ffa4646e46059dfd0940010) Thanks [@matthewp](https://github.com/matthewp)! - New `output` configuration option
-
- This 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 `output` is 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 the `adapter` configuration. 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 add `output: '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:
-
- ```diff
- import { defineConfig } from 'astro/config';
- import netlify from '@astrojs/netlify/functions';
-
- export default defineConfig({
- adapter: netlify(),
- + output: 'server',
- });
- ```
-
-* [#4018](https://github.com/withastro/astro/pull/4018) [`0cc6ede36`](https://github.com/withastro/astro/commit/0cc6ede362996b9faba57481a790d6eb7fba2045) Thanks [@okikio](https://github.com/okikio)! - Support for 404 and 500 pages in SSR
-
-- [#3973](https://github.com/withastro/astro/pull/3973) [`5a23483ef`](https://github.com/withastro/astro/commit/5a23483efb3ba614b05a00064f84415620605204) Thanks [@matthewp](https://github.com/matthewp)! - Adds support for Astro.clientAddress
-
- The new `Astro.clientAddress` property allows you to get the IP address of the requested user.
-
- ```astro
-
- ```
-
- 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
-
-- [#3885](https://github.com/withastro/astro/pull/3885) [`bf5d1cc1e`](https://github.com/withastro/astro/commit/bf5d1cc1e71da38a14658c615e9481f2145cc6e7) Thanks [@delucis](https://github.com/delucis)! - Integration README fixes
-
-## 0.2.3
-
-### Patch Changes
-
-- [#3854](https://github.com/withastro/astro/pull/3854) [`b012ee55`](https://github.com/withastro/astro/commit/b012ee55b107dea0730286263b27d83e530fad5d) Thanks [@bholmesdev](https://github.com/bholmesdev)! - [astro add] Support adapters and third party packages
-
-## 0.2.2
-
-### Patch Changes
-
-- [#3777](https://github.com/withastro/astro/pull/3777) [`976e1f17`](https://github.com/withastro/astro/commit/976e1f175a95ea39f737b8575e4fdf3c3d89e1ee) Thanks [@tony-sull](https://github.com/tony-sull)! - Disables HTTP streaming in Cloudflare Pages deployments
-
-## 0.2.1
-
-### Patch Changes
-
-- [#3695](https://github.com/withastro/astro/pull/3695) [`0d667d0e`](https://github.com/withastro/astro/commit/0d667d0e572d76d4c819816ddf51ed14b43e2551) Thanks [@nrgnrg](https://github.com/nrgnrg)! - fix custom 404 pages not rendering
-
-## 0.2.0
-
-### Minor Changes
-
-- [#3600](https://github.com/withastro/astro/pull/3600) [`7f423581`](https://github.com/withastro/astro/commit/7f423581411648c9a69b68918ff930581f12cf16) Thanks [@nrgnrg](https://github.com/nrgnrg)! - add SSR adaptor for Cloudflare Pages functions
diff --git a/packages/integrations/cloudflare/README.md b/packages/integrations/cloudflare/README.md
index 10a381a7b..1f8e7271f 100644
--- a/packages/integrations/cloudflare/README.md
+++ b/packages/integrations/cloudflare/README.md
@@ -1,399 +1,3 @@
# @astrojs/cloudflare
-An SSR adapter for use with Cloudflare Pages Functions targets. Write your code in Astro/Javascript and deploy to Cloudflare Pages.
-
-## Install
-
-Add the Cloudflare adapter to enable SSR in your Astro project with the following `astro add` command. This will install the adapter and make the appropriate changes to your `astro.config.mjs` file in one step.
-
-```sh
-# Using NPM
-npx astro add cloudflare
-# Using Yarn
-yarn astro add cloudflare
-# Using PNPM
-pnpm astro add cloudflare
-```
-
-If you prefer to install the adapter manually instead, complete the following two steps:
-
-1. Add the Cloudflare adapter to your project's dependencies using your preferred package manager. If you’re using npm or aren’t sure, run this in the terminal:
-
-```bash
-npm install @astrojs/cloudflare
-```
-
-2. Add the following to your `astro.config.mjs` file:
-
-```diff lang="js"
- // astro.config.mjs
- import { defineConfig } from 'astro/config';
-+ import cloudflare from '@astrojs/cloudflare';
-
- export default defineConfig({
-+ output: 'server',
-+ adapter: cloudflare(),
- });
-```
-
-## Options
-
-### `mode`
-
-`mode: "advanced" | "directory"`
-
-default `"advanced"`
-
-This configuration option defines how your Astro project is deployed to Cloudflare Pages.
-
-- `advanced` mode picks up the `_worker.js` file in the `dist` folder
-- `directory` mode picks up the files in the `functions` folder, by default only one `[[path]].js` file is generated
-
-Switching to directory mode allows you to add additional files manually such as [Cloudflare Pages Plugins](https://developers.cloudflare.com/pages/platform/functions/plugins/), [Cloudflare Pages Middleware](https://developers.cloudflare.com/pages/platform/functions/middleware/) or custom functions using [Cloudflare Pages Functions Routing](https://developers.cloudflare.com/pages/platform/functions/routing/).
-
-```js
-// astro.config.mjs
-export default defineConfig({
- adapter: cloudflare({ mode: 'directory' }),
-});
-```
-
-To compile a separate bundle for each page, set the `functionPerRoute` option in your Cloudflare adapter config. This option requires some manual maintenance of the `functions` folder. Files emitted by Astro will overwrite existing files with identical names in the `functions` folder, so you must choose unique file names for each file you manually add. Additionally, the adapter will never empty the `functions` folder of outdated files, so you must clean up the folder manually when you remove pages.
-
-```diff lang="js"
- // astro.config.mjs
- import {defineConfig} from "astro/config";
- import cloudflare from '@astrojs/cloudflare';
-
- export default defineConfig({
- adapter: cloudflare({
- mode: 'directory',
-+ functionPerRoute: true
- })
- })
-```
-
-This adapter doesn't support the [`edgeMiddleware`](https://docs.astro.build/en/reference/adapter-reference/#edgemiddleware) option.
-
-### `routes.strategy`
-
-`routes.strategy: "auto" | "include" | "exclude"`
-
-default `"auto"`
-
-Determines how `routes.json` will be generated if no [custom `_routes.json`](#custom-_routesjson) is provided.
-
-There are three options available:
-
-- **`"auto"` (default):** Will automatically select the strategy that generates the fewest entries. This should almost always be sufficient, so choose this option unless you have a specific reason not to.
-
-- **`include`:** Pages and endpoints that are not pre-rendered are listed as `include` entries, telling Cloudflare to invoke these routes as functions. `exclude` entries are only used to resolve conflicts. Usually the best strategy when your website has mostly static pages and only a few dynamic pages or endpoints.
-
- Example: For `src/pages/index.astro` (static), `src/pages/company.astro` (static), `src/pages/users/faq.astro` (static) and `/src/pages/users/[id].astro` (SSR) this will produce the following `_routes.json`:
-
- ```json
- {
- "version": 1,
- "include": [
- "/_image", // Astro's image endpoint
- "/users/*" // Dynamic route
- ],
- "exclude": [
- // Static routes that needs to be exempted from the dynamic wildcard route above
- "/users/faq/",
- "/users/faq/index.html"
- ]
- }
- ```
-
-- **`exclude`:** Pre-rendered pages are listed as `exclude` entries (telling Cloudflare to handle these routes as static assets). Usually the best strategy when your website has mostly dynamic pages or endpoints and only a few static pages.
-
- Example: For the same pages as in the previous example this will produce the following `_routes.json`:
-
- ```json
- {
- "version": 1,
- "include": [
- "/*" // Handle everything as function except the routes below
- ],
- "exclude": [
- // All static assets
- "/",
- "/company/",
- "/index.html",
- "/users/faq/",
- "/favicon.png",
- "/company/index.html",
- "/users/faq/index.html"
- ]
- }
- ```
-
-### `routes.include`
-
-`routes.include: string[]`
-
-default `[]`
-
-If you want to use the automatic `_routes.json` generation, but want to include additional routes (e.g. when having custom functions in the `functions` folder), you can use the `routes.include` option to add additional routes to the `include` array.
-
-### `routes.exclude`
-
-`routes.exclude: string[]`
-
-default `[]`
-
-If you want to use the automatic `_routes.json` generation, but want to exclude additional routes, you can use the `routes.exclude` option to add additional routes to the `exclude` array.
-
-The following example automatically generates `_routes.json` while including and excluding additional routes. Note that that is only necessary if you have custom functions in the `functions` folder that are not handled by Astro.
-
-```diff lang="js"
- // astro.config.mjs
- export default defineConfig({
- adapter: cloudflare({
- mode: 'directory',
-+ routes: {
-+ strategy: 'include',
-+ include: ['/users/*'], // handled by custom function: functions/users/[id].js
-+ exclude: ['/users/faq'], // handled by static page: pages/users/faq.astro
-+ },
- }),
- });
-```
-
-### `wasmModuleImports`
-
-`wasmModuleImports: boolean`
-
-default: `false`
-
-Whether or not to import `.wasm` files [directly as ES modules](https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration) using the `.wasm?module` import syntax.
-
-Add `wasmModuleImports: true` to `astro.config.mjs` to enable this functionality in both the Cloudflare build and the Astro dev server. Read more about [using Wasm modules](#use-wasm-modules)
-
-```diff lang="js"
-// astro.config.mjs
-import {defineConfig} from "astro/config";
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare({
-+ wasmModuleImports: true
- }),
- output: 'server'
-})
-```
-
-### `runtime`
-
-`runtime: "off" | "local"`
-
-default `"off"`
-
-Determines whether and how the Cloudflare Runtime is added to `astro dev`.
-
-The Cloudflare Runtime includes [Cloudflare bindings](https://developers.cloudflare.com/pages/platform/functions/bindings), [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables), and the [cf object](https://developers.cloudflare.com/workers/runtime-apis/request/#incomingrequestcfproperties). Read more about [accessing the Cloudflare Runtime](#cloudflare-runtime).
-
-- `local`: uses bindings mocking and locally static placeholders
-- `off`: no access to the Cloudflare runtime using `astro dev`. You can alternatively use [Preview with Wrangler](#preview-with-wrangler)
-
-```diff lang="js"
-// astro.config.mjs
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- output: 'server',
- adapter: cloudflare({
-+ runtime: 'local',
- }),
-});
-```
-
-## Cloudflare runtime
-
-Gives you access to [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables), and [Cloudflare bindings](https://developers.cloudflare.com/pages/platform/functions/bindings).
-
-Currently supported bindings:
-
-- [Cloudflare D1](https://developers.cloudflare.com/d1/)
-- [Cloudflare R2](https://developers.cloudflare.com/r2/)
-- [Cloudflare Workers KV](https://developers.cloudflare.com/kv/)
-- [Cloudflare Durable Objects](https://developers.cloudflare.com/durable-objects/)
-
-You can access the runtime from Astro components through `Astro.locals` inside any .astro` file.
-
-```astro
----
-// src/pages/index.astro
-const runtime = Astro.locals.runtime;
----
-
-{JSON.stringify(runtime.env)}
-```
-
-You can access the runtime from API endpoints through `context.locals`:
-
-```js
-// src/pages/api/someFile.js
-export function GET(context) {
- const runtime = context.locals.runtime;
-
- return new Response('Some body');
-}
-```
-
-### Typing
-
-If you have configured `mode: advanced`, you can type the `runtime` object using `AdvancedRuntime`:
-
-```ts
-// src/env.d.ts
-///
-
-type KVNamespace = import('@cloudflare/workers-types/experimental').KVNamespace;
-type ENV = {
- SERVER_URL: string;
- KV_BINDING: KVNamespace;
-};
-
-type Runtime = import('@astrojs/cloudflare').AdvancedRuntime;
-
-declare namespace App {
- interface Locals extends Runtime {
- user: {
- name: string;
- surname: string;
- };
- }
-}
-```
-
-If you have configured `mode: directory`, you can type the `runtime` object using `DirectoryRuntime`:
-
-```ts
-// src/env.d.ts
-///
-
-type KVNamespace = import('@cloudflare/workers-types/experimental').KVNamespace;
-type ENV = {
- SERVER_URL: string;
- KV_BINDING: KVNamespace;
-};
-
-type Runtime = import('@astrojs/cloudflare').DirectoryRuntime;
-
-declare namespace App {
- interface Locals extends Runtime {
- user: {
- name: string;
- surname: string;
- };
- }
-}
-```
-
-## Platform
-
-### Headers
-
-You can attach [custom headers](https://developers.cloudflare.com/pages/platform/headers/) to your responses by adding a `_headers` file in your Astro project's `public/` folder. This file will be copied to your build output directory.
-
-### Redirects
-
-You can declare [custom redirects](https://developers.cloudflare.com/pages/platform/redirects/) using Cloudflare Pages. This allows you to redirect requests to a different URL. You can add a `_redirects` file in your Astro project's `public/` folder. This file will be copied to your build output directory.
-
-### Routes
-
-You can define which routes are invoking functions and which are static assets, using [Cloudflare routing](https://developers.cloudflare.com/pages/platform/functions/routing/#functions-invocation-routes) via a `_routes.json` file. This file is automatically generated by Astro.
-
-#### Custom `_routes.json`
-
-By default, `@astrojs/cloudflare` will generate a `_routes.json` file with `include` and `exclude` rules based on your applications's dynamic and static routes.
-This will enable Cloudflare to serve files and process static redirects without a function invocation. Creating a custom `_routes.json` will override this automatic optimization. See [Cloudflare's documentation on creating a custom `routes.json`](https://developers.cloudflare.com/pages/platform/functions/routing/#create-a-_routesjson-file) for more details.
-
-## Use Wasm modules
-
-The following is an example of importing a Wasm module that then responds to requests by adding the request's number parameters together.
-
-```js
-// pages/add/[a]/[b].js
-import mod from '../util/add.wasm?module';
-
-// instantiate ahead of time to share module
-const addModule: any = new WebAssembly.Instance(mod);
-
-export async function GET(context) {
- const a = Number.parseInt(context.params.a);
- const b = Number.parseInt(context.params.b);
- return new Response(`${addModule.exports.add(a, b)}`);
-}
-```
-
-While this example is trivial, Wasm can be used to accelerate computationally intensive operations which do not involve significant I/O such as embedding an image processing library.
-
-## Node.js compatibility
-
-Astro's Cloudflare adapter allows you to use any Node.js runtime API supported by Cloudflare:
-
-- assert
-- AsyncLocalStorage
-- Buffer
-- Diagnostics Channel
-- EventEmitter
-- path
-- process
-- Streams
-- StringDecoder
-- util
-
-To use these APIs, your page or endpoint must be server-side rendered (not pre-rendered) and must use the the `import {} from 'node:*'` import syntax.
-
-```js
-// pages/api/endpoint.js
-export const prerender = false;
-import { Buffer } from 'node:buffer';
-```
-
-Additionally, you'll need to enable the Compatibility Flag in Cloudflare. The configuration for this flag may vary based on where you deploy your Astro site. For detailed guidance, please refer to the [Cloudflare documentation on enabling Node.js compatibility](https://developers.cloudflare.com/workers/runtime-apis/nodejs).
-
-## Preview with Wrangler
-
-To use [`wrangler`](https://developers.cloudflare.com/workers/wrangler/) to run your application locally, update the preview script:
-
-```json
-//package.json
-"preview": "wrangler pages dev ./dist"
-```
-
-[`wrangler`](https://developers.cloudflare.com/workers/wrangler/) gives you access to [Cloudflare bindings](https://developers.cloudflare.com/pages/platform/functions/bindings), [environment variables](https://developers.cloudflare.com/pages/platform/functions/bindings/#environment-variables), and the [cf object](https://developers.cloudflare.com/workers/runtime-apis/request/#incomingrequestcfproperties). Getting hot reloading or the astro dev server to work with Wrangler might require custom setup. See [community examples](https://github.com/withastro/roadmap/discussions/590).
-
-### Meaningful error messages
-
-Currently, errors during running your application in Wrangler are not very useful, due to the minification of your code. For better debugging, you can add `vite.build.minify = false` setting to your `astro.config.mjs`.
-
-```diff lang="js"
- // astro.config.mjs
- export default defineConfig({
- adapter: cloudflare(),
- output: 'server',
-
-+ vite: {
-+ build: {
-+ minify: false,
-+ },
-+ },
- });
-```
-
-## Troubleshooting
-
-For help, check out the `#support` channel on [Discord](https://astro.build/chat). Our friendly Support Squad members are here to help!
-
-You can also check our [Astro Integration Documentation][astro-integration] for more on integrations.
-
-## Contributing
-
-This package is maintained by Astro's Core team. You're welcome to submit an issue or PR!
-
-[astro-integration]: https://docs.astro.build/en/guides/integrations-guide/
+The Cloudflare adapter package has moved. Please see [the new repository for the Cloudflare adapter](https://github.com/withastro/adapters/tree/main/packages/cloudflare).
diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json
index b7ecc2c69..ec0ade6a8 100644
--- a/packages/integrations/cloudflare/package.json
+++ b/packages/integrations/cloudflare/package.json
@@ -1,65 +1,7 @@
{
"name": "@astrojs/cloudflare",
- "description": "Deploy your site to Cloudflare Workers/Pages",
- "version": "7.5.1",
- "type": "module",
- "types": "./dist/index.d.ts",
- "author": "withastro",
- "license": "MIT",
- "repository": {
- "type": "git",
- "url": "https://github.com/withastro/astro.git",
- "directory": "packages/integrations/cloudflare"
- },
- "keywords": [
- "withastro",
- "astro-adapter"
- ],
- "bugs": "https://github.com/withastro/astro/issues",
- "homepage": "https://docs.astro.build/en/guides/integrations-guide/cloudflare/",
- "exports": {
- ".": "./dist/index.js",
- "./entrypoints/server.advanced.js": "./dist/entrypoints/server.advanced.js",
- "./entrypoints/server.directory.js": "./dist/entrypoints/server.directory.js",
- "./package.json": "./package.json"
- },
- "files": [
- "dist"
- ],
- "scripts": {
- "build": "astro-scripts build \"src/**/*.ts\" && tsc",
- "build:ci": "astro-scripts build \"src/**/*.ts\"",
- "dev": "astro-scripts dev \"src/**/*.ts\"",
- "test": "mocha --exit --timeout 30000 test/",
- "test:match": "mocha --exit --timeout 30000 -g"
- },
- "dependencies": {
- "@astrojs/underscore-redirects": "workspace:*",
- "@cloudflare/workers-types": "^4.20230821.0",
- "miniflare": "^3.20230918.0",
- "@iarna/toml": "^2.2.5",
- "@miniflare/cache": "^2.14.1",
- "@miniflare/shared": "^2.14.1",
- "@miniflare/storage-memory": "^2.14.1",
- "dotenv": "^16.3.1",
- "esbuild": "^0.19.2",
- "find-up": "^6.3.0",
- "tiny-glob": "^0.2.9",
- "vite": "^4.4.9"
- },
- "peerDependencies": {
- "astro": "workspace:^3.2.3"
- },
- "devDependencies": {
- "@types/iarna__toml": "^2.0.2",
- "astro": "workspace:*",
- "astro-scripts": "workspace:*",
- "chai": "^4.3.7",
- "cheerio": "1.0.0-rc.12",
- "mocha": "^10.2.0",
- "wrangler": "^3.5.1"
- },
- "publishConfig": {
- "provenance": true
- }
+ "version": "0.0.0",
+ "private": true,
+ "keywords": [],
+ "dont_remove": "This is a placeholder for the same of the docs smoke test"
}
diff --git a/packages/integrations/cloudflare/src/entrypoints/server.advanced.ts b/packages/integrations/cloudflare/src/entrypoints/server.advanced.ts
deleted file mode 100644
index 957c1791d..000000000
--- a/packages/integrations/cloudflare/src/entrypoints/server.advanced.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-import type { Request as CFRequest, ExecutionContext } from '@cloudflare/workers-types';
-import type { SSRManifest } from 'astro';
-import { App } from 'astro/app';
-import { getProcessEnvProxy, isNode } from '../util.js';
-
-if (!isNode) {
- process.env = getProcessEnvProxy();
-}
-
-type Env = {
- ASSETS: { fetch: (req: Request) => Promise };
-};
-
-export interface AdvancedRuntime {
- runtime: {
- waitUntil: (promise: Promise) => void;
- env: Env & T;
- cf: CFRequest['cf'];
- caches: typeof caches;
- };
-}
-
-export function createExports(manifest: SSRManifest) {
- const app = new App(manifest);
-
- const fetch = async (request: Request & CFRequest, env: Env, context: ExecutionContext) => {
- // TODO: remove this any cast in the future
- // REF: the type cast to any is needed because the Cloudflare Env Type is not assignable to type 'ProcessEnv'
- process.env = env as any;
-
- const { pathname } = new URL(request.url);
-
- // static assets fallback, in case default _routes.json is not used
- if (manifest.assets.has(pathname)) {
- return env.ASSETS.fetch(request);
- }
-
- let routeData = app.match(request, { matchNotFound: true });
- if (routeData) {
- Reflect.set(
- request,
- Symbol.for('astro.clientAddress'),
- request.headers.get('cf-connecting-ip')
- );
-
- const locals: AdvancedRuntime = {
- runtime: {
- waitUntil: (promise: Promise) => {
- context.waitUntil(promise);
- },
- env: env,
- cf: request.cf,
- caches: caches,
- },
- };
-
- let response = await app.render(request, routeData, locals);
-
- if (app.setCookieHeaders) {
- for (const setCookieHeader of app.setCookieHeaders(response)) {
- response.headers.append('Set-Cookie', setCookieHeader);
- }
- }
-
- return response;
- }
-
- return new Response(null, {
- status: 404,
- statusText: 'Not found',
- });
- };
-
- return { default: { fetch } };
-}
diff --git a/packages/integrations/cloudflare/src/entrypoints/server.directory.ts b/packages/integrations/cloudflare/src/entrypoints/server.directory.ts
deleted file mode 100644
index 3542279b0..000000000
--- a/packages/integrations/cloudflare/src/entrypoints/server.directory.ts
+++ /dev/null
@@ -1,73 +0,0 @@
-import type { Request as CFRequest, EventContext } from '@cloudflare/workers-types';
-import type { SSRManifest } from 'astro';
-import { App } from 'astro/app';
-import { getProcessEnvProxy, isNode } from '../util.js';
-
-if (!isNode) {
- process.env = getProcessEnvProxy();
-}
-
-export interface DirectoryRuntime {
- runtime: {
- waitUntil: (promise: Promise) => void;
- env: EventContext['env'] & T;
- cf: CFRequest['cf'];
- caches: typeof caches;
- };
-}
-
-export function createExports(manifest: SSRManifest) {
- const app = new App(manifest);
-
- const onRequest = async (context: EventContext) => {
- const request = context.request as CFRequest & Request;
- const { env } = context;
-
- // TODO: remove this any cast in the future
- // REF: the type cast to any is needed because the Cloudflare Env Type is not assignable to type 'ProcessEnv'
- process.env = env as any;
-
- const { pathname } = new URL(request.url);
- // static assets fallback, in case default _routes.json is not used
- if (manifest.assets.has(pathname)) {
- return env.ASSETS.fetch(request);
- }
-
- let routeData = app.match(request, { matchNotFound: true });
- if (routeData) {
- Reflect.set(
- request,
- Symbol.for('astro.clientAddress'),
- request.headers.get('cf-connecting-ip')
- );
-
- const locals: DirectoryRuntime = {
- runtime: {
- waitUntil: (promise: Promise) => {
- context.waitUntil(promise);
- },
- env: context.env,
- cf: request.cf,
- caches: caches,
- },
- };
-
- let response = await app.render(request, routeData, locals);
-
- if (app.setCookieHeaders) {
- for (const setCookieHeader of app.setCookieHeaders(response)) {
- response.headers.append('Set-Cookie', setCookieHeader);
- }
- }
-
- return response;
- }
-
- return new Response(null, {
- status: 404,
- statusText: 'Not found',
- });
- };
-
- return { onRequest, manifest };
-}
diff --git a/packages/integrations/cloudflare/src/getAdapter.ts b/packages/integrations/cloudflare/src/getAdapter.ts
deleted file mode 100644
index 0cc1263a1..000000000
--- a/packages/integrations/cloudflare/src/getAdapter.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import type { AstroAdapter, AstroFeatureMap } from 'astro';
-
-export function getAdapter({
- isModeDirectory,
- functionPerRoute,
-}: {
- isModeDirectory: boolean;
- functionPerRoute: boolean;
-}): AstroAdapter {
- const astroFeatures = {
- hybridOutput: 'stable',
- staticOutput: 'unsupported',
- serverOutput: 'stable',
- assets: {
- supportKind: 'stable',
- isSharpCompatible: false,
- isSquooshCompatible: false,
- },
- } satisfies AstroFeatureMap;
-
- if (isModeDirectory) {
- return {
- name: '@astrojs/cloudflare',
- serverEntrypoint: '@astrojs/cloudflare/entrypoints/server.directory.js',
- exports: ['onRequest', 'manifest'],
- adapterFeatures: {
- functionPerRoute,
- edgeMiddleware: false,
- },
- supportedAstroFeatures: astroFeatures,
- };
- }
-
- return {
- name: '@astrojs/cloudflare',
- serverEntrypoint: '@astrojs/cloudflare/entrypoints/server.advanced.js',
- exports: ['default'],
- supportedAstroFeatures: astroFeatures,
- };
-}
diff --git a/packages/integrations/cloudflare/src/index.ts b/packages/integrations/cloudflare/src/index.ts
deleted file mode 100644
index 59cd92ce3..000000000
--- a/packages/integrations/cloudflare/src/index.ts
+++ /dev/null
@@ -1,611 +0,0 @@
-import type { AstroConfig, AstroIntegration, RouteData } from 'astro';
-
-import { createRedirectsFromAstroRoutes } from '@astrojs/underscore-redirects';
-import { AstroError } from 'astro/errors';
-import esbuild from 'esbuild';
-import { Miniflare } from 'miniflare';
-import * as fs from 'node:fs';
-import * as os from 'node:os';
-import { dirname, relative, sep } from 'node:path';
-import { fileURLToPath, pathToFileURL } from 'node:url';
-import glob from 'tiny-glob';
-import { getAdapter } from './getAdapter.js';
-import { deduplicatePatterns } from './utils/deduplicatePatterns.js';
-import { getCFObject } from './utils/getCFObject.js';
-import {
- getD1Bindings,
- getDOBindings,
- getEnvVars,
- getKVBindings,
- getR2Bindings,
-} from './utils/parser.js';
-import { prependForwardSlash } from './utils/prependForwardSlash.js';
-import { rewriteWasmImportPath } from './utils/rewriteWasmImportPath.js';
-import { wasmModuleLoader } from './utils/wasm-module-loader.js';
-
-export type { AdvancedRuntime } from './entrypoints/server.advanced.js';
-export type { DirectoryRuntime } from './entrypoints/server.directory.js';
-
-type Options = {
- mode?: 'directory' | 'advanced';
- functionPerRoute?: boolean;
- /** Configure automatic `routes.json` generation */
- routes?: {
- /** Strategy for generating `include` and `exclude` patterns
- * - `auto`: Will use the strategy that generates the least amount of entries.
- * - `include`: For each page or endpoint in your application that is not prerendered, an entry in the `include` array will be generated. For each page that is prerendered and whoose path is matched by an `include` entry, an entry in the `exclude` array will be generated.
- * - `exclude`: One `"/*"` entry in the `include` array will be generated. For each page that is prerendered, an entry in the `exclude` array will be generated.
- * */
- strategy?: 'auto' | 'include' | 'exclude';
- /** Additional `include` patterns */
- include?: string[];
- /** Additional `exclude` patterns */
- exclude?: string[];
- };
- /**
- * 'off': current behaviour (wrangler is needed)
- * 'local': use a static req.cf object, and env vars defined in wrangler.toml & .dev.vars (astro dev is enough)
- * 'remote': use a dynamic real-live req.cf object, and env vars defined in wrangler.toml & .dev.vars (astro dev is enough)
- */
- runtime?: 'off' | 'local' | 'remote';
- wasmModuleImports?: boolean;
-};
-
-interface BuildConfig {
- server: URL;
- client: URL;
- assets: string;
- serverEntry: string;
- split?: boolean;
-}
-
-export default function createIntegration(args?: Options): AstroIntegration {
- let _config: AstroConfig;
- let _buildConfig: BuildConfig;
- let _mf: Miniflare;
- let _entryPoints = new Map();
-
- const SERVER_BUILD_FOLDER = '/$server_build/';
-
- const isModeDirectory = args?.mode === 'directory';
- const functionPerRoute = args?.functionPerRoute ?? false;
- const runtimeMode = args?.runtime ?? 'off';
-
- return {
- name: '@astrojs/cloudflare',
- hooks: {
- 'astro:config:setup': ({ config, updateConfig }) => {
- updateConfig({
- build: {
- client: new URL(`.${config.base}`, config.outDir),
- server: new URL(`.${SERVER_BUILD_FOLDER}`, config.outDir),
- serverEntry: '_worker.mjs',
- redirects: false,
- },
- vite: {
- // load .wasm files as WebAssembly modules
- plugins: [
- wasmModuleLoader({
- disabled: !args?.wasmModuleImports,
- assetsDirectory: config.build.assets,
- }),
- ],
- },
- });
- },
- 'astro:config:done': ({ setAdapter, config }) => {
- setAdapter(getAdapter({ isModeDirectory, functionPerRoute }));
- _config = config;
- _buildConfig = config.build;
-
- if (_config.output === 'static') {
- throw new AstroError(
- '[@astrojs/cloudflare] `output: "server"` or `output: "hybrid"` is required to use this adapter. Otherwise, this adapter is not necessary to deploy a static site to Cloudflare.'
- );
- }
-
- if (_config.base === SERVER_BUILD_FOLDER) {
- throw new AstroError(
- '[@astrojs/cloudflare] `base: "${SERVER_BUILD_FOLDER}"` is not allowed. Please change your `base` config to something else.'
- );
- }
- },
- 'astro:server:setup': ({ server }) => {
- if (runtimeMode !== 'off') {
- server.middlewares.use(async function middleware(req, res, next) {
- try {
- const cf = await getCFObject(runtimeMode);
- const vars = await getEnvVars();
- const D1Bindings = await getD1Bindings();
- const R2Bindings = await getR2Bindings();
- const KVBindings = await getKVBindings();
- const DOBindings = await getDOBindings();
- let bindingsEnv = new Object({});
-
- // fix for the error "kj/filesystem-disk-unix.c++:1709: warning: PWD environment variable doesn't match current directory."
- // note: This mismatch might be primarily due to the test runner.
- const originalPWD = process.env.PWD;
- process.env.PWD = process.cwd();
-
- _mf = new Miniflare({
- modules: true,
- script: '',
- cache: true,
- cachePersist: true,
- cacheWarnUsage: true,
- d1Databases: D1Bindings,
- d1Persist: true,
- r2Buckets: R2Bindings,
- r2Persist: true,
- kvNamespaces: KVBindings,
- kvPersist: true,
- durableObjects: DOBindings,
- durableObjectsPersist: true,
- });
- await _mf.ready;
-
- for (const D1Binding of D1Bindings) {
- const db = await _mf.getD1Database(D1Binding);
- Reflect.set(bindingsEnv, D1Binding, db);
- }
- for (const R2Binding of R2Bindings) {
- const bucket = await _mf.getR2Bucket(R2Binding);
- Reflect.set(bindingsEnv, R2Binding, bucket);
- }
- for (const KVBinding of KVBindings) {
- const namespace = await _mf.getKVNamespace(KVBinding);
- Reflect.set(bindingsEnv, KVBinding, namespace);
- }
- for (const key in DOBindings) {
- if (Object.prototype.hasOwnProperty.call(DOBindings, key)) {
- const DO = await _mf.getDurableObjectNamespace(key);
- Reflect.set(bindingsEnv, key, DO);
- }
- }
- const mfCache = await _mf.getCaches();
-
- process.env.PWD = originalPWD;
- const clientLocalsSymbol = Symbol.for('astro.locals');
- Reflect.set(req, clientLocalsSymbol, {
- runtime: {
- env: {
- // default binding for static assets will be dynamic once we support mocking of bindings
- ASSETS: {},
- // this is just a VAR for CF to change build behavior, on dev it should be 0
- CF_PAGES: '0',
- // will be fetched from git dynamically once we support mocking of bindings
- CF_PAGES_BRANCH: 'TBA',
- // will be fetched from git dynamically once we support mocking of bindings
- CF_PAGES_COMMIT_SHA: 'TBA',
- CF_PAGES_URL: `http://${req.headers.host}`,
- ...bindingsEnv,
- ...vars,
- },
- cf: cf,
- waitUntil: (_promise: Promise) => {
- return;
- },
- caches: mfCache,
- },
- });
- next();
- } catch {
- next();
- }
- });
- }
- },
- 'astro:server:done': async ({ logger }) => {
- if (_mf) {
- logger.info('Cleaning up the Miniflare instance, and shutting down the workerd server.');
- await _mf.dispose();
- }
- },
- 'astro:build:setup': ({ vite, target }) => {
- if (target === 'server') {
- vite.resolve ||= {};
- vite.resolve.alias ||= {};
-
- const aliases = [{ find: 'react-dom/server', replacement: 'react-dom/server.browser' }];
-
- if (Array.isArray(vite.resolve.alias)) {
- vite.resolve.alias = [...vite.resolve.alias, ...aliases];
- } else {
- for (const alias of aliases) {
- (vite.resolve.alias as Record)[alias.find] = alias.replacement;
- }
- }
- vite.ssr ||= {};
- vite.ssr.target = 'webworker';
-
- // Cloudflare env is only available per request. This isn't feasible for code that access env vars
- // in a global way, so we shim their access as `process.env.*`. We will populate `process.env` later
- // in its fetch handler.
- vite.define = {
- 'process.env': 'process.env',
- ...vite.define,
- };
- }
- },
- 'astro:build:ssr': ({ entryPoints }) => {
- _entryPoints = entryPoints;
- },
- 'astro:build:done': async ({ pages, routes, dir }) => {
- const functionsUrl = new URL('functions/', _config.root);
- const assetsUrl = new URL(_buildConfig.assets, _buildConfig.client);
-
- if (isModeDirectory) {
- await fs.promises.mkdir(functionsUrl, { recursive: true });
- }
-
- // TODO: remove _buildConfig.split in Astro 4.0
- if (isModeDirectory && (_buildConfig.split || functionPerRoute)) {
- const entryPointsURL = [..._entryPoints.values()];
- const entryPaths = entryPointsURL.map((entry) => fileURLToPath(entry));
- const outputUrl = new URL('$astro', _buildConfig.server);
- const outputDir = fileURLToPath(outputUrl);
- //
- // Sadly, when wasmModuleImports is enabled, this needs to build esbuild for each depth of routes/entrypoints
- // independently so that relative import paths to the assets are the correct depth of '../' traversals
- // This is inefficient, so wasmModuleImports is opt-in. This could potentially be improved in the future by
- // taking advantage of the esbuild "onEnd" hook to rewrite import code per entry point relative to where the final
- // destination of the entrypoint is
- const entryPathsGroupedByDepth = !args.wasmModuleImports
- ? [entryPaths]
- : entryPaths
- .reduce((sum, thisPath) => {
- const depthFromRoot = thisPath.split(sep).length;
- sum.set(depthFromRoot, (sum.get(depthFromRoot) || []).concat(thisPath));
- return sum;
- }, new Map())
- .values();
-
- for (const pathsGroup of entryPathsGroupedByDepth) {
- // for some reason this exports to "entry.pages" on windows instead of "pages" on unix environments.
- // This deduces the name of the "pages" build directory
- const pagesDirname = relative(fileURLToPath(_buildConfig.server), pathsGroup[0]).split(
- sep
- )[0];
- const absolutePagesDirname = fileURLToPath(new URL(pagesDirname, _buildConfig.server));
- const urlWithinFunctions = new URL(
- relative(absolutePagesDirname, pathsGroup[0]),
- functionsUrl
- );
- const relativePathToAssets = relative(
- dirname(fileURLToPath(urlWithinFunctions)),
- fileURLToPath(assetsUrl)
- );
- await esbuild.build({
- target: 'es2022',
- platform: 'browser',
- conditions: ['workerd', 'worker', 'browser'],
- external: [
- 'node:assert',
- 'node:async_hooks',
- 'node:buffer',
- 'node:diagnostics_channel',
- 'node:events',
- 'node:path',
- 'node:process',
- 'node:stream',
- 'node:string_decoder',
- 'node:util',
- ],
- entryPoints: pathsGroup,
- outbase: absolutePagesDirname,
- outdir: outputDir,
- allowOverwrite: true,
- format: 'esm',
- bundle: true,
- minify: _config.vite?.build?.minify !== false,
- banner: {
- js: `globalThis.process = {
- argv: [],
- env: {},
- };`,
- },
- logOverride: {
- 'ignored-bare-import': 'silent',
- },
- plugins: !args?.wasmModuleImports
- ? []
- : [rewriteWasmImportPath({ relativePathToAssets })],
- });
- }
-
- const outputFiles: Array = await glob(`**/*`, {
- cwd: outputDir,
- filesOnly: true,
- });
-
- // move the files into the functions folder
- // & make sure the file names match Cloudflare syntax for routing
- for (const outputFile of outputFiles) {
- const path = outputFile.split(sep);
-
- const finalSegments = path.map((segment) =>
- segment
- .replace(/(\_)(\w+)(\_)/g, (_, __, prop) => {
- return `[${prop}]`;
- })
- .replace(/(\_\-\-\-)(\w+)(\_)/g, (_, __, prop) => {
- return `[[${prop}]]`;
- })
- );
-
- finalSegments[finalSegments.length - 1] = finalSegments[finalSegments.length - 1]
- .replace('entry.', '')
- .replace(/(.*)\.(\w+)\.(\w+)$/g, (_, fileName, __, newExt) => {
- return `${fileName}.${newExt}`;
- });
-
- const finalDirPath = finalSegments.slice(0, -1).join(sep);
- const finalPath = finalSegments.join(sep);
-
- const newDirUrl = new URL(finalDirPath, functionsUrl);
- await fs.promises.mkdir(newDirUrl, { recursive: true });
-
- const oldFileUrl = new URL(`$astro/${outputFile}`, outputUrl);
- const newFileUrl = new URL(finalPath, functionsUrl);
- await fs.promises.rename(oldFileUrl, newFileUrl);
- }
- } else {
- const entryPath = fileURLToPath(new URL(_buildConfig.serverEntry, _buildConfig.server));
- const entryUrl = new URL(_buildConfig.serverEntry, _config.outDir);
- const buildPath = fileURLToPath(entryUrl);
- // A URL for the final build path after renaming
- const finalBuildUrl = pathToFileURL(buildPath.replace(/\.mjs$/, '.js'));
-
- await esbuild.build({
- target: 'es2022',
- platform: 'browser',
- conditions: ['workerd', 'worker', 'browser'],
- external: [
- 'node:assert',
- 'node:async_hooks',
- 'node:buffer',
- 'node:diagnostics_channel',
- 'node:events',
- 'node:path',
- 'node:process',
- 'node:stream',
- 'node:string_decoder',
- 'node:util',
- ],
- entryPoints: [entryPath],
- outfile: buildPath,
- allowOverwrite: true,
- format: 'esm',
- bundle: true,
- minify: _config.vite?.build?.minify !== false,
- banner: {
- js: `globalThis.process = {
- argv: [],
- env: {},
- };`,
- },
- logOverride: {
- 'ignored-bare-import': 'silent',
- },
- plugins: !args?.wasmModuleImports
- ? []
- : [
- rewriteWasmImportPath({
- relativePathToAssets: isModeDirectory
- ? relative(fileURLToPath(functionsUrl), fileURLToPath(assetsUrl))
- : relative(fileURLToPath(_buildConfig.client), fileURLToPath(assetsUrl)),
- }),
- ],
- });
-
- // Rename to worker.js
- await fs.promises.rename(buildPath, finalBuildUrl);
-
- if (isModeDirectory) {
- const directoryUrl = new URL('[[path]].js', functionsUrl);
- await fs.promises.rename(finalBuildUrl, directoryUrl);
- }
- }
-
- // throw the server folder in the bin
- const serverUrl = new URL(_buildConfig.server);
- await fs.promises.rm(serverUrl, { recursive: true, force: true });
-
- // move cloudflare specific files to the root
- const cloudflareSpecialFiles = ['_headers', '_redirects', '_routes.json'];
-
- if (_config.base !== '/') {
- for (const file of cloudflareSpecialFiles) {
- try {
- await fs.promises.rename(
- new URL(file, _buildConfig.client),
- new URL(file, _config.outDir)
- );
- } catch (e) {
- // ignore
- }
- }
- }
-
- // Add also the worker file so it's excluded from the _routes.json generation
- if (!isModeDirectory) {
- cloudflareSpecialFiles.push('_worker.js');
- }
-
- const routesExists = await fs.promises
- .stat(new URL('./_routes.json', _config.outDir))
- .then((stat) => stat.isFile())
- .catch(() => false);
-
- // this creates a _routes.json, in case there is none present to enable
- // cloudflare to handle static files and support _redirects configuration
- if (!routesExists) {
- /**
- * These route types are candiates for being part of the `_routes.json` `include` array.
- */
- const potentialFunctionRouteTypes = ['endpoint', 'page'];
-
- const functionEndpoints = routes
- // Certain route types, when their prerender option is set to false, run on the server as function invocations
- .filter((route) => potentialFunctionRouteTypes.includes(route.type) && !route.prerender)
- .map((route) => {
- const includePattern =
- '/' +
- route.segments
- .flat()
- .map((segment) => (segment.dynamic ? '*' : segment.content))
- .join('/');
-
- const regexp = new RegExp(
- '^\\/' +
- route.segments
- .flat()
- .map((segment) => (segment.dynamic ? '(.*)' : segment.content))
- .join('\\/') +
- '$'
- );
-
- return {
- includePattern,
- regexp,
- };
- });
-
- const staticPathList: Array = (
- await glob(`${fileURLToPath(_buildConfig.client)}/**/*`, {
- cwd: fileURLToPath(_config.outDir),
- filesOnly: true,
- dot: true,
- })
- )
- .filter((file: string) => cloudflareSpecialFiles.indexOf(file) < 0)
- .map((file: string) => `/${file.replace(/\\/g, '/')}`);
-
- for (let page of pages) {
- let pagePath = prependForwardSlash(page.pathname);
- if (_config.base !== '/') {
- const base = _config.base.endsWith('/') ? _config.base.slice(0, -1) : _config.base;
- pagePath = `${base}${pagePath}`;
- }
- staticPathList.push(pagePath);
- }
-
- const redirectsExists = await fs.promises
- .stat(new URL('./_redirects', _config.outDir))
- .then((stat) => stat.isFile())
- .catch(() => false);
-
- // convert all redirect source paths into a list of routes
- // and add them to the static path
- if (redirectsExists) {
- const redirects = (
- await fs.promises.readFile(new URL('./_redirects', _config.outDir), 'utf-8')
- )
- .split(os.EOL)
- .map((line) => {
- const parts = line.split(' ');
- if (parts.length < 2) {
- return null;
- } else {
- // convert /products/:id to /products/*
- return (
- parts[0]
- .replace(/\/:.*?(?=\/|$)/g, '/*')
- // remove query params as they are not supported by cloudflare
- .replace(/\?.*$/, '')
- );
- }
- })
- .filter(
- (line, index, arr) => line !== null && arr.indexOf(line) === index
- ) as string[];
-
- if (redirects.length > 0) {
- staticPathList.push(...redirects);
- }
- }
-
- const redirectRoutes: [RouteData, string][] = routes
- .filter((r) => r.type === 'redirect')
- .map((r) => {
- return [r, ''];
- });
- const trueRedirects = createRedirectsFromAstroRoutes({
- config: _config,
- routeToDynamicTargetMap: new Map(Array.from(redirectRoutes)),
- dir,
- });
- if (!trueRedirects.empty()) {
- await fs.promises.appendFile(
- new URL('./_redirects', _config.outDir),
- trueRedirects.print()
- );
- }
-
- staticPathList.push(...routes.filter((r) => r.type === 'redirect').map((r) => r.route));
-
- const strategy = args?.routes?.strategy ?? 'auto';
-
- // Strategy `include`: include all function endpoints, and then exclude static paths that would be matched by an include pattern
- const includeStrategy =
- strategy === 'exclude'
- ? undefined
- : {
- include: deduplicatePatterns(
- functionEndpoints
- .map((endpoint) => endpoint.includePattern)
- .concat(args?.routes?.include ?? [])
- ),
- exclude: deduplicatePatterns(
- staticPathList
- .filter((file: string) =>
- functionEndpoints.some((endpoint) => endpoint.regexp.test(file))
- )
- .concat(args?.routes?.exclude ?? [])
- ),
- };
-
- // Cloudflare requires at least one include pattern:
- // https://developers.cloudflare.com/pages/platform/functions/routing/#limits
- // So we add a pattern that we immediately exclude again
- if (includeStrategy?.include.length === 0) {
- includeStrategy.include = ['/'];
- includeStrategy.exclude = ['/'];
- }
-
- // Strategy `exclude`: include everything, and then exclude all static paths
- const excludeStrategy =
- strategy === 'include'
- ? undefined
- : {
- include: ['/*'],
- exclude: deduplicatePatterns(staticPathList.concat(args?.routes?.exclude ?? [])),
- };
-
- const includeStrategyLength = includeStrategy
- ? includeStrategy.include.length + includeStrategy.exclude.length
- : Infinity;
-
- const excludeStrategyLength = excludeStrategy
- ? excludeStrategy.include.length + excludeStrategy.exclude.length
- : Infinity;
-
- const winningStrategy =
- includeStrategyLength <= excludeStrategyLength ? includeStrategy : excludeStrategy;
-
- await fs.promises.writeFile(
- new URL('./_routes.json', _config.outDir),
- JSON.stringify(
- {
- version: 1,
- ...winningStrategy,
- },
- null,
- 2
- )
- );
- }
- },
- },
- };
-}
diff --git a/packages/integrations/cloudflare/src/util.ts b/packages/integrations/cloudflare/src/util.ts
deleted file mode 100644
index 120cb7334..000000000
--- a/packages/integrations/cloudflare/src/util.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-export const isNode =
- typeof process === 'object' && Object.prototype.toString.call(process) === '[object process]';
-
-export function getProcessEnvProxy() {
- return new Proxy(
- {},
- {
- get: (target, prop) => {
- console.warn(
- // NOTE: \0 prevents Vite replacement
- `Unable to access \`import.meta\0.env.${prop.toString()}\` on initialization ` +
- `as the Cloudflare platform only provides the environment variables per request. ` +
- `Please move the environment variable access inside a function ` +
- `that's only called after a request has been received.`
- );
- },
- }
- );
-}
diff --git a/packages/integrations/cloudflare/src/utils/deduplicatePatterns.ts b/packages/integrations/cloudflare/src/utils/deduplicatePatterns.ts
deleted file mode 100644
index 37743fe55..000000000
--- a/packages/integrations/cloudflare/src/utils/deduplicatePatterns.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Remove duplicates and redundant patterns from an `include` or `exclude` list.
- * Otherwise Cloudflare will throw an error on deployment. Plus, it saves more entries.
- * E.g. `['/foo/*', '/foo/*', '/foo/bar'] => ['/foo/*']`
- * @param patterns a list of `include` or `exclude` patterns
- * @returns a deduplicated list of patterns
- */
-export function deduplicatePatterns(patterns: string[]) {
- const openPatterns: RegExp[] = [];
-
- // A value in the set may only occur once; it is unique in the set's collection.
- // ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
- return [...new Set(patterns)]
- .sort((a, b) => a.length - b.length)
- .filter((pattern) => {
- if (openPatterns.some((p) => p.test(pattern))) {
- return false;
- }
-
- if (pattern.endsWith('*')) {
- openPatterns.push(new RegExp(`^${pattern.replace(/(\*\/)*\*$/g, '.*')}`));
- }
-
- return true;
- });
-}
diff --git a/packages/integrations/cloudflare/src/utils/getCFObject.ts b/packages/integrations/cloudflare/src/utils/getCFObject.ts
deleted file mode 100644
index 7a4cd8a0c..000000000
--- a/packages/integrations/cloudflare/src/utils/getCFObject.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import type { IncomingRequestCfProperties } from '@cloudflare/workers-types/experimental';
-
-export async function getCFObject(
- runtimeMode: string
-): Promise {
- const CF_ENDPOINT = 'https://workers.cloudflare.com/cf.json';
- const CF_FALLBACK: IncomingRequestCfProperties = {
- asOrganization: '',
- asn: 395747,
- colo: 'DFW',
- city: 'Austin',
- region: 'Texas',
- regionCode: 'TX',
- metroCode: '635',
- postalCode: '78701',
- country: 'US',
- continent: 'NA',
- timezone: 'America/Chicago',
- latitude: '30.27130',
- longitude: '-97.74260',
- clientTcpRtt: 0,
- httpProtocol: 'HTTP/1.1',
- requestPriority: 'weight=192;exclusive=0',
- tlsCipher: 'AEAD-AES128-GCM-SHA256',
- tlsVersion: 'TLSv1.3',
- tlsClientAuth: {
- certPresented: '0',
- certVerified: 'NONE',
- certRevoked: '0',
- certIssuerDN: '',
- certSubjectDN: '',
- certIssuerDNRFC2253: '',
- certSubjectDNRFC2253: '',
- certIssuerDNLegacy: '',
- certSubjectDNLegacy: '',
- certSerial: '',
- certIssuerSerial: '',
- certSKI: '',
- certIssuerSKI: '',
- certFingerprintSHA1: '',
- certFingerprintSHA256: '',
- certNotBefore: '',
- certNotAfter: '',
- },
- edgeRequestKeepAliveStatus: 0,
- hostMetadata: undefined,
- clientTrustScore: 99,
- botManagement: {
- corporateProxy: false,
- verifiedBot: false,
- ja3Hash: '25b4882c2bcb50cd6b469ff28c596742',
- staticResource: false,
- detectionIds: [],
- score: 99,
- },
- };
-
- if (runtimeMode === 'local') {
- return CF_FALLBACK;
- } else if (runtimeMode === 'remote') {
- try {
- const res = await fetch(CF_ENDPOINT);
- const cfText = await res.text();
- const storedCf = JSON.parse(cfText);
- return storedCf;
- } catch (e: any) {
- return CF_FALLBACK;
- }
- }
-}
diff --git a/packages/integrations/cloudflare/src/utils/parser.ts b/packages/integrations/cloudflare/src/utils/parser.ts
deleted file mode 100644
index 4045a0e72..000000000
--- a/packages/integrations/cloudflare/src/utils/parser.ts
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * This file is a derivative work of wrangler by Cloudflare
- * An upstream request for exposing this API was made here:
- * https://github.com/cloudflare/workers-sdk/issues/3897
- *
- * Until further notice, we will be using this file as a workaround
- * TODO: Tackle this file, once their is an decision on the upstream request
- */
-
-import type {} from '@cloudflare/workers-types/experimental';
-import TOML from '@iarna/toml';
-import dotenv from 'dotenv';
-import { findUpSync } from 'find-up';
-import * as fs from 'node:fs';
-import { dirname, resolve } from 'node:path';
-let _wrangler: any;
-
-function findWranglerToml(
- referencePath: string = process.cwd(),
- preferJson = false
-): string | undefined {
- if (preferJson) {
- return (
- findUpSync(`wrangler.json`, { cwd: referencePath }) ??
- findUpSync(`wrangler.toml`, { cwd: referencePath })
- );
- }
- return findUpSync(`wrangler.toml`, { cwd: referencePath });
-}
-type File = {
- file?: string;
- fileText?: string;
-};
-type Location = File & {
- line: number;
- column: number;
- length?: number;
- lineText?: string;
- suggestion?: string;
-};
-type Message = {
- text: string;
- location?: Location;
- notes?: Message[];
- kind?: 'warning' | 'error';
-};
-class ParseError extends Error implements Message {
- readonly text: string;
- readonly notes: Message[];
- readonly location?: Location;
- readonly kind: 'warning' | 'error';
-
- constructor({ text, notes, location, kind }: Message) {
- super(text);
- this.name = this.constructor.name;
- this.text = text;
- this.notes = notes ?? [];
- this.location = location;
- this.kind = kind ?? 'error';
- }
-}
-const TOML_ERROR_NAME = 'TomlError';
-const TOML_ERROR_SUFFIX = ' at row ';
-type TomlError = Error & {
- line: number;
- col: number;
-};
-function parseTOML(input: string, file?: string): TOML.JsonMap | never {
- try {
- // Normalize CRLF to LF to avoid hitting https://github.com/iarna/iarna-toml/issues/33.
- const normalizedInput = input.replace(/\r\n/g, '\n');
- return TOML.parse(normalizedInput);
- } catch (err) {
- const { name, message, line, col } = err as TomlError;
- if (name !== TOML_ERROR_NAME) {
- throw err;
- }
- const text = message.substring(0, message.lastIndexOf(TOML_ERROR_SUFFIX));
- const lineText = input.split('\n')[line];
- const location = {
- lineText,
- line: line + 1,
- column: col - 1,
- file,
- fileText: input,
- };
- throw new ParseError({ text, location });
- }
-}
-
-export interface DotEnv {
- path: string;
- parsed: dotenv.DotenvParseOutput;
-}
-function tryLoadDotEnv(path: string): DotEnv | undefined {
- try {
- const parsed = dotenv.parse(fs.readFileSync(path));
- return { path, parsed };
- } catch (e) {
- // logger.debug(`Failed to load .env file "${path}":`, e);
- }
-}
-/**
- * Loads a dotenv file from , preferring to read . if
- * is defined and that file exists.
- */
-
-export function loadDotEnv(path: string): DotEnv | undefined {
- return tryLoadDotEnv(path);
-}
-function getVarsForDev(config: any, configPath: string | undefined): any {
- const configDir = resolve(dirname(configPath ?? '.'));
- const devVarsPath = resolve(configDir, '.dev.vars');
- const loaded = loadDotEnv(devVarsPath);
- if (loaded !== undefined) {
- return {
- ...config.vars,
- ...loaded.parsed,
- };
- } else {
- return config.vars;
- }
-}
-
-function parseConfig() {
- if (_wrangler) return _wrangler;
- let rawConfig;
- const configPath = findWranglerToml(process.cwd(), false); // false = args.experimentalJsonConfig
- if (!configPath) {
- throw new Error('Could not find wrangler.toml');
- }
- // Load the configuration from disk if available
- if (configPath?.endsWith('toml')) {
- rawConfig = parseTOML(fs.readFileSync(configPath).toString(), configPath);
- }
- _wrangler = { rawConfig, configPath };
- return { rawConfig, configPath };
-}
-
-export async function getEnvVars() {
- const { rawConfig, configPath } = parseConfig();
- const vars = getVarsForDev(rawConfig, configPath);
- return vars;
-}
-
-export async function getD1Bindings() {
- const { rawConfig } = parseConfig();
- if (!rawConfig) return [];
- if (!rawConfig?.d1_databases) return [];
- const bindings = (rawConfig?.d1_databases as []).map(
- (binding: { binding: string }) => binding.binding
- );
- return bindings;
-}
-
-export async function getR2Bindings() {
- const { rawConfig } = parseConfig();
- if (!rawConfig) return [];
- if (!rawConfig?.r2_buckets) return [];
- const bindings = (rawConfig?.r2_buckets as []).map(
- (binding: { binding: string }) => binding.binding
- );
- return bindings;
-}
-
-export async function getKVBindings() {
- const { rawConfig } = parseConfig();
- if (!rawConfig) return [];
- if (!rawConfig?.kv_namespaces) return [];
- const bindings = (rawConfig?.kv_namespaces as []).map(
- (binding: { binding: string }) => binding.binding
- );
- return bindings;
-}
-
-export function getDOBindings(): Record<
- string,
- { scriptName?: string | undefined; unsafeUniqueKey?: string | undefined; className: string }
-> {
- const { rawConfig } = parseConfig();
- if (!rawConfig) return {};
- if (!rawConfig?.durable_objects) return {};
- const output = new Object({}) as Record<
- string,
- { scriptName?: string | undefined; unsafeUniqueKey?: string | undefined; className: string }
- >;
- for (const binding of rawConfig?.durable_objects.bindings) {
- Reflect.set(output, binding.name, { className: binding.class_name });
- }
- return output;
-}
diff --git a/packages/integrations/cloudflare/src/utils/prependForwardSlash.ts b/packages/integrations/cloudflare/src/utils/prependForwardSlash.ts
deleted file mode 100644
index b66b588f3..000000000
--- a/packages/integrations/cloudflare/src/utils/prependForwardSlash.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function prependForwardSlash(path: string) {
- return path[0] === '/' ? path : '/' + path;
-}
diff --git a/packages/integrations/cloudflare/src/utils/rewriteWasmImportPath.ts b/packages/integrations/cloudflare/src/utils/rewriteWasmImportPath.ts
deleted file mode 100644
index ada19bb56..000000000
--- a/packages/integrations/cloudflare/src/utils/rewriteWasmImportPath.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import esbuild from 'esbuild';
-import { basename } from 'node:path';
-
-/**
- *
- * @param relativePathToAssets - relative path from the final location for the current esbuild output bundle, to the assets directory.
- */
-export function rewriteWasmImportPath({
- relativePathToAssets,
-}: {
- relativePathToAssets: string;
-}): esbuild.Plugin {
- return {
- name: 'wasm-loader',
- setup(build) {
- build.onResolve({ filter: /.*\.wasm.mjs$/ }, (args) => {
- const updatedPath = [
- relativePathToAssets.replaceAll('\\', '/'),
- basename(args.path).replace(/\.mjs$/, ''),
- ].join('/');
-
- return {
- path: updatedPath,
- external: true, // mark it as external in the bundle
- };
- });
- },
- };
-}
diff --git a/packages/integrations/cloudflare/src/utils/wasm-module-loader.ts b/packages/integrations/cloudflare/src/utils/wasm-module-loader.ts
deleted file mode 100644
index 7d34d48c3..000000000
--- a/packages/integrations/cloudflare/src/utils/wasm-module-loader.ts
+++ /dev/null
@@ -1,119 +0,0 @@
-import * as fs from 'node:fs';
-import * as path from 'node:path';
-import { type Plugin } from 'vite';
-
-/**
- * Loads '*.wasm?module' imports as WebAssembly modules, which is the only way to load WASM in cloudflare workers.
- * Current proposal for WASM modules: https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration
- * Cloudflare worker WASM from javascript support: https://developers.cloudflare.com/workers/runtime-apis/webassembly/javascript/
- * @param disabled - if true throws a helpful error message if wasm is encountered and wasm imports are not enabled,
- * otherwise it will error obscurely in the esbuild and vite builds
- * @param assetsDirectory - the folder name for the assets directory in the build directory. Usually '_astro'
- * @returns Vite plugin to load WASM tagged with '?module' as a WASM modules
- */
-export function wasmModuleLoader({
- disabled,
- assetsDirectory,
-}: {
- disabled: boolean;
- assetsDirectory: string;
-}): Plugin {
- const postfix = '.wasm?module';
- let isDev = false;
-
- return {
- name: 'vite:wasm-module-loader',
- enforce: 'pre',
- configResolved(config) {
- isDev = config.command === 'serve';
- },
- config(_, __) {
- // let vite know that file format and the magic import string is intentional, and will be handled in this plugin
- return {
- assetsInclude: ['**/*.wasm?module'],
- build: { rollupOptions: { external: /^__WASM_ASSET__.+\.wasm\.mjs$/i } },
- };
- },
-
- load(id, _) {
- if (!id.endsWith(postfix)) {
- return;
- }
- if (disabled) {
- throw new Error(
- `WASM module's cannot be loaded unless you add \`wasmModuleImports: true\` to your astro config.`
- );
- }
-
- const filePath = id.slice(0, -1 * '?module'.length);
-
- const data = fs.readFileSync(filePath);
- const base64 = data.toString('base64');
-
- const base64Module = `
-const wasmModule = new WebAssembly.Module(Uint8Array.from(atob("${base64}"), c => c.charCodeAt(0)));
-export default wasmModule
-`;
- if (isDev) {
- // no need to wire up the assets in dev mode, just rewrite
- return base64Module;
- } else {
- // just some shared ID
- let hash = hashString(base64);
- // emit the wasm binary as an asset file, to be picked up later by the esbuild bundle for the worker.
- // give it a shared deterministic name to make things easy for esbuild to switch on later
- const assetName = path.basename(filePath).split('.')[0] + '.' + hash + '.wasm';
- this.emitFile({
- type: 'asset',
- // put it explicitly in the _astro assets directory with `fileName` rather than `name` so that
- // vite doesn't give it a random id in its name. We need to be able to easily rewrite from
- // the .mjs loader and the actual wasm asset later in the ESbuild for the worker
- fileName: path.join(assetsDirectory, assetName),
- source: fs.readFileSync(filePath),
- });
-
- // however, by default, the SSG generator cannot import the .wasm as a module, so embed as a base64 string
- const chunkId = this.emitFile({
- type: 'prebuilt-chunk',
- fileName: assetName + '.mjs',
- code: base64Module,
- });
-
- return `
-import wasmModule from "__WASM_ASSET__${chunkId}.wasm.mjs";
-export default wasmModule;
- `;
- }
- },
-
- // output original wasm file relative to the chunk
- renderChunk(code, chunk, _) {
- if (isDev) return;
-
- if (!/__WASM_ASSET__/g.test(code)) return;
-
- const final = code.replaceAll(/__WASM_ASSET__([a-z\d]+).wasm.mjs/g, (s, assetId) => {
- const fileName = this.getFileName(assetId);
- const relativePath = path
- .relative(path.dirname(chunk.fileName), fileName)
- .replaceAll('\\', '/'); // fix windows paths for import
- return `./${relativePath}`;
- });
-
- return { code: final };
- },
- };
-}
-
-/**
- * Returns a deterministic 32 bit hash code from a string
- */
-function hashString(str: string): string {
- let hash = 0;
- for (let i = 0; i < str.length; i++) {
- const char = str.charCodeAt(i);
- hash = (hash << 5) - hash + char;
- hash &= hash; // Convert to 32bit integer
- }
- return new Uint32Array([hash])[0].toString(36);
-}
diff --git a/packages/integrations/cloudflare/test/basics.test.js b/packages/integrations/cloudflare/test/basics.test.js
deleted file mode 100644
index eb4509da1..000000000
--- a/packages/integrations/cloudflare/test/basics.test.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-import * as cheerio from 'cheerio';
-
-describe('Basic app', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- /** @type {import('./test-utils').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/basics/',
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/basics/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('can render', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/`);
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('h1').text()).to.equal('Testing');
- expect($('#env').text()).to.equal('secret');
- });
-});
diff --git a/packages/integrations/cloudflare/test/cf.test.js b/packages/integrations/cloudflare/test/cf.test.js
deleted file mode 100644
index 0078f3024..000000000
--- a/packages/integrations/cloudflare/test/cf.test.js
+++ /dev/null
@@ -1,127 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-import * as cheerio from 'cheerio';
-import cloudflare from '../dist/index.js';
-
-describe('Wrangler Cloudflare Runtime', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- /** @type {import('./test-utils').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/cf/',
- output: 'server',
- adapter: cloudflare(),
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/cf/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('Load cf and caches API', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/`);
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
-
- expect($('#hasRuntime').text()).to.equal('true');
- expect($('#hasCache').text()).to.equal('true');
- });
-});
-
-describe('Astro Cloudflare Runtime', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- let devServer;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/cf/',
- output: 'server',
- adapter: cloudflare({
- runtime: 'local',
- }),
- });
- process.chdir('./test/fixtures/cf');
- devServer = await fixture.startDevServer();
- });
-
- after(async () => {
- await devServer?.stop();
- });
-
- it('adds cf object', async () => {
- let res = await fixture.fetch('/');
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#hasCF').text()).to.equal('true');
- });
-
- it('adds cache mocking', async () => {
- let res = await fixture.fetch('/caches');
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#hasCACHE').text()).to.equal('true');
- });
-
- it('adds D1 mocking', async () => {
- expect(await fixture.pathExists('../.mf/d1')).to.be.true;
-
- let res = await fixture.fetch('/d1');
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#hasDB').text()).to.equal('true');
- expect($('#hasPRODDB').text()).to.equal('true');
- expect($('#hasACCESS').text()).to.equal('true');
- });
-
- it('adds R2 mocking', async () => {
- expect(await fixture.pathExists('../.mf/r2')).to.be.true;
-
- let res = await fixture.fetch('/r2');
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#hasBUCKET').text()).to.equal('true');
- expect($('#hasPRODBUCKET').text()).to.equal('true');
- expect($('#hasACCESS').text()).to.equal('true');
- });
-
- it('adds KV mocking', async () => {
- expect(await fixture.pathExists('../.mf/kv')).to.be.true;
-
- let res = await fixture.fetch('/kv');
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#hasKV').text()).to.equal('true');
- expect($('#hasPRODKV').text()).to.equal('true');
- expect($('#hasACCESS').text()).to.equal('true');
- });
-
- it('adds DO mocking', async () => {
- expect(await fixture.pathExists('../.mf/do')).to.be.true;
-
- let res = await fixture.fetch('/do');
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#hasDO').text()).to.equal('true');
- });
-});
diff --git a/packages/integrations/cloudflare/test/directory.test.js b/packages/integrations/cloudflare/test/directory.test.js
deleted file mode 100644
index 8390699e3..000000000
--- a/packages/integrations/cloudflare/test/directory.test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import { loadFixture } from './test-utils.js';
-import { expect } from 'chai';
-import cloudflare from '../dist/index.js';
-
-/** @type {import('./test-utils').Fixture} */
-describe('mode: "directory"', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/basics/',
- output: 'server',
- adapter: cloudflare({ mode: 'directory' }),
- redirects: {
- '/old': '/',
- },
- });
- await fixture.build();
- });
-
- it('generates functions folder inside the project root', async () => {
- expect(await fixture.pathExists('../functions')).to.be.true;
- expect(await fixture.pathExists('../functions/[[path]].js')).to.be.true;
- });
-
- it('generates a redirects file', async () => {
- try {
- let _redirects = await fixture.readFile('/_redirects');
- let parts = _redirects.split(/\s+/);
- expect(parts).to.deep.equal(['/old', '/', '301']);
- } catch {
- expect(false).to.equal(true);
- }
- });
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/basics/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/basics/astro.config.mjs
deleted file mode 100644
index 407dc4355..000000000
--- a/packages/integrations/cloudflare/test/fixtures/basics/astro.config.mjs
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-// test env var
-process.env.SECRET_STUFF = 'secret'
-
-export default defineConfig({
- adapter: cloudflare(),
- output: 'server'
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/basics/package.json b/packages/integrations/cloudflare/test/fixtures/basics/package.json
deleted file mode 100644
index c7cc97455..000000000
--- a/packages/integrations/cloudflare/test/fixtures/basics/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-basics",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/basics/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/basics/src/pages/index.astro
deleted file mode 100644
index 8d372399c..000000000
--- a/packages/integrations/cloudflare/test/fixtures/basics/src/pages/index.astro
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- Testing
-
-
- Testing
- {import.meta.env.SECRET_STUFF}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/.dev.vars b/packages/integrations/cloudflare/test/fixtures/cf/.dev.vars
deleted file mode 100644
index 9296c384b..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/.dev.vars
+++ /dev/null
@@ -1 +0,0 @@
-DATABASE_URL="postgresql://lorem"
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/package.json b/packages/integrations/cloudflare/test/fixtures/cf/package.json
deleted file mode 100644
index cf8ae0082..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-cf",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro
deleted file mode 100644
index 743111721..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/caches.astro
+++ /dev/null
@@ -1,15 +0,0 @@
----
-const runtime = Astro.locals.runtime;
----
-
-
-
-
-
-
- CACHES
-
-
- {!!runtime.caches}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro
deleted file mode 100644
index a28940e9f..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/d1.astro
+++ /dev/null
@@ -1,21 +0,0 @@
----
-const runtime = Astro.locals.runtime;
-const db = runtime.env?.D1;
-await db.exec("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)");
-await db.exec("INSERT INTO test (name) VALUES ('true')");
-const result = await db.prepare("SELECT * FROM test").all();
----
-
-
-
-
-
-
- D1
-
-
- {!!runtime.env?.D1}
- {!!runtime.env?.D1_PROD}
- {!!result.results[0].name}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro
deleted file mode 100644
index e338c8e8f..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/do.astro
+++ /dev/null
@@ -1,15 +0,0 @@
----
-const runtime = Astro.locals.runtime;
----
-
-
-
-
-
-
- DO
-
-
- {!!runtime.env.DO}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro
deleted file mode 100644
index 5ba11985f..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/index.astro
+++ /dev/null
@@ -1,12 +0,0 @@
----
-const runtime = Astro.locals.runtime;
----
-
-
- Testing
-
-
- Testing
- {!!runtime.cf?.colo}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro
deleted file mode 100644
index d21f163a0..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/kv.astro
+++ /dev/null
@@ -1,20 +0,0 @@
----
-const runtime = Astro.locals.runtime;
-const kv = runtime.env?.KV;
-await kv.put("test", "true");
-const result = await kv.get("test")
----
-
-
-
-
-
-
- KV
-
-
- {!!runtime.env?.KV}
- {!!runtime.env?.KV_PROD}
- {!!result}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro b/packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro
deleted file mode 100644
index fbb9fc61b..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/src/pages/r2.astro
+++ /dev/null
@@ -1,20 +0,0 @@
----
-const runtime = Astro.locals.runtime;
-const bucket = runtime.env?.R2;
-await bucket.put("test", "true");
-const result = await (await bucket.get("test")).text()
----
-
-
-
-
-
-
- R2
-
-
- {!!runtime.env?.R2}
- {!!runtime.env?.R2_PROD}
- {!!result}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml b/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml
deleted file mode 100644
index 17fd88ea5..000000000
--- a/packages/integrations/cloudflare/test/fixtures/cf/wrangler.toml
+++ /dev/null
@@ -1,37 +0,0 @@
-name = "test"
-
-kv_namespaces = [
- { binding = "KV", id = "", preview_id = "" },
- { binding = "KV_PROD", id = "", preview_id = "" }
-]
-
-[vars]
-COOL = "ME"
-
-[[d1_databases]]
-binding = "D1" # Should match preview_database_id, i.e. available in your Worker on env.DB
-database_name = ""
-database_id = ""
-preview_database_id = "D1" # Required for Pages local development
-
-[[d1_databases]]
-binding = "D1_PROD" # Should match preview_database_id
-database_name = ""
-database_id = ""
-preview_database_id = "D1_PROD" # Required for Pages local development
-
-[[r2_buckets]]
-binding = 'R2' # <~ valid JavaScript variable name
-bucket_name = ''
-
-[[r2_buckets]]
-binding = 'R2_PROD' # <~ valid JavaScript variable name
-bucket_name = ''
-
-[[durable_objects.bindings]]
-name = "DO"
-class_name = "DurableObjectExample"
-
-[[durable_objects.bindings]]
-name = "DO_PROD"
-class_name = "DurableObjectProductionExample"
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/function-per-route/astro.config.mjs
deleted file mode 100644
index aa3f3dabc..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/astro.config.mjs
+++ /dev/null
@@ -1,15 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare({
- mode: 'directory',
- functionPerRoute: true
- }),
- output: 'server',
- vite: {
- build: {
- minify: false,
- },
- },
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/package.json b/packages/integrations/cloudflare/test/fixtures/function-per-route/package.json
deleted file mode 100644
index 54dded9dd..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-function-per-route",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/middleware.ts b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/middleware.ts
deleted file mode 100644
index a6ce640cb..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/middleware.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineMiddleware } from "astro/middleware";
-
-export const onRequest = defineMiddleware(({ locals, request }, next) => {
- // intercept response data from a request
- // optionally, transform the response by modifying `locals`
- locals.title = "New title"
-
- // return a Response or the result of calling `next()`
- return next()
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/[language]/files/[...path].astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/[language]/files/[...path].astro
deleted file mode 100644
index 84ad53228..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/[language]/files/[...path].astro
+++ /dev/null
@@ -1,37 +0,0 @@
----
-const files = [
- {
- slug: undefined,
- title: 'Root level',
- },
- {
- slug: 'test.png',
- title: "One level"
- },
- {
- slug: 'assets/test.png',
- title: "Two levels"
- },
- {
- slug: 'assets/images/test.png',
- title: 'Three levels',
- }
-];
-
-const { path } = Astro.params;
-const page = files.find((page) => page.slug === path);
-const { title } = page;
-
----
-
-
- Files / Rest Parameters / {title}
- DEBUG: {path}
- index
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/[person]/[car].astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/[person]/[car].astro
deleted file mode 100644
index f4fda9dc5..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/[person]/[car].astro
+++ /dev/null
@@ -1,14 +0,0 @@
----
-const { person, car } = Astro.params;
----
-
-
- {person} / {car}
- index
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/blog/[post].astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/blog/[post].astro
deleted file mode 100644
index 7b0e1e5b8..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/blog/[post].astro
+++ /dev/null
@@ -1,14 +0,0 @@
----
-const { post } = Astro.params;
----
-
-
- Blog / {post}
- index
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/blog/cool.astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/blog/cool.astro
deleted file mode 100644
index 7127282a4..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/blog/cool.astro
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- Blog / Cool
- index
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/files/[...path].astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/files/[...path].astro
deleted file mode 100644
index 84ad53228..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/files/[...path].astro
+++ /dev/null
@@ -1,37 +0,0 @@
----
-const files = [
- {
- slug: undefined,
- title: 'Root level',
- },
- {
- slug: 'test.png',
- title: "One level"
- },
- {
- slug: 'assets/test.png',
- title: "Two levels"
- },
- {
- slug: 'assets/images/test.png',
- title: 'Three levels',
- }
-];
-
-const { path } = Astro.params;
-const page = files.find((page) => page.slug === path);
-const { title } = page;
-
----
-
-
- Files / Rest Parameters / {title}
- DEBUG: {path}
- index
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/index.astro
deleted file mode 100644
index a7f564046..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/index.astro
+++ /dev/null
@@ -1,22 +0,0 @@
----
-const data = Astro.locals;
----
-
-
- Index
- Middleware ({data.title})
- prerender
- sub-route
- dynamic route in static sub-route
- dynamic route in dynamic sub-route
- rest parameters root level
- rest parameters one level
- rest parameters two level
- rest parameters three level
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/javascript.js b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/javascript.js
deleted file mode 100644
index e69de29bb..000000000
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/prerender.astro b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/prerender.astro
deleted file mode 100644
index bdda9b12c..000000000
--- a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/prerender.astro
+++ /dev/null
@@ -1,14 +0,0 @@
----
-export const prerender = true;
----
-
-
- Prerender
- index
-
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/test.json.ts b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/test.json.ts
deleted file mode 100644
index e69de29bb..000000000
diff --git a/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/trpc/[trpc].ts b/packages/integrations/cloudflare/test/fixtures/function-per-route/src/pages/trpc/[trpc].ts
deleted file mode 100644
index e69de29bb..000000000
diff --git a/packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs
deleted file mode 100644
index b90fd5b24..000000000
--- a/packages/integrations/cloudflare/test/fixtures/no-output/astro.config.mjs
+++ /dev/null
@@ -1,6 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare()
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/no-output/package.json b/packages/integrations/cloudflare/test/fixtures/no-output/package.json
deleted file mode 100644
index 569c30890..000000000
--- a/packages/integrations/cloudflare/test/fixtures/no-output/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-no-output",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/prerender/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/prerender/astro.config.mjs
deleted file mode 100644
index bf47a0a33..000000000
--- a/packages/integrations/cloudflare/test/fixtures/prerender/astro.config.mjs
+++ /dev/null
@@ -1,7 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare(),
- output: 'server',
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/prerender/package.json b/packages/integrations/cloudflare/test/fixtures/prerender/package.json
deleted file mode 100644
index 3b2c5fef5..000000000
--- a/packages/integrations/cloudflare/test/fixtures/prerender/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-prerender",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/index.astro
deleted file mode 100644
index dfd71c3de..000000000
--- a/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/index.astro
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- Testing
-
-
- Testing
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro b/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro
deleted file mode 100644
index e11de7add..000000000
--- a/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro
+++ /dev/null
@@ -1,11 +0,0 @@
----
-export const prerender = import.meta.env.PRERENDER;
----
-
-
- Testing
-
-
- Testing
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/routes-json/astro.config.mjs
deleted file mode 100644
index 6e03bbc35..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/astro.config.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineConfig } from 'astro/config';
-
-export default defineConfig({
- // adapter will be set dynamically by the test
- output: 'hybrid',
- redirects: {
- '/a/redirect': '/',
- },
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/package.json b/packages/integrations/cloudflare/test/fixtures/routes-json/package.json
deleted file mode 100644
index 4ff746f02..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-routes-json",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/public/_redirects b/packages/integrations/cloudflare/test/fixtures/routes-json/public/_redirects
deleted file mode 100644
index 14e38c465..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/public/_redirects
+++ /dev/null
@@ -1 +0,0 @@
-/redirectme / 302
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/public/public.txt b/packages/integrations/cloudflare/test/fixtures/routes-json/public/public.txt
deleted file mode 100644
index 9766475a4..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/public/public.txt
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic1.astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic1.astro
deleted file mode 100644
index 9a2306b86..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic1.astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-export const prerender=false;
----
-
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic2.astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic2.astro
deleted file mode 100644
index 9a2306b86..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic2.astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-export const prerender=false;
----
-
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic3.astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic3.astro
deleted file mode 100644
index 9a2306b86..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/dynamic3.astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-export const prerender=false;
----
-
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/index.astro
deleted file mode 100644
index 9a2306b86..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/dynamicOnly/pages/index.astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-export const prerender=false;
----
-
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/[...rest].astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/[...rest].astro
deleted file mode 100644
index 9a2306b86..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/[...rest].astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-export const prerender=false;
----
-
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/[id].astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/[id].astro
deleted file mode 100644
index 9a2306b86..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/[id].astro
+++ /dev/null
@@ -1,5 +0,0 @@
----
-export const prerender=false;
----
-
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/endpoint.ts b/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/endpoint.ts
deleted file mode 100644
index d43d0cd2a..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/endpoint.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const prerender = false;
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/index.astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/index.astro
deleted file mode 100644
index 9766475a4..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/a/index.astro
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/b/index.html b/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/b/index.html
deleted file mode 100644
index 9766475a4..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/mixed/pages/b/index.html
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/routes-json/src/staticOnly/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/routes-json/src/staticOnly/pages/index.astro
deleted file mode 100644
index 9766475a4..000000000
--- a/packages/integrations/cloudflare/test/fixtures/routes-json/src/staticOnly/pages/index.astro
+++ /dev/null
@@ -1 +0,0 @@
-ok
diff --git a/packages/integrations/cloudflare/test/fixtures/runtime/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/runtime/astro.config.mjs
deleted file mode 100644
index f92829843..000000000
--- a/packages/integrations/cloudflare/test/fixtures/runtime/astro.config.mjs
+++ /dev/null
@@ -1,8 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-
-export default defineConfig({
- adapter: cloudflare(),
- output: 'server',
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/runtime/package.json b/packages/integrations/cloudflare/test/fixtures/runtime/package.json
deleted file mode 100644
index 71ac16647..000000000
--- a/packages/integrations/cloudflare/test/fixtures/runtime/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-runtime",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/runtime/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/runtime/src/pages/index.astro
deleted file mode 100644
index aa73ab8ea..000000000
--- a/packages/integrations/cloudflare/test/fixtures/runtime/src/pages/index.astro
+++ /dev/null
@@ -1,15 +0,0 @@
----
-const runtime = Astro.locals.runtime;
-const env = runtime.env;
----
-
-
- Testing
-
-
- Testing
- {JSON.stringify(env)}
- {!!runtime.cf?.colo}
- {!!runtime.caches}
-
-
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-directory/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/wasm-directory/astro.config.mjs
deleted file mode 100644
index a30cd2086..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-directory/astro.config.mjs
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare({
- mode: 'directory',
- wasmModuleImports: true
- }),
- output: 'server'
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-directory/package.json b/packages/integrations/cloudflare/test/fixtures/wasm-directory/package.json
deleted file mode 100644
index 859aa4f40..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-directory/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-wasm-function-per-route",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-directory/src/pages/index.ts b/packages/integrations/cloudflare/test/fixtures/wasm-directory/src/pages/index.ts
deleted file mode 100644
index 2c9ff6d44..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-directory/src/pages/index.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { type APIContext, type EndpointOutput } from 'astro';
-// @ts-ignore
-import mod from '../util/add.wasm?module';
-
-const addModule: any = new WebAssembly.Instance(mod);
-
-
-export async function GET(
- context: APIContext
-): Promise {
-
- return new Response(JSON.stringify({ answer: addModule.exports.add(40, 2) }), {
- status: 200,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-directory/src/util/add.wasm b/packages/integrations/cloudflare/test/fixtures/wasm-directory/src/util/add.wasm
deleted file mode 100644
index 357f72da7..000000000
Binary files a/packages/integrations/cloudflare/test/fixtures/wasm-directory/src/util/add.wasm and /dev/null differ
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/astro.config.mjs
deleted file mode 100644
index 7f741d884..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/astro.config.mjs
+++ /dev/null
@@ -1,12 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare({
- mode: 'directory',
- functionPerRoute: true,
- wasmModuleImports: true
- }),
- output: 'server',
- vite: { build: { minify: false } }
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/package.json b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/package.json
deleted file mode 100644
index 238c1e313..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-wasm-directory",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/pages/deeply/nested/route.ts b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/pages/deeply/nested/route.ts
deleted file mode 100644
index 20797c0c6..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/pages/deeply/nested/route.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { type APIContext, type EndpointOutput } from 'astro';
-import { add } from '../../../util/add';
-
-export async function GET(
- context: APIContext
-): Promise {
-
- return new Response(JSON.stringify({ answer: add(80, 4) }), {
- status: 200,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/pages/index.ts b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/pages/index.ts
deleted file mode 100644
index b6417dde9..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/pages/index.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { type APIContext, type EndpointOutput } from 'astro';
-import { add } from '../util/add';
-
-export async function GET(
- context: APIContext
-): Promise {
-
- return new Response(JSON.stringify({ answer: add(40, 2) }), {
- status: 200,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/add.ts b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/add.ts
deleted file mode 100644
index ee336277b..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/add.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-// extra layer of indirection to stress the esbuild
-import { addImpl } from "./indirection";
-
-export function add(a: number, b: number): number {
- return addImpl(a, b);
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/add.wasm b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/add.wasm
deleted file mode 100644
index 357f72da7..000000000
Binary files a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/add.wasm and /dev/null differ
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/indirection.ts b/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/indirection.ts
deleted file mode 100644
index 6fbb04c49..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm-function-per-route/src/util/indirection.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-// extra layer of indirection to stress the esbuild
-// @ts-ignore
-import mod from './add.wasm?module';
-
-const addModule: any = new WebAssembly.Instance(mod);
-
-export function addImpl(a: number, b: number): number {
- return addModule.exports.add(a, b);
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/wasm/astro.config.mjs
deleted file mode 100644
index b5e68667e..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm/astro.config.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-
-export default defineConfig({
- adapter: cloudflare({
- wasmModuleImports: true
- }),
- output: 'server'
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm/package.json b/packages/integrations/cloudflare/test/fixtures/wasm/package.json
deleted file mode 100644
index 4abd8513c..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@test/astro-cloudflare-wasm",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "astro": "workspace:*"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm/src/pages/add/[a]/[b].ts b/packages/integrations/cloudflare/test/fixtures/wasm/src/pages/add/[a]/[b].ts
deleted file mode 100644
index 130b2b2a4..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm/src/pages/add/[a]/[b].ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { type APIContext, type EndpointOutput } from 'astro';
-// @ts-ignore
-import mod from '../../../util/add.wasm?module';
-
-const addModule: any = new WebAssembly.Instance(mod);
-
-export const prerender = false;
-
-export async function GET(
- context: APIContext
-): Promise {
- const a = Number.parseInt(context.params.a!);
- const b = Number.parseInt(context.params.b!);
- return new Response(JSON.stringify({ answer: addModule.exports.add(a, b) }), {
- status: 200,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm/src/pages/hybrid.ts b/packages/integrations/cloudflare/test/fixtures/wasm/src/pages/hybrid.ts
deleted file mode 100644
index 7bb470dff..000000000
--- a/packages/integrations/cloudflare/test/fixtures/wasm/src/pages/hybrid.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { type APIContext, type EndpointOutput } from 'astro';
-// @ts-ignore
-import mod from '../util/add.wasm?module';
-
-const addModule: any = new WebAssembly.Instance(mod);
-
-export async function GET(
- context: APIContext
-): Promise {
- return new Response(JSON.stringify({ answer: addModule.exports.add(20, 1) }), {
- status: 200,
- headers: {
- 'Content-Type': 'application/json',
- },
- });
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/wasm/src/util/add.wasm b/packages/integrations/cloudflare/test/fixtures/wasm/src/util/add.wasm
deleted file mode 100644
index 357f72da7..000000000
Binary files a/packages/integrations/cloudflare/test/fixtures/wasm/src/util/add.wasm and /dev/null differ
diff --git a/packages/integrations/cloudflare/test/fixtures/with-solid-js/astro.config.mjs b/packages/integrations/cloudflare/test/fixtures/with-solid-js/astro.config.mjs
deleted file mode 100644
index 8987b7366..000000000
--- a/packages/integrations/cloudflare/test/fixtures/with-solid-js/astro.config.mjs
+++ /dev/null
@@ -1,9 +0,0 @@
-import { defineConfig } from 'astro/config';
-import cloudflare from '@astrojs/cloudflare';
-import solidJs from "@astrojs/solid-js";
-
-export default defineConfig({
- integrations: [solidJs()],
- adapter: cloudflare(),
- output: 'server',
-});
diff --git a/packages/integrations/cloudflare/test/fixtures/with-solid-js/package.json b/packages/integrations/cloudflare/test/fixtures/with-solid-js/package.json
deleted file mode 100644
index 55e344b21..000000000
--- a/packages/integrations/cloudflare/test/fixtures/with-solid-js/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "@test/astro-cloudflare-with-solid-js",
- "version": "0.0.0",
- "private": true,
- "dependencies": {
- "@astrojs/cloudflare": "workspace:*",
- "@astrojs/solid-js": "workspace:*",
- "astro": "workspace:*",
- "solid-js": "^1.7.11"
- }
-}
diff --git a/packages/integrations/cloudflare/test/fixtures/with-solid-js/src/components/Component.tsx b/packages/integrations/cloudflare/test/fixtures/with-solid-js/src/components/Component.tsx
deleted file mode 100644
index d223d4f1c..000000000
--- a/packages/integrations/cloudflare/test/fixtures/with-solid-js/src/components/Component.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export const Component = () => Solid Content
diff --git a/packages/integrations/cloudflare/test/fixtures/with-solid-js/src/pages/index.astro b/packages/integrations/cloudflare/test/fixtures/with-solid-js/src/pages/index.astro
deleted file mode 100644
index f185a95d3..000000000
--- a/packages/integrations/cloudflare/test/fixtures/with-solid-js/src/pages/index.astro
+++ /dev/null
@@ -1,13 +0,0 @@
----
-import {Component} from "../components/Component";
----
-
-
-
- Testing
-
-
-Testing
-
-
-
diff --git a/packages/integrations/cloudflare/test/function-per-route.test.js b/packages/integrations/cloudflare/test/function-per-route.test.js
deleted file mode 100644
index f0287c717..000000000
--- a/packages/integrations/cloudflare/test/function-per-route.test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import { loadFixture } from './test-utils.js';
-import { expect } from 'chai';
-
-/** @type {import('./test-utils.js').Fixture} */
-describe('Cloudflare SSR functionPerRoute', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/function-per-route/',
- });
- await fixture.build();
- });
-
- after(() => {
- fixture?.clean();
- });
-
- it('generates functions folders inside the project root, and checks that each page is emitted by astro', async () => {
- expect(await fixture.pathExists('../functions')).to.be.true;
- expect(await fixture.pathExists('../functions/index.js')).to.be.true;
- expect(await fixture.pathExists('../functions/blog/cool.js')).to.be.true;
- expect(await fixture.pathExists('../functions/blog/[post].js')).to.be.true;
- expect(await fixture.pathExists('../functions/[person]/[car].js')).to.be.true;
- expect(await fixture.pathExists('../functions/files/[[path]].js')).to.be.true;
- expect(await fixture.pathExists('../functions/[language]/files/[[path]].js')).to.be.true;
- expect(await fixture.pathExists('../functions/trpc/[trpc].js')).to.be.true;
- expect(await fixture.pathExists('../functions/javascript.js')).to.be.true;
- expect(await fixture.pathExists('../functions/test.json.js')).to.be.true;
- });
-
- it('generates pre-rendered files', async () => {
- expect(await fixture.pathExists('./prerender/index.html')).to.be.true;
- });
-});
diff --git a/packages/integrations/cloudflare/test/no-output.test.js b/packages/integrations/cloudflare/test/no-output.test.js
deleted file mode 100644
index af4d9c2b6..000000000
--- a/packages/integrations/cloudflare/test/no-output.test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { loadFixture } from './test-utils.js';
-import { expect } from 'chai';
-
-describe('Missing output config', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/no-output/',
- });
- });
-
- it('throws during the build', async () => {
- let error = undefined;
- try {
- await fixture.build();
- } catch (err) {
- error = err;
- }
- expect(error).to.not.be.equal(undefined);
- expect(error.message).to.include(`output: "server"`);
- });
-});
diff --git a/packages/integrations/cloudflare/test/prerender.test.js b/packages/integrations/cloudflare/test/prerender.test.js
deleted file mode 100644
index 6c2b8c5bb..000000000
--- a/packages/integrations/cloudflare/test/prerender.test.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import { loadFixture } from './test-utils.js';
-import { expect } from 'chai';
-
-describe('Prerendering', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
-
- before(async () => {
- process.env.PRERENDER = true;
- fixture = await loadFixture({
- root: './fixtures/prerender/',
- });
- await fixture.build();
- });
-
- after(() => {
- delete process.env.PRERENDER;
- fixture.clean();
- });
-
- it('includes non prerendered routes in the routes.json config', async () => {
- const foundRoutes = JSON.parse(await fixture.readFile('/_routes.json'));
-
- expect(foundRoutes).to.deep.equal({
- version: 1,
- include: ['/', '/_image'],
- exclude: [],
- });
- });
-});
-
-describe('Hybrid rendering', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
-
- before(async () => {
- process.env.PRERENDER = false;
- fixture = await loadFixture({
- root: './fixtures/prerender/',
- output: 'hybrid',
- });
- await fixture.build();
- });
-
- after(() => {
- delete process.env.PRERENDER;
- });
-
- it('includes non prerendered routes in the routes.json config', async () => {
- const foundRoutes = JSON.parse(await fixture.readFile('/_routes.json'));
-
- expect(foundRoutes).to.deep.equal({
- version: 1,
- include: ['/one', '/_image'],
- exclude: [],
- });
- });
-});
diff --git a/packages/integrations/cloudflare/test/routes-json.test.js b/packages/integrations/cloudflare/test/routes-json.test.js
deleted file mode 100644
index 9c5cfad4a..000000000
--- a/packages/integrations/cloudflare/test/routes-json.test.js
+++ /dev/null
@@ -1,211 +0,0 @@
-import { expect } from 'chai';
-import { loadFixture } from './test-utils.js';
-import cloudflare from '../dist/index.js';
-
-/** @type {import('./test-utils.js').Fixture} */
-describe('_routes.json generation', () => {
- for (const mode of ['directory', 'advanced']) {
- for (const functionPerRoute of [false, true]) {
- describe(`with mode=${mode}, functionPerRoute=${functionPerRoute}`, () => {
- describe('of both functions and static files', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/mixed',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- }),
- });
- await fixture.build();
- });
-
- it('creates `include` for functions and `exclude` for static files where needed', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/a/*', '/_image'],
- exclude: ['/a/', '/a/redirect', '/a/index.html'],
- });
- });
- });
-
- describe('of only functions', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/dynamicOnly',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- }),
- });
- await fixture.build();
- });
-
- it('creates a wildcard `include` and `exclude` only for static assets and redirects', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/*'],
- exclude: ['/public.txt', '/redirectme', '/a/redirect'],
- });
- });
- });
-
- describe('of only static files', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/staticOnly',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- }),
- });
- await fixture.build();
- });
-
- it('create only one `include` and `exclude` that are supposed to match nothing', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/_image'],
- exclude: [],
- });
- });
- });
-
- describe('with strategy `"include"`', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/dynamicOnly',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- routes: { strategy: 'include' },
- }),
- });
- await fixture.build();
- });
-
- it('creates `include` entries even though the `"exclude"` strategy would have produced less entries.', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/', '/_image', '/dynamic1', '/dynamic2', '/dynamic3'],
- exclude: [],
- });
- });
- });
-
- describe('with strategy `"exclude"`', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/staticOnly',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- routes: { strategy: 'exclude' },
- }),
- });
- await fixture.build();
- });
-
- it('creates `exclude` entries even though the `"include"` strategy would have produced less entries.', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/*'],
- exclude: ['/', '/index.html', '/public.txt', '/redirectme', '/a/redirect'],
- });
- });
- });
-
- describe('with additional `include` entries', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/mixed',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- routes: {
- strategy: 'include',
- include: ['/another', '/a/redundant'],
- },
- }),
- });
- await fixture.build();
- });
-
- it('creates `include` for functions and `exclude` for static files where needed', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/a/*', '/_image', '/another'],
- exclude: ['/a/', '/a/redirect', '/a/index.html'],
- });
- });
- });
-
- describe('with additional `exclude` entries', () => {
- let fixture;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/routes-json/',
- srcDir: './src/mixed',
- adapter: cloudflare({
- mode,
- functionPerRoute,
- routes: {
- strategy: 'include',
- exclude: ['/another', '/a/*', '/a/index.html'],
- },
- }),
- });
- await fixture.build();
- });
-
- it('creates `include` for functions and `exclude` for static files where needed', async () => {
- const _routesJson = await fixture.readFile('/_routes.json');
- const routes = JSON.parse(_routesJson);
-
- expect(routes).to.deep.equal({
- version: 1,
- include: ['/a/*', '/_image'],
- exclude: ['/a/', '/a/*', '/another'],
- });
- });
- });
- });
- }
- }
-});
diff --git a/packages/integrations/cloudflare/test/runtime.test.js b/packages/integrations/cloudflare/test/runtime.test.js
deleted file mode 100644
index e0d77d5c6..000000000
--- a/packages/integrations/cloudflare/test/runtime.test.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-import * as cheerio from 'cheerio';
-import cloudflare from '../dist/index.js';
-
-describe('Runtime Locals', () => {
- /** @type {import('./test-utils.js').Fixture} */
- let fixture;
- /** @type {import('./test-utils.js').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/runtime/',
- output: 'server',
- adapter: cloudflare(),
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/runtime/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('has CF and Caches', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/`);
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('#env').text()).to.contain('SECRET_STUFF');
- expect($('#env').text()).to.contain('secret');
- expect($('#hasRuntime').text()).to.contain('true');
- expect($('#hasCache').text()).to.equal('true');
- });
-});
diff --git a/packages/integrations/cloudflare/test/test-utils.js b/packages/integrations/cloudflare/test/test-utils.js
deleted file mode 100644
index 5e0c698f4..000000000
--- a/packages/integrations/cloudflare/test/test-utils.js
+++ /dev/null
@@ -1,169 +0,0 @@
-import { spawn } from 'node:child_process';
-import { fileURLToPath } from 'node:url';
-import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js';
-import * as net from 'node:net';
-export { fixLineEndings } from '../../../astro/test/test-utils.js';
-/**
- * @typedef {{ stop: Promise, port: number }} WranglerCLI
- * @typedef {import('../../../astro/test/test-utils').Fixture} Fixture
- */
-
-export function loadFixture(config) {
- if (config?.root) {
- config.root = new URL(config.root, import.meta.url);
- }
- return baseLoadFixture(config);
-}
-
-const wranglerPath = fileURLToPath(
- new URL('../node_modules/wrangler/bin/wrangler.js', import.meta.url)
-);
-
-let lastPort = 8788;
-
-/**
- * @returns {Promise}
- */
-export async function runCLI(
- basePath,
- {
- silent,
- maxAttempts = 3,
- timeoutMillis = 2500, // really short because it often seems to just hang on the first try, but work subsequently, no matter the wait
- backoffFactor = 2, // | - 2.5s -- 5s ---- 10s -> onTimeout
- onTimeout = (ex) => {
- new Error(`Timed out starting the wrangler CLI after ${maxAttempts} tries.`, { cause: ex });
- },
- }
-) {
- let triesRemaining = maxAttempts;
- let timeout = timeoutMillis;
- let cli;
- let lastErr;
- while (triesRemaining > 0) {
- cli = await tryRunCLI(basePath, {
- silent,
- timeout,
- forceRotatePort: triesRemaining !== maxAttempts,
- });
- try {
- await cli.ready;
- return cli;
- } catch (err) {
- lastErr = err;
- console.error((err.message || err.name || err) + ' after ' + timeout + 'ms');
- cli.stop();
- triesRemaining -= 1;
- timeout *= backoffFactor;
- }
- }
- onTimeout(lastErr);
- return cli;
-}
-
-async function tryRunCLI(basePath, { silent, timeout, forceRotatePort = false }) {
- const port = await getNextOpenPort(lastPort + (forceRotatePort ? 1 : 0));
- lastPort = port;
-
- const fixtureDir = fileURLToPath(new URL(`${basePath}`, import.meta.url));
- const p = spawn(
- 'node',
- [
- wranglerPath,
- 'pages',
- 'dev',
- 'dist',
- '--port',
- port,
- '--log-level',
- 'info',
- '--persist-to',
- '.wrangler/state',
- ],
- {
- cwd: fixtureDir,
- }
- );
-
- p.stderr.setEncoding('utf-8');
- p.stdout.setEncoding('utf-8');
-
- const ready = new Promise(async (resolve, reject) => {
- const failed = setTimeout(() => {
- p.kill('SIGKILL');
- reject(new Error(`Timed out starting the wrangler CLI`));
- }, timeout);
-
- const success = () => {
- clearTimeout(failed);
- resolve();
- };
-
- p.on('exit', (code) => reject(`wrangler terminated unexpectedly with exit code ${code}`));
-
- p.stderr.on('data', (data) => {
- if (!silent) {
- process.stdout.write(data);
- }
- });
- let allData = '';
- p.stdout.on('data', (data) => {
- if (!silent) {
- process.stdout.write(data);
- }
- allData += data;
- if (allData.includes(`[mf:inf] Ready on`)) {
- success();
- }
- });
- });
-
- return {
- port,
- ready,
- stop() {
- return new Promise((resolve, reject) => {
- const timer = setTimeout(() => {
- p.kill('SIGKILL');
- }, 1000);
- p.on('close', () => {
- clearTimeout(timer);
- resolve();
- });
- p.on('error', (err) => reject(err));
- p.kill();
- });
- },
- };
-}
-
-const isPortOpen = async (port) => {
- return new Promise((resolve, reject) => {
- let s = net.createServer();
- s.once('error', (err) => {
- s.close();
- if (err['code'] == 'EADDRINUSE') {
- resolve(false);
- } else {
- reject(err);
- }
- });
- s.once('listening', () => {
- resolve(true);
- s.close();
- });
- s.listen(port, '0.0.0.0');
- });
-};
-
-const getNextOpenPort = async (startFrom) => {
- let openPort = null;
- while (startFrom < 65535 || !!openPort) {
- if (await isPortOpen(startFrom)) {
- openPort = startFrom;
- break;
- }
- startFrom++;
- }
- return openPort;
-};
diff --git a/packages/integrations/cloudflare/test/wasm-directory.test.js b/packages/integrations/cloudflare/test/wasm-directory.test.js
deleted file mode 100644
index 0f387a660..000000000
--- a/packages/integrations/cloudflare/test/wasm-directory.test.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-
-describe('Wasm directory mode import', () => {
- /** @type {import('./test-utils.js').Fixture} */
- let fixture;
- /** @type {import('./test-utils.js').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/wasm-directory/',
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/wasm-directory/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('can render', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/`);
- expect(res.status).to.equal(200);
- const json = await res.json();
- expect(json).to.deep.equal({ answer: 42 });
- });
-});
diff --git a/packages/integrations/cloudflare/test/wasm-function-per-route.test.js b/packages/integrations/cloudflare/test/wasm-function-per-route.test.js
deleted file mode 100644
index f751f1ff4..000000000
--- a/packages/integrations/cloudflare/test/wasm-function-per-route.test.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-
-describe('Wasm function per route import', () => {
- /** @type {import('./test-utils.js').Fixture} */
- let fixture;
- /** @type {import('./test-utils.js').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/wasm-function-per-route/',
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/wasm-function-per-route/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('can render', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/`);
- expect(res.status).to.equal(200);
- let json = await res.json();
- expect(json).to.deep.equal({ answer: 42 });
-
- res = await fetch(`http://127.0.0.1:${cli.port}/deeply/nested/route`);
- expect(res.status).to.equal(200);
- json = await res.json();
- expect(json).to.deep.equal({ answer: 84 });
- });
-});
diff --git a/packages/integrations/cloudflare/test/wasm.test.js b/packages/integrations/cloudflare/test/wasm.test.js
deleted file mode 100644
index 279a00cd1..000000000
--- a/packages/integrations/cloudflare/test/wasm.test.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-import cloudflare from '../dist/index.js';
-
-describe('Wasm import', () => {
- describe('in cloudflare workerd', () => {
- /** @type {import('./test-utils.js').Fixture} */
- let fixture;
- /** @type {import('./test-utils.js').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/wasm/',
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/wasm/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('can render', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/add/40/2`);
- expect(res.status).to.equal(200);
- const json = await res.json();
- expect(json).to.deep.equal({ answer: 42 });
- });
- });
- describe('astro dev server', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- let devServer;
-
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/wasm/',
- });
- devServer = undefined;
- });
-
- after(async () => {
- await devServer?.stop();
- });
-
- it('can serve wasm', async () => {
- devServer = await fixture.startDevServer();
- let res = await fetch(`http://localhost:${devServer.address.port}/add/60/3`);
- expect(res.status).to.equal(200);
- const json = await res.json();
- expect(json).to.deep.equal({ answer: 63 });
- });
-
- it('fails to build intelligently when wasm is disabled', async () => {
- let ex;
- try {
- await fixture.build({
- adapter: cloudflare({
- wasmModuleImports: false,
- }),
- });
- } catch (err) {
- ex = err;
- }
- expect(ex?.message).to.have.string('add `wasmModuleImports: true` to your astro config');
- });
-
- it('can import wasm in both SSR and SSG pages', async () => {
- await fixture.build({ output: 'hybrid' });
- const staticContents = await fixture.readFile('./hybrid');
- expect(staticContents).to.be.equal('{"answer":21}');
- const assets = await fixture.readdir('./_astro');
- expect(assets.map((x) => x.slice(x.lastIndexOf('.')))).to.contain('.wasm');
- });
- });
-});
diff --git a/packages/integrations/cloudflare/test/with-solid-js.test.js b/packages/integrations/cloudflare/test/with-solid-js.test.js
deleted file mode 100644
index 501a947d0..000000000
--- a/packages/integrations/cloudflare/test/with-solid-js.test.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { loadFixture, runCLI } from './test-utils.js';
-import { expect } from 'chai';
-import * as cheerio from 'cheerio';
-
-describe('With SolidJS', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- /** @type {import('./test-utils').WranglerCLI} */
- let cli;
-
- before(async function () {
- fixture = await loadFixture({
- root: './fixtures/with-solid-js/',
- });
- await fixture.build();
-
- cli = await runCLI('./fixtures/with-solid-js/', {
- silent: true,
- onTimeout: (ex) => {
- console.log(ex);
- // if fail to start, skip for now as it's very flaky
- this.skip();
- },
- });
- });
-
- after(async () => {
- await cli?.stop();
- });
-
- it('renders the solid component', async () => {
- let res = await fetch(`http://127.0.0.1:${cli.port}/`);
- expect(res.status).to.equal(200);
- let html = await res.text();
- let $ = cheerio.load(html);
- expect($('.solid').text()).to.equal('Solid Content');
- });
-});
diff --git a/packages/integrations/cloudflare/test/wrangler.toml b/packages/integrations/cloudflare/test/wrangler.toml
deleted file mode 100644
index 2c1acb55a..000000000
--- a/packages/integrations/cloudflare/test/wrangler.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-# for tests only
-
-send_metrics = false
-
-[vars]
-SECRET_STUFF = "secret"
diff --git a/packages/integrations/cloudflare/tsconfig.json b/packages/integrations/cloudflare/tsconfig.json
deleted file mode 100644
index 1504b4b6d..000000000
--- a/packages/integrations/cloudflare/tsconfig.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "extends": "../../../tsconfig.base.json",
- "include": ["src"],
- "compilerOptions": {
- "outDir": "./dist"
- }
-}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d70075993..c2c91c158 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3640,171 +3640,7 @@ importers:
specifier: workspace:*
version: link:../../../scripts
- packages/integrations/cloudflare:
- dependencies:
- '@astrojs/underscore-redirects':
- specifier: workspace:*
- version: link:../../underscore-redirects
- '@cloudflare/workers-types':
- specifier: ^4.20230821.0
- version: 4.20230821.0
- '@iarna/toml':
- specifier: ^2.2.5
- version: 2.2.5
- '@miniflare/cache':
- specifier: ^2.14.1
- version: 2.14.1
- '@miniflare/shared':
- specifier: ^2.14.1
- version: 2.14.1
- '@miniflare/storage-memory':
- specifier: ^2.14.1
- version: 2.14.1
- dotenv:
- specifier: ^16.3.1
- version: 16.3.1
- esbuild:
- specifier: ^0.19.2
- version: 0.19.2
- find-up:
- specifier: ^6.3.0
- version: 6.3.0
- miniflare:
- specifier: ^3.20230918.0
- version: 3.20230918.0
- tiny-glob:
- specifier: ^0.2.9
- version: 0.2.9
- vite:
- specifier: ^4.4.9
- version: 4.4.9(@types/node@18.17.8)(sass@1.66.1)
- devDependencies:
- '@types/iarna__toml':
- specifier: ^2.0.2
- version: 2.0.2
- astro:
- specifier: workspace:*
- version: link:../../astro
- astro-scripts:
- specifier: workspace:*
- version: link:../../../scripts
- chai:
- specifier: ^4.3.7
- version: 4.3.7
- cheerio:
- specifier: 1.0.0-rc.12
- version: 1.0.0-rc.12
- mocha:
- specifier: ^10.2.0
- version: 10.2.0
- wrangler:
- specifier: ^3.5.1
- version: 3.5.1
-
- packages/integrations/cloudflare/test/fixtures/basics:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/cf:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/function-per-route:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/no-output:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/prerender:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/routes-json:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/runtime:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/wasm:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/wasm-directory:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/wasm-function-per-route:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
-
- packages/integrations/cloudflare/test/fixtures/with-solid-js:
- dependencies:
- '@astrojs/cloudflare':
- specifier: workspace:*
- version: link:../../..
- '@astrojs/solid-js':
- specifier: workspace:*
- version: link:../../../../solid
- astro:
- specifier: workspace:*
- version: link:../../../../../astro
- solid-js:
- specifier: ^1.7.11
- version: 1.7.11
+ packages/integrations/cloudflare: {}
packages/integrations/lit:
dependencies:
@@ -6953,106 +6789,6 @@ packages:
prettier: 2.8.8
dev: true
- /@cloudflare/kv-asset-handler@0.2.0:
- resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==}
- dependencies:
- mime: 3.0.0
- dev: true
-
- /@cloudflare/workerd-darwin-64@1.20230814.1:
- resolution: {integrity: sha512-aQUO7q7qXl+SVtOiMMlVKLNOSeL6GX43RKeflwzsD74dGgyHPiSfw5KCvXhkVbyN7u+yYF6HyFdaIvHLfn5jyA==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@cloudflare/workerd-darwin-64@1.20230904.0:
- resolution: {integrity: sha512-/GDlmxAFbDtrQwP4zOXFbqOfaPvkDxdsCoEa+KEBcAl5uR98+7WW5/b8naBHX+t26uS7p4bLlImM8J5F1ienRQ==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
-
- /@cloudflare/workerd-darwin-arm64@1.20230814.1:
- resolution: {integrity: sha512-U2mcgi+AiuI/4EY5Wk/GmygiNoCNw/V2mcHmxESqe4r6XbJYOzBdEsjnqJ05rqd0JlEM8m64jRtE6/qBnQHygg==}
- engines: {node: '>=16'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- /@cloudflare/workerd-darwin-arm64@1.20230904.0:
- resolution: {integrity: sha512-x8WXNc2xnDqr5y1iirnNdyx8GZY3rL5xiF7ebK3mKQeB+jFjkhO71yuPTkDCzUWtOvw1Wfd4jbwy4wxacMX4mQ==}
- engines: {node: '>=16'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
-
- /@cloudflare/workerd-linux-64@1.20230814.1:
- resolution: {integrity: sha512-Q4kITXLTCuG2i2Z01fbb5AjVRRIf3+lS4ZVsFbTbIwtcOOG4Ozcw7ee7tKsFES7hFqR4Eg9gMG4/aS0mmi+L2g==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@cloudflare/workerd-linux-64@1.20230904.0:
- resolution: {integrity: sha512-V58xyMS3oDpKO8Dpdh0r0BXm99OzoGgvWe9ufttVraj/1NTMGELwb6i9ySb8k3F1J9m/sO26+TV7pQc/bGC1VQ==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
- /@cloudflare/workerd-linux-arm64@1.20230814.1:
- resolution: {integrity: sha512-BX5SaksXw+pkREVw3Rw2eSNXplqZw+14CcwW/5x/4oq/C6yn5qCvKxJfM7pukJGMI4wkJPOYops7B3g27FB/HA==}
- engines: {node: '>=16'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- /@cloudflare/workerd-linux-arm64@1.20230904.0:
- resolution: {integrity: sha512-VrDaW+pjb5IAKEnNWtEaFiG377kXKmk5Fu0Era4W+jKzPON2BW/qRb/4LNHXQ4yxg/2HLm7RiUTn7JZtt1qO6A==}
- engines: {node: '>=16'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
- /@cloudflare/workerd-windows-64@1.20230814.1:
- resolution: {integrity: sha512-GWHqfyhsG/1wm2W8afkYX3q3fWXUWWD8NGtHfAs6ZVTHdW3mmYyMhKR0lc6ptBwz5i5aXRlP2S+CxxxwwDbKpw==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- /@cloudflare/workerd-windows-64@1.20230904.0:
- resolution: {integrity: sha512-/R/dE8uy+8J2YeXfDhI8/Bg7YUirdbbjH5/l/Vv00ZRE0lC3nPLcYeyBXSwXIQ6/Xht3gN+lksLQgKd0ZWRd+Q==}
- engines: {node: '>=16'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
-
- /@cloudflare/workers-types@4.20230821.0:
- resolution: {integrity: sha512-lVQSyr5E4CEkQw7WIdsrMTj+kHjsm28mJ0B5AhNFByKR+16KTFsU/RW/nGLKHHW2jxT5lvYI+HjNQMzC9QR8Ng==}
- dev: false
-
/@colors/colors@1.5.0:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
engines: {node: '>=0.1.90'}
@@ -7420,33 +7156,6 @@ packages:
resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==}
dev: true
- /@esbuild-plugins/node-globals-polyfill@0.1.1(esbuild@0.16.3):
- resolution: {integrity: sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==}
- peerDependencies:
- esbuild: '*'
- dependencies:
- esbuild: 0.16.3
- dev: true
-
- /@esbuild-plugins/node-modules-polyfill@0.1.4(esbuild@0.16.3):
- resolution: {integrity: sha512-uZbcXi0zbmKC/050p3gJnne5Qdzw8vkXIv+c2BW0Lsc1ji1SkrxbKPUy5Efr0blbTu1SL8w4eyfpnSdPg3G0Qg==}
- peerDependencies:
- esbuild: '*'
- dependencies:
- esbuild: 0.16.3
- escape-string-regexp: 4.0.0
- rollup-plugin-node-polyfills: 0.2.1
- dev: true
-
- /@esbuild/android-arm64@0.16.3:
- resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/android-arm64@0.18.20:
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
engines: {node: '>=12'}
@@ -7463,15 +7172,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/android-arm@0.16.3:
- resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/android-arm@0.18.20:
resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
engines: {node: '>=12'}
@@ -7488,15 +7188,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/android-x64@0.16.3:
- resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/android-x64@0.18.20:
resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
engines: {node: '>=12'}
@@ -7513,15 +7204,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/darwin-arm64@0.16.3:
- resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/darwin-arm64@0.18.20:
resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
engines: {node: '>=12'}
@@ -7538,15 +7220,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/darwin-x64@0.16.3:
- resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/darwin-x64@0.18.20:
resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
engines: {node: '>=12'}
@@ -7563,15 +7236,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/freebsd-arm64@0.16.3:
- resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/freebsd-arm64@0.18.20:
resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
engines: {node: '>=12'}
@@ -7588,15 +7252,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/freebsd-x64@0.16.3:
- resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/freebsd-x64@0.18.20:
resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
engines: {node: '>=12'}
@@ -7613,15 +7268,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-arm64@0.16.3:
- resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-arm64@0.18.20:
resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
engines: {node: '>=12'}
@@ -7638,15 +7284,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-arm@0.16.3:
- resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-arm@0.18.20:
resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
engines: {node: '>=12'}
@@ -7663,15 +7300,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-ia32@0.16.3:
- resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-ia32@0.18.20:
resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
engines: {node: '>=12'}
@@ -7688,15 +7316,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-loong64@0.16.3:
- resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-loong64@0.18.20:
resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
engines: {node: '>=12'}
@@ -7713,15 +7332,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-mips64el@0.16.3:
- resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-mips64el@0.18.20:
resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
engines: {node: '>=12'}
@@ -7738,15 +7348,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-ppc64@0.16.3:
- resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-ppc64@0.18.20:
resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
engines: {node: '>=12'}
@@ -7763,15 +7364,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-riscv64@0.16.3:
- resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-riscv64@0.18.20:
resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
engines: {node: '>=12'}
@@ -7788,15 +7380,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-s390x@0.16.3:
- resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-s390x@0.18.20:
resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
engines: {node: '>=12'}
@@ -7813,15 +7396,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/linux-x64@0.16.3:
- resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/linux-x64@0.18.20:
resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
engines: {node: '>=12'}
@@ -7838,15 +7412,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/netbsd-x64@0.16.3:
- resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/netbsd-x64@0.18.20:
resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
engines: {node: '>=12'}
@@ -7863,15 +7428,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/openbsd-x64@0.16.3:
- resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/openbsd-x64@0.18.20:
resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
engines: {node: '>=12'}
@@ -7888,15 +7444,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/sunos-x64@0.16.3:
- resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/sunos-x64@0.18.20:
resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
engines: {node: '>=12'}
@@ -7913,15 +7460,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/win32-arm64@0.16.3:
- resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/win32-arm64@0.18.20:
resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
engines: {node: '>=12'}
@@ -7938,15 +7476,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/win32-ia32@0.16.3:
- resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/win32-ia32@0.18.20:
resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
engines: {node: '>=12'}
@@ -7963,15 +7492,6 @@ packages:
requiresBuild: true
optional: true
- /@esbuild/win32-x64@0.16.3:
- resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
/@esbuild/win32-x64@0.18.20:
resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
engines: {node: '>=12'}
@@ -8053,10 +7573,6 @@ packages:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true
- /@iarna/toml@2.2.5:
- resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
- dev: false
-
/@jest/schemas@29.6.3:
resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -8223,63 +7739,6 @@ packages:
- supports-color
dev: false
- /@miniflare/cache@2.14.1:
- resolution: {integrity: sha512-f/o6UBV6UX+MlhjcEch73/wjQvvNo37dgYmP6Pn2ax1/mEHhJ7allNAqenmonT4djNeyB3eEYV3zUl54wCEwrg==}
- engines: {node: '>=16.13'}
- dependencies:
- '@miniflare/core': 2.14.1
- '@miniflare/shared': 2.14.1
- http-cache-semantics: 4.1.1
- undici: 5.20.0
- dev: false
-
- /@miniflare/core@2.14.1:
- resolution: {integrity: sha512-d+SGAda/VoXq+SKz04oq8ATUwQw5755L87fgPR8pTdR2YbWkxdbmEm1z2olOpDiUjcR86aN6NtCjY6tUC7fqaw==}
- engines: {node: '>=16.13'}
- dependencies:
- '@iarna/toml': 2.2.5
- '@miniflare/queues': 2.14.1
- '@miniflare/shared': 2.14.1
- '@miniflare/watcher': 2.14.1
- busboy: 1.6.0
- dotenv: 10.0.0
- kleur: 4.1.5
- set-cookie-parser: 2.6.0
- undici: 5.20.0
- urlpattern-polyfill: 4.0.3
- dev: false
-
- /@miniflare/queues@2.14.1:
- resolution: {integrity: sha512-uBzrbBkIgtNoztDpmMMISg/brYtxLHRE7oTaN8OVnq3bG+3nF9kQC42HUz+Vg+sf65UlvhSaqkjllgx+fNtOxQ==}
- engines: {node: '>=16.7'}
- dependencies:
- '@miniflare/shared': 2.14.1
- dev: false
-
- /@miniflare/shared@2.14.1:
- resolution: {integrity: sha512-73GnLtWn5iP936ctE6ZJrMqGu134KOoIIveq5Yd/B+NnbFfzpuzjCpkLrnqjkDdsxDbruXSb5eTR/SmAdpJxZQ==}
- engines: {node: '>=16.13'}
- dependencies:
- '@types/better-sqlite3': 7.6.4
- kleur: 4.1.5
- npx-import: 1.1.4
- picomatch: 2.3.1
- dev: false
-
- /@miniflare/storage-memory@2.14.1:
- resolution: {integrity: sha512-lfQbQwopVWd4W5XzrYdp0rhk3dJpvSmv1Wwn9RhNO20WrcuoxpdSzbmpBahsgYVg+OheVaEbS6RpFqdmwwLTog==}
- engines: {node: '>=16.13'}
- dependencies:
- '@miniflare/shared': 2.14.1
- dev: false
-
- /@miniflare/watcher@2.14.1:
- resolution: {integrity: sha512-dkFvetm5wk6pwunlYb/UkI0yFNb3otLpRm5RDywMUzqObEf+rCiNNAbJe3HUspr2ncZVAaRWcEaDh82vYK5cmw==}
- engines: {node: '>=16.13'}
- dependencies:
- '@miniflare/shared': 2.14.1
- dev: false
-
/@nanostores/preact@0.5.0(nanostores@0.9.3)(preact@10.17.1):
resolution: {integrity: sha512-Zq5DEAY+kIfwJ1NPd43D1mpsbISuiD6N/SuTHrt/8jUoifLwXaReaZMAnvkvbIGOgcB1Hy++A9jZix2taNNYxQ==}
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
@@ -8712,12 +8171,6 @@ packages:
dependencies:
'@babel/types': 7.22.10
- /@types/better-sqlite3@7.6.4:
- resolution: {integrity: sha512-dzrRZCYPXIXfSR1/surNbJ/grU3scTaygS0OMzjlGf71i9sc2fGyHPXXiXmEvNIoE0cGwsanEFMVJxPXmco9Eg==}
- dependencies:
- '@types/node': 18.17.8
- dev: false
-
/@types/canvas-confetti@1.6.0:
resolution: {integrity: sha512-Yq6rIccwcco0TLD5SMUrIM7Fk7Fe/C0jmNRxJJCLtAF6gebDkPuUjK5EHedxecm69Pi/aA+It39Ux4OHmFhjRw==}
dev: false
@@ -8803,12 +8256,6 @@ packages:
resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==}
dev: true
- /@types/iarna__toml@2.0.2:
- resolution: {integrity: sha512-Q3obxKhBLVVbEQ8zsAmsQVobAAZhi8dFFFjF0q5xKXiaHvH8IkSxcbM27e46M9feUMieR03SPpmp5CtaNzpdBg==}
- dependencies:
- '@types/node': 18.17.8
- dev: true
-
/@types/is-ci@3.0.0:
resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==}
dependencies:
@@ -9726,11 +9173,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
- /as-table@1.0.55:
- resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
- dependencies:
- printable-characters: 1.0.42
-
/assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
@@ -9935,6 +9377,7 @@ packages:
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: false
/bcp-47-match@2.0.3:
resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==}
@@ -9951,14 +9394,6 @@ packages:
is-windows: 1.0.2
dev: true
- /better-sqlite3@8.5.1:
- resolution: {integrity: sha512-aDfC67xfll6bugnOqRJhdUWioQZnkhLkrwZ+oo6yZbNMtyktbwkDO4SfBcCVWbm4BlsCjCNTJchlHaBt+vB4Iw==}
- requiresBuild: true
- dependencies:
- bindings: 1.5.0
- prebuild-install: 7.1.1
- dev: true
-
/big-integer@1.6.51:
resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
engines: {node: '>=0.6'}
@@ -9972,6 +9407,7 @@ packages:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
dependencies:
file-uri-to-path: 1.0.0
+ dev: false
/bl@4.1.0:
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
@@ -9980,6 +9416,8 @@ packages:
buffer: 5.7.1
inherits: 2.0.4
readable-stream: 3.6.2
+ dev: false
+ optional: true
/bl@5.1.0:
resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==}
@@ -9989,10 +9427,6 @@ packages:
readable-stream: 3.6.2
dev: false
- /blake3-wasm@2.1.5:
- resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
- dev: true
-
/body-parser@1.20.1:
resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -10090,6 +9524,7 @@ packages:
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ dev: false
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
@@ -10097,6 +9532,8 @@ packages:
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
+ dev: false
+ optional: true
/buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
@@ -10110,12 +9547,6 @@ packages:
engines: {node: '>=6'}
dev: false
- /builtins@5.0.1:
- resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
- dependencies:
- semver: 7.5.4
- dev: false
-
/bundle-name@3.0.0:
resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
engines: {node: '>=12'}
@@ -10128,6 +9559,7 @@ packages:
engines: {node: '>=10.16.0'}
dependencies:
streamsearch: 1.1.0
+ dev: true
/bytes@3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
@@ -10191,14 +9623,6 @@ packages:
resolution: {integrity: sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==}
dev: false
- /capnp-ts@0.7.0:
- resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==}
- dependencies:
- debug: 4.3.4(supports-color@8.1.1)
- tslib: 2.6.2
- transitivePeerDependencies:
- - supports-color
-
/ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -10335,6 +9759,8 @@ packages:
/chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
requiresBuild: true
+ dev: false
+ optional: true
/chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
@@ -10728,9 +10154,6 @@ packages:
stream-transform: 2.1.3
dev: true
- /data-uri-to-buffer@2.0.2:
- resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
-
/data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
@@ -10815,6 +10238,8 @@ packages:
requiresBuild: true
dependencies:
mimic-response: 3.1.0
+ dev: false
+ optional: true
/dedent-js@1.0.1:
resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==}
@@ -10830,6 +10255,8 @@ packages:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
requiresBuild: true
+ dev: false
+ optional: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -10931,6 +10358,7 @@ packages:
/detect-libc@2.0.2:
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
engines: {node: '>=8'}
+ dev: false
/devalue@4.3.2:
resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==}
@@ -11014,16 +10442,6 @@ packages:
domelementtype: 2.3.0
domhandler: 5.0.3
- /dotenv@10.0.0:
- resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==}
- engines: {node: '>=10'}
- dev: false
-
- /dotenv@16.3.1:
- resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==}
- engines: {node: '>=12'}
- dev: false
-
/dotenv@8.6.0:
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
engines: {node: '>=10'}
@@ -11089,6 +10507,8 @@ packages:
requiresBuild: true
dependencies:
once: 1.4.0
+ dev: false
+ optional: true
/enhanced-resolve@5.14.0:
resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==}
@@ -11240,36 +10660,6 @@ packages:
globby: 11.1.0
dev: true
- /esbuild@0.16.3:
- resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==}
- engines: {node: '>=12'}
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- '@esbuild/android-arm': 0.16.3
- '@esbuild/android-arm64': 0.16.3
- '@esbuild/android-x64': 0.16.3
- '@esbuild/darwin-arm64': 0.16.3
- '@esbuild/darwin-x64': 0.16.3
- '@esbuild/freebsd-arm64': 0.16.3
- '@esbuild/freebsd-x64': 0.16.3
- '@esbuild/linux-arm': 0.16.3
- '@esbuild/linux-arm64': 0.16.3
- '@esbuild/linux-ia32': 0.16.3
- '@esbuild/linux-loong64': 0.16.3
- '@esbuild/linux-mips64el': 0.16.3
- '@esbuild/linux-ppc64': 0.16.3
- '@esbuild/linux-riscv64': 0.16.3
- '@esbuild/linux-s390x': 0.16.3
- '@esbuild/linux-x64': 0.16.3
- '@esbuild/netbsd-x64': 0.16.3
- '@esbuild/openbsd-x64': 0.16.3
- '@esbuild/sunos-x64': 0.16.3
- '@esbuild/win32-arm64': 0.16.3
- '@esbuild/win32-ia32': 0.16.3
- '@esbuild/win32-x64': 0.16.3
- dev: true
-
/esbuild@0.18.20:
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
engines: {node: '>=12'}
@@ -11525,10 +10915,6 @@ packages:
'@types/unist': 2.0.7
dev: false
- /estree-walker@0.6.1:
- resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==}
- dev: true
-
/estree-walker@1.0.1:
resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
dev: false
@@ -11564,21 +10950,6 @@ packages:
strip-final-newline: 2.0.0
dev: true
- /execa@6.1.0:
- resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- cross-spawn: 7.0.3
- get-stream: 6.0.1
- human-signals: 3.0.1
- is-stream: 3.0.0
- merge-stream: 2.0.0
- npm-run-path: 5.1.0
- onetime: 6.0.0
- signal-exit: 3.0.7
- strip-final-newline: 3.0.0
- dev: false
-
/execa@7.2.0:
resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
@@ -11608,14 +10979,12 @@ packages:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- /exit-hook@2.2.1:
- resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
- engines: {node: '>=6'}
-
/expand-template@2.0.3:
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
engines: {node: '>=6'}
requiresBuild: true
+ dev: false
+ optional: true
/express@4.18.2:
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
@@ -11743,6 +11112,7 @@ packages:
/file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ dev: false
/filelist@1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
@@ -11785,14 +11155,6 @@ packages:
locate-path: 6.0.0
path-exists: 4.0.0
- /find-up@6.3.0:
- resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- locate-path: 7.2.0
- path-exists: 5.0.0
- dev: false
-
/find-yarn-workspace-root2@1.2.16:
resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
dependencies:
@@ -11851,6 +11213,8 @@ packages:
/fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
requiresBuild: true
+ dev: false
+ optional: true
/fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
@@ -11969,15 +11333,10 @@ packages:
resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
dev: false
- /get-source@2.0.12:
- resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
- dependencies:
- data-uri-to-buffer: 2.0.2
- source-map: 0.6.1
-
/get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
+ dev: true
/get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
@@ -12008,6 +11367,8 @@ packages:
/github-from-package@0.0.0:
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
requiresBuild: true
+ dev: false
+ optional: true
/github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
@@ -12024,9 +11385,6 @@ packages:
dependencies:
is-glob: 4.0.3
- /glob-to-regexp@0.4.1:
- resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
-
/glob@7.1.6:
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
dependencies:
@@ -12078,6 +11436,7 @@ packages:
/globalyzer@0.1.0:
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
+ dev: true
/globby@11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
@@ -12103,6 +11462,7 @@ packages:
/globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+ dev: true
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
@@ -12449,6 +11809,7 @@ packages:
/http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+ dev: false
/http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
@@ -12493,11 +11854,6 @@ packages:
engines: {node: '>=10.17.0'}
dev: true
- /human-signals@3.0.1:
- resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
- engines: {node: '>=12.20.0'}
- dev: false
-
/human-signals@4.3.1:
resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
engines: {node: '>=14.18.0'}
@@ -12538,6 +11894,7 @@ packages:
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: false
/ignore@5.2.4:
resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
@@ -12585,6 +11942,8 @@ packages:
/ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
requiresBuild: true
+ dev: false
+ optional: true
/inline-style-parser@0.1.1:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
@@ -13215,13 +12574,6 @@ packages:
dependencies:
p-locate: 5.0.0
- /locate-path@7.2.0:
- resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- p-locate: 6.0.0
- dev: false
-
/lodash.chunk@4.2.0:
resolution: {integrity: sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==}
dev: false
@@ -13336,6 +12688,7 @@ packages:
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
dependencies:
sourcemap-codec: 1.4.8
+ dev: false
/magic-string@0.30.3:
resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==}
@@ -14043,6 +13396,7 @@ packages:
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
engines: {node: '>=10.0.0'}
hasBin: true
+ dev: false
/mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
@@ -14056,60 +13410,14 @@ packages:
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
engines: {node: '>=10'}
requiresBuild: true
+ dev: false
+ optional: true
/min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
dev: true
- /miniflare@3.20230814.1:
- resolution: {integrity: sha512-LMgqd1Ut0+fnlvQepVbbBYQczQnyuuap8bgUwOyPETka0S9NR9NxMQSNaBgVZ0uOaG7xMJ/OVTRlz+TGB86PWA==}
- engines: {node: '>=16.13'}
- dependencies:
- acorn: 8.10.0
- acorn-walk: 8.2.0
- better-sqlite3: 8.5.1
- capnp-ts: 0.7.0
- exit-hook: 2.2.1
- glob-to-regexp: 0.4.1
- http-cache-semantics: 4.1.1
- kleur: 4.1.5
- set-cookie-parser: 2.6.0
- source-map-support: 0.5.21
- stoppable: 1.1.0
- undici: 5.23.0
- workerd: 1.20230814.1
- ws: 8.13.0
- youch: 3.2.3
- zod: 3.21.1
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /miniflare@3.20230918.0:
- resolution: {integrity: sha512-Dd29HB7ZlT1CXB2tPH8nW6fBOOXi/m7qFZHjKm2jGS+1OaGfrv0PkT5UspWW5jQi8rWI87xtordAUiIJkwWqRw==}
- engines: {node: '>=16.13'}
- dependencies:
- acorn: 8.10.0
- acorn-walk: 8.2.0
- capnp-ts: 0.7.0
- exit-hook: 2.2.1
- glob-to-regexp: 0.4.1
- source-map-support: 0.5.21
- stoppable: 1.1.0
- undici: 5.23.0
- workerd: 1.20230904.0
- ws: 8.13.0
- youch: 3.2.3
- zod: 3.21.1
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: false
-
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -14180,6 +13488,8 @@ packages:
/mkdirp-classic@0.5.3:
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
requiresBuild: true
+ dev: false
+ optional: true
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
@@ -14259,10 +13569,6 @@ packages:
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
dev: true
- /mustache@4.2.0:
- resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
- hasBin: true
-
/mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
dependencies:
@@ -14289,6 +13595,8 @@ packages:
/napi-build-utils@1.0.2:
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
requiresBuild: true
+ dev: false
+ optional: true
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -14348,6 +13656,8 @@ packages:
requiresBuild: true
dependencies:
semver: 7.5.4
+ dev: false
+ optional: true
/node-addon-api@6.1.0:
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
@@ -14384,11 +13694,6 @@ packages:
formdata-polyfill: 4.0.10
dev: false
- /node-forge@1.3.1:
- resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
- engines: {node: '>= 6.13.0'}
- dev: true
-
/node-gyp-build@4.6.0:
resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
hasBin: true
@@ -14480,15 +13785,6 @@ packages:
set-blocking: 2.0.0
dev: false
- /npx-import@1.1.4:
- resolution: {integrity: sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==}
- dependencies:
- execa: 6.1.0
- parse-package-name: 1.0.0
- semver: 7.5.4
- validate-npm-package-name: 4.0.0
- dev: false
-
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
dependencies:
@@ -14652,13 +13948,6 @@ packages:
dependencies:
p-limit: 3.1.0
- /p-locate@6.0.0:
- resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- p-limit: 4.0.0
- dev: false
-
/p-map@2.1.0:
resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
engines: {node: '>=6'}
@@ -14734,10 +14023,6 @@ packages:
resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
dev: true
- /parse-package-name@1.0.0:
- resolution: {integrity: sha512-kBeTUtcj+SkyfaW4+KBe0HtsloBJ/mKTPoxpVdA57GZiPerREsUWJOhVj9anXweFiJkm5y8FG1sxFZkZ0SN6wg==}
- dev: false
-
/parse5-htmlparser2-tree-adapter@7.0.0:
resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
dependencies:
@@ -14774,11 +14059,6 @@ packages:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
- /path-exists@5.0.0:
- resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: false
-
/path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
@@ -14805,6 +14085,7 @@ packages:
/path-to-regexp@6.2.1:
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
+ dev: false
/path-type@3.0.0:
resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
@@ -15295,6 +14576,7 @@ packages:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
hasBin: true
+ requiresBuild: true
dependencies:
detect-libc: 2.0.2
expand-template: 2.0.3
@@ -15308,6 +14590,8 @@ packages:
simple-get: 4.0.1
tar-fs: 2.1.1
tunnel-agent: 0.6.0
+ dev: false
+ optional: true
/preferred-pm@3.1.2:
resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==}
@@ -15381,9 +14665,6 @@ packages:
resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==}
dev: false
- /printable-characters@1.0.42:
- resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
-
/prismjs@1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
@@ -15437,6 +14718,8 @@ packages:
dependencies:
end-of-stream: 1.4.4
once: 1.4.0
+ dev: false
+ optional: true
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
@@ -15495,6 +14778,8 @@ packages:
ini: 1.3.8
minimist: 1.2.8
strip-json-comments: 2.0.1
+ dev: false
+ optional: true
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
@@ -15573,6 +14858,7 @@ packages:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
+ dev: false
/readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
@@ -15937,21 +15223,6 @@ packages:
dependencies:
glob: 7.2.3
- /rollup-plugin-inject@3.0.2:
- resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==}
- deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.
- dependencies:
- estree-walker: 0.6.1
- magic-string: 0.25.9
- rollup-pluginutils: 2.8.2
- dev: true
-
- /rollup-plugin-node-polyfills@0.2.1:
- resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==}
- dependencies:
- rollup-plugin-inject: 3.0.2
- dev: true
-
/rollup-plugin-terser@7.0.2(rollup@2.79.1):
resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
@@ -15968,12 +15239,6 @@ packages:
terser: 5.19.2
dev: false
- /rollup-pluginutils@2.8.2:
- resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==}
- dependencies:
- estree-walker: 0.6.1
- dev: true
-
/rollup@2.79.1:
resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
engines: {node: '>=10.0.0'}
@@ -16071,13 +15336,6 @@ packages:
kind-of: 6.0.3
dev: false
- /selfsigned@2.1.1:
- resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==}
- engines: {node: '>=10'}
- dependencies:
- node-forge: 1.3.1
- dev: true
-
/semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
hasBin: true
@@ -16152,6 +15410,7 @@ packages:
/set-cookie-parser@2.6.0:
resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
+ dev: false
/setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
@@ -16253,6 +15512,8 @@ packages:
/simple-concat@1.0.1:
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
requiresBuild: true
+ dev: false
+ optional: true
/simple-get@4.0.1:
resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==}
@@ -16261,6 +15522,8 @@ packages:
decompress-response: 6.0.0
once: 1.4.0
simple-concat: 1.0.1
+ dev: false
+ optional: true
/simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
@@ -16348,6 +15611,7 @@ packages:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
+ dev: false
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
@@ -16356,6 +15620,7 @@ packages:
/source-map@0.7.4:
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
engines: {node: '>= 8'}
+ dev: false
/source-map@0.8.0-beta.0:
resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
@@ -16367,6 +15632,7 @@ packages:
/sourcemap-codec@1.4.8:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
deprecated: Please use @jridgewell/sourcemap-codec instead
+ dev: false
/space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
@@ -16420,12 +15686,6 @@ packages:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
dev: false
- /stacktracey@2.1.8:
- resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
- dependencies:
- as-table: 1.0.55
- get-source: 2.0.12
-
/statuses@2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
@@ -16441,10 +15701,6 @@ packages:
bl: 5.1.0
dev: false
- /stoppable@1.1.0:
- resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==}
- engines: {node: '>=4', npm: '>=6'}
-
/stream-parser@0.3.1:
resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==}
dependencies:
@@ -16462,6 +15718,7 @@ packages:
/streamsearch@1.1.0:
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
engines: {node: '>=10.0.0'}
+ dev: true
/streamx@2.15.1:
resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==}
@@ -16546,6 +15803,7 @@ packages:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
safe-buffer: 5.2.1
+ dev: false
/stringify-entities@4.0.3:
resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==}
@@ -16799,6 +16057,8 @@ packages:
mkdirp-classic: 0.5.3
pump: 3.0.0
tar-stream: 2.2.0
+ dev: false
+ optional: true
/tar-fs@3.0.4:
resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==}
@@ -16820,6 +16080,8 @@ packages:
fs-constants: 1.0.0
inherits: 2.0.4
readable-stream: 3.6.2
+ dev: false
+ optional: true
/tar-stream@3.1.6:
resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==}
@@ -16911,6 +16173,7 @@ packages:
dependencies:
globalyzer: 0.1.0
globrex: 0.1.2
+ dev: true
/tinybench@2.5.0:
resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==}
@@ -17057,6 +16320,8 @@ packages:
requiresBuild: true
dependencies:
safe-buffer: 5.2.1
+ dev: false
+ optional: true
/turbo-darwin-64@1.10.12:
resolution: {integrity: sha512-vmDfGVPl5/aFenAbOj3eOx3ePNcWVUyZwYr7taRl0ZBbmv2TzjRiFotO4vrKCiTVnbqjQqAFQWY2ugbqCI1kOQ==}
@@ -17255,18 +16520,12 @@ packages:
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
- /undici@5.20.0:
- resolution: {integrity: sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==}
- engines: {node: '>=12.18'}
- dependencies:
- busboy: 1.6.0
- dev: false
-
/undici@5.23.0:
resolution: {integrity: sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==}
engines: {node: '>=14.0'}
dependencies:
busboy: 1.6.0
+ dev: true
/unherit@3.0.1:
resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==}
@@ -17504,10 +16763,6 @@ packages:
requires-port: 1.0.0
dev: true
- /urlpattern-polyfill@4.0.3:
- resolution: {integrity: sha512-DOE84vZT2fEcl9gqCUTcnAw5ZY5Id55ikUcziSUntuEFL3pRvavg5kwDmTEUJkeCHInTlV/HexFomgYnzO5kdQ==}
- dev: false
-
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -17546,13 +16801,6 @@ packages:
spdx-expression-parse: 3.0.1
dev: true
- /validate-npm-package-name@4.0.0:
- resolution: {integrity: sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
- dependencies:
- builtins: 5.0.1
- dev: false
-
/vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -18273,61 +17521,10 @@ packages:
workbox-core: 7.0.0
dev: false
- /workerd@1.20230814.1:
- resolution: {integrity: sha512-zJeSEteXuAD+bpYJT8WvzTAHvIAkKPVxOV+Jy6zCLKz5e08N3OUbAF+wrvGWc8b2aB1sj+IYsdXfkv4puH+qXQ==}
- engines: {node: '>=16'}
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20230814.1
- '@cloudflare/workerd-darwin-arm64': 1.20230814.1
- '@cloudflare/workerd-linux-64': 1.20230814.1
- '@cloudflare/workerd-linux-arm64': 1.20230814.1
- '@cloudflare/workerd-windows-64': 1.20230814.1
- dev: true
-
- /workerd@1.20230904.0:
- resolution: {integrity: sha512-t9znszH0rQGK4mJGvF9L3nN0qKEaObAGx0JkywFtAwH8OkSn+YfQbHNZE+YsJ4qa1hOz1DCNEk08UDFRBaYq4g==}
- engines: {node: '>=16'}
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20230904.0
- '@cloudflare/workerd-darwin-arm64': 1.20230904.0
- '@cloudflare/workerd-linux-64': 1.20230904.0
- '@cloudflare/workerd-linux-arm64': 1.20230904.0
- '@cloudflare/workerd-windows-64': 1.20230904.0
- dev: false
-
/workerpool@6.2.1:
resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
dev: true
- /wrangler@3.5.1:
- resolution: {integrity: sha512-CnrKId+pmjTfLSidM9Ut7lUDCFWEtJyY3JT3Dk+TgYHvu2zVmMgUeQQZHZfvpVN5eaEZifNQr90KEvMLy7MhHw==}
- engines: {node: '>=16.13.0'}
- hasBin: true
- dependencies:
- '@cloudflare/kv-asset-handler': 0.2.0
- '@esbuild-plugins/node-globals-polyfill': 0.1.1(esbuild@0.16.3)
- '@esbuild-plugins/node-modules-polyfill': 0.1.4(esbuild@0.16.3)
- blake3-wasm: 2.1.5
- chokidar: 3.5.3
- esbuild: 0.16.3
- miniflare: 3.20230814.1
- nanoid: 3.3.6
- path-to-regexp: 6.2.1
- selfsigned: 2.1.1
- source-map: 0.7.4
- xxhash-wasm: 1.0.2
- optionalDependencies:
- fsevents: 2.3.3
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
/wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -18369,6 +17566,7 @@ packages:
optional: true
utf-8-validate:
optional: true
+ dev: true
/xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
@@ -18405,10 +17603,6 @@ packages:
engines: {node: '>=0.1'}
dev: true
- /xxhash-wasm@1.0.2:
- resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==}
- dev: true
-
/y18n@4.0.3:
resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
dev: true
@@ -18512,15 +17706,9 @@ packages:
engines: {node: '>=12.20'}
dev: false
- /youch@3.2.3:
- resolution: {integrity: sha512-ZBcWz/uzZaQVdCvfV4uk616Bbpf2ee+F/AvuKDR5EwX/Y4v06xWdtMluqTD7+KlZdM93lLm9gMZYo0sKBS0pgw==}
- dependencies:
- cookie: 0.5.0
- mustache: 4.2.0
- stacktracey: 2.1.8
-
/zod@3.21.1:
resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==}
+ dev: false
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}