diff --git a/packages/integrations/deno/CHANGELOG.md b/packages/integrations/deno/CHANGELOG.md deleted file mode 100644 index f9fe7889a..000000000 --- a/packages/integrations/deno/CHANGELOG.md +++ /dev/null @@ -1,507 +0,0 @@ -# @astrojs/deno - -## 5.0.1 - -### Patch Changes - -- [#8652](https://github.com/withastro/astro/pull/8652) [`954cadc1e`](https://github.com/withastro/astro/commit/954cadc1e534079a6fba369629272caa173d40ac) Thanks [@lilnasy](https://github.com/lilnasy)! - Fixed an issue where deno integration broke some frameworks. - -- Updated dependencies [[`69fbf95b2`](https://github.com/withastro/astro/commit/69fbf95b22c0fb0d8e7e5fef9ec61e26cac9767f)]: - - astro@3.1.4 - -## 5.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 - -### 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 - -- [#8245](https://github.com/withastro/astro/pull/8245) [`ed39fbf16`](https://github.com/withastro/astro/commit/ed39fbf168f7a30c4fbf5b5618b70146ce5d5b3e) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - TypeScript users now get better suggestions when configuring the Deno adapter. - -- 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 - -## 5.0.0-rc.2 - -### Patch Changes - -- [#8245](https://github.com/withastro/astro/pull/8245) [`ed39fbf16`](https://github.com/withastro/astro/commit/ed39fbf168f7a30c4fbf5b5618b70146ce5d5b3e) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - TypeScript users now get better suggestions when configuring the Deno adapter. - -- Updated dependencies [[`46c4c0e05`](https://github.com/withastro/astro/commit/46c4c0e053f830585b9ef229ce1c259df00a80f8), [`1048aca55`](https://github.com/withastro/astro/commit/1048aca550769415e528016e42b358ffbfd44b61), [`ffc9e2d3d`](https://github.com/withastro/astro/commit/ffc9e2d3de46049bf3d82140ef018f524fb03187), [`3674584e0`](https://github.com/withastro/astro/commit/3674584e02b161a698b429ceb66723918fdc56ac)]: - - astro@3.0.0-rc.8 - -## 5.0.0-rc.1 - -### 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 - -## 5.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. - -### 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 - -## 4.3.0 - -### Minor Changes - -- [#7687](https://github.com/withastro/astro/pull/7687) [`0a1b33349`](https://github.com/withastro/astro/commit/0a1b33349fc12d9927e6eef2b66588afedf517a1) Thanks [@kwhinnery](https://github.com/kwhinnery)! - Update build target for Deno to esnext to allow supported language features on the runtime. - -### Patch Changes - -- Updated dependencies [[`0f677c009`](https://github.com/withastro/astro/commit/0f677c009d102bc12232a966634136be58f34739), [`188eeddd4`](https://github.com/withastro/astro/commit/188eeddd47a61e04639670496924c37866180749)]: - - astro@2.9.3 - -## 4.2.0 - -### Minor Changes - -- [#7288](https://github.com/withastro/astro/pull/7288) [`d67ae8461`](https://github.com/withastro/astro/commit/d67ae846103c42ff0464c578813749940326e8ba) Thanks [@lilnasy](https://github.com/lilnasy)! - The deno adapter now supports npm package that require built-in node modules. - -### Patch Changes - -- Updated dependencies [[`bb644834e`](https://github.com/withastro/astro/commit/bb644834ef03bc00048c7381f20a1c01388438e2), [`d2020c29c`](https://github.com/withastro/astro/commit/d2020c29cf285e699f92143a70ffa30a85122bb4)]: - - astro@2.6.5 - -## 4.1.1 - -### 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 - } - --- - -
- - - -
- ``` - -- [#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 - -## 4.1.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 - -## 4.0.2 - -### Patch Changes - -- [#6281](https://github.com/withastro/astro/pull/6281) [`609b249c8`](https://github.com/withastro/astro/commit/609b249c8de936fcf263effa83a95a45747d6610) Thanks [@matthewp](https://github.com/matthewp)! - Revert prerender fix - -- [#6284](https://github.com/withastro/astro/pull/6284) [`61113dd73`](https://github.com/withastro/astro/commit/61113dd731f2db39ebecb8f2f473823b56d3160b) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Fix prerendered page behavior - -- Updated dependencies [[`d9474d467`](https://github.com/withastro/astro/commit/d9474d467e9c24bedf9cdb6100de9190ab0274d0), [`933c651fb`](https://github.com/withastro/astro/commit/933c651fb1126b7ad1ff369cd11307c47949d0b6)]: - - astro@2.0.14 - -## 4.0.1 - -### Patch Changes - -- [#6248](https://github.com/withastro/astro/pull/6248) [`ef5cea4dc`](https://github.com/withastro/astro/commit/ef5cea4dc5c4ffa33bd57ea0886e6912afb24fec) Thanks [@wulinsheng123](https://github.com/wulinsheng123)! - Deno SSR with prerender=true complains about invalid URL scheme - -- Updated dependencies [[`ef5cea4dc`](https://github.com/withastro/astro/commit/ef5cea4dc5c4ffa33bd57ea0886e6912afb24fec), [`2fec47848`](https://github.com/withastro/astro/commit/2fec4784871f2b06fd780eb4cb0bb69866c6b065)]: - - astro@2.0.13 - -## 4.0.0 - -### Major Changes - -- [#5584](https://github.com/withastro/astro/pull/5584) [`9963c6e4d`](https://github.com/withastro/astro/commit/9963c6e4d50c392c3d1ac4492237020f15ccb1de) & [#5842](https://github.com/withastro/astro/pull/5842) [`c4b0cb8bf`](https://github.com/withastro/astro/commit/c4b0cb8bf2b41887d9106440bb2e70d421a5f481) Thanks [@wulinsheng123](https://github.com/wulinsheng123) and [@natemoo-re](https://github.com/natemoo-re)! - **Breaking Change**: client assets are built to an `_astro` directory in the build output directory. Previously these were built to various locations, including `assets/`, `chunks/` and the root of build output. - - You can control this location with the new `build` configuration option named `assets`. - -- [#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 - -## 4.0.0-beta.2 - -### Major Changes - -- [#5842](https://github.com/withastro/astro/pull/5842) [`c4b0cb8bf`](https://github.com/withastro/astro/commit/c4b0cb8bf2b41887d9106440bb2e70d421a5f481) Thanks [@natemoo-re](https://github.com/natemoo-re)! - **Breaking Change**: client assets are built to an `_astro` directory in the build output directory. Previously these were built to various locations, including `assets/`, `chunks/` and the root of build output. - - You can control this location with the new `build` configuration option named `assets`. - -- [#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 - -## 4.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 - -## 3.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 - -## 2.0.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 - -## 2.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 - -## 1.2.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: '...', - }, - }); - }, - }, - }; - } - ``` - -## 1.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. - -## 1.0.1 - -### 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) - -* [#4562](https://github.com/withastro/astro/pull/4562) [`294122b4e`](https://github.com/withastro/astro/commit/294122b4e423107bd9d4854a266f029acbe5e293) Thanks [@zicklag](https://github.com/zicklag)! - Make Deno SSR Backend Render Custom 404 Pages - -## 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.2.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', - }); - ``` - -* [#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.1.10 - -### 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.1.9 - -### Patch Changes - -- [#3865](https://github.com/withastro/astro/pull/3865) [`1f9e4857`](https://github.com/withastro/astro/commit/1f9e4857ff2b2cb7db89d619618cdf546cd3b3dc) Thanks [@delucis](https://github.com/delucis)! - Small README fixes - -* [#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.1.8 - -### Patch Changes - -- [#3677](https://github.com/withastro/astro/pull/3677) [`8045c8ad`](https://github.com/withastro/astro/commit/8045c8ade16fe4306448b7f98a4560ef0557d378) Thanks [@Jutanium](https://github.com/Jutanium)! - Update READMEs - -## 0.1.7 - -### Patch Changes - -- [#3734](https://github.com/withastro/astro/pull/3734) [`4acd245d`](https://github.com/withastro/astro/commit/4acd245d8f59871eb9c0083ae1a0fe7aa70c84f5) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Fix: append shim to top of built file to avoid "can't read process of undefined" issues - -## 0.1.6 - -### Patch Changes - -- [#3673](https://github.com/withastro/astro/pull/3673) [`ba5ad785`](https://github.com/withastro/astro/commit/ba5ad7855c4252e10e76b41b88fd4c74b4b7295b) Thanks [@hippotastic](https://github.com/hippotastic)! - Fix react dependencies to improve test reliability - -## 0.1.5 - -### Patch Changes - -- [#3532](https://github.com/withastro/astro/pull/3532) [`c22a07db`](https://github.com/withastro/astro/commit/c22a07db134a9d0741a05123fb506595aabf145b) Thanks [@matthewp](https://github.com/matthewp)! - Fix for using Astro.glob when using the Deno Deploy adapter - -## 0.1.4 - -### Patch Changes - -- [#3503](https://github.com/withastro/astro/pull/3503) [`207f58d1`](https://github.com/withastro/astro/commit/207f58d1715ac024cc7c81b76e26aa49fca5173f) Thanks [@williamtetlow](https://github.com/williamtetlow)! - Alias `from 'astro'` imports to `'@astro/types'` - Update Deno and Netlify integrations to handle vite.resolves.alias as an array - -## 0.1.3 - -### Patch Changes - -- [#3483](https://github.com/withastro/astro/pull/3483) [`b795a085`](https://github.com/withastro/astro/commit/b795a085f0d20abe83c5ada1e7ba89ec4444c2d5) Thanks [@mvolfik](https://github.com/mvolfik)! - Deno integration now loads environment variables in server runtime - -## 0.1.2 - -### Patch Changes - -- [#3160](https://github.com/withastro/astro/pull/3160) [`ae9ac5cb`](https://github.com/withastro/astro/commit/ae9ac5cbdceba0687d83d56d9d5f80479ab88710) Thanks [@matthewp](https://github.com/matthewp)! - Allows using React.lazy, Suspense in SSR and with hydration - -## 0.1.1 - -### Patch Changes - -- [#3121](https://github.com/withastro/astro/pull/3121) [`e5383cd3`](https://github.com/withastro/astro/commit/e5383cd3576f858bf65f6d460de397c4f2dae208) Thanks [@matthewp](https://github.com/matthewp)! - Handles file serving in the main export - -## 0.1.0 - -### Minor Changes - -- [`e425f896`](https://github.com/withastro/astro/commit/e425f896b668d98033ad3b998b50c1f28bc7f6ee) Thanks [@FredKSchott](https://github.com/FredKSchott)! - Update config options to respect [RFC0019](https://github.com/withastro/rfcs/blob/main/proposals/0019-config-finalization.md) - -### Patch Changes - -- [`e425f896`](https://github.com/withastro/astro/commit/e425f896b668d98033ad3b998b50c1f28bc7f6ee) Thanks [@FredKSchott](https://github.com/FredKSchott)! - Add a Deno adapter for SSR - -## 0.0.2-next.0 - -### Patch Changes - -- [#2873](https://github.com/withastro/astro/pull/2873) [`e4025d1f`](https://github.com/withastro/astro/commit/e4025d1f530310d6ab951109f4f53878a307471a) Thanks [@matthewp](https://github.com/matthewp)! - Improves the build by building to a single file for rendering diff --git a/packages/integrations/deno/README.md b/packages/integrations/deno/README.md index 4e0caff90..2428b341c 100644 --- a/packages/integrations/deno/README.md +++ b/packages/integrations/deno/README.md @@ -1,176 +1,3 @@ # @astrojs/deno 🦖 -This adapter allows Astro to deploy your SSR site to Deno targets. - -Learn how to deploy your Astro site in our [Deno Deploy deployment guide](https://docs.astro.build/en/guides/deploy/deno/). - -- [Why Astro Deno](#why-astro-deno) -- [Installation](#installation) -- [Usage](#usage) -- [Configuration](#configuration) -- [Examples](#examples) -- [Troubleshooting](#troubleshooting) -- [Contributing](#contributing) -- [Changelog](#changelog) - -## Why Astro Deno - -If you're using Astro as a static site builder—its behavior out of the box—you don't need an adapter. - -If you wish to [use server-side rendering (SSR)](https://docs.astro.build/en/guides/server-side-rendering/), Astro requires an adapter that matches your deployment runtime. - -[Deno](https://deno.land/) is a runtime similar to Node, but with an API that's more similar to the browser's API. This adapter provides access to Deno's API and creates a script to run your project on a Deno server. - -## Installation - -Add the Deno 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 deno -# Using Yarn -yarn astro add deno -# Using PNPM -pnpm astro add deno -``` - -If you prefer to install the adapter manually instead, complete the following two steps: - -1. Install the Deno 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/deno - ``` - -1. Update your `astro.config.mjs` project configuration file with the changes below. - - ```js ins={3,6-7} - // astro.config.mjs - import { defineConfig } from 'astro/config'; - import deno from '@astrojs/deno'; - - export default defineConfig({ - output: 'server', - adapter: deno(), - }); - ``` - -Next, update your `preview` script in `package.json` to run `deno`: - -```json ins={8} -// package.json -{ - // ... - "scripts": { - "dev": "astro dev", - "start": "astro dev", - "build": "astro build", - "preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs" - } -} -``` - -You can now use this command to preview your production Astro site locally with Deno. - -```bash -npm run preview -``` - -## Usage - -After [performing a build](https://docs.astro.build/en/guides/deploy/#building-your-site-locally) there will be a `dist/server/entry.mjs` module. You can start a server by importing this module in your Deno app: - -```js -import './dist/server/entry.mjs'; -``` - -See the `start` option below for how you can have more control over starting the Astro server. - -You can also run the script directly using deno: - -```sh -deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs -``` - -## Configuration - -To configure this adapter, pass an object to the `deno()` function call in `astro.config.mjs`. - -```js -// astro.config.mjs -import { defineConfig } from 'astro/config'; -import deno from '@astrojs/deno'; - -export default defineConfig({ - output: 'server', - adapter: deno({ - //options go here - }), -}); -``` - -### start - -This adapter automatically starts a server when it is imported. You can turn this off with the `start` option: - -```js -import { defineConfig } from 'astro/config'; -import deno from '@astrojs/deno'; - -export default defineConfig({ - output: 'server', - adapter: deno({ - start: false, - }), -}); -``` - -If you disable this, you need to write your own Deno web server. Import and call `handle` from the generated entry script to render requests: - -```ts -import { serve } from 'https://deno.land/std@0.167.0/http/server.ts'; -import { handle } from './dist/server/entry.mjs'; - -serve((req: Request) => { - // Check the request, maybe do static file handling here. - - return handle(req); -}); -``` - -### port and hostname - -You can set the port (default: `8085`) and hostname (default: `0.0.0.0`) for the deno server to use. If `start` is false, this has no effect; your own server must configure the port and hostname. - -```js -import { defineConfig } from 'astro/config'; -import deno from '@astrojs/deno'; - -export default defineConfig({ - output: 'server', - adapter: deno({ - port: 8081, - hostname: 'myhost', - }), -}); -``` - -## Examples - -The [Astro Deno](https://github.com/withastro/astro/tree/main/examples/deno) example includes a `preview` command that runs the entry script directly. Run `npm run build` then `npm run preview` to run the production deno server. - -## 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! - -## Changelog - -See [CHANGELOG.md](CHANGELOG.md) for a history of changes to this integration. - -[astro-integration]: https://docs.astro.build/en/guides/integrations-guide/ +This adapter is no longer maintained by Astro. Please see [the new repository for the Deno adapter](https://github.com/withastro/netlify-adapter) which is now maintained by the Deno organization. diff --git a/packages/integrations/deno/package.json b/packages/integrations/deno/package.json deleted file mode 100644 index 18a10ce9b..000000000 --- a/packages/integrations/deno/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@astrojs/deno", - "description": "Deploy your site to a Deno server", - "version": "5.0.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/deno" - }, - "keywords": [ - "withastro", - "astro-adapter" - ], - "bugs": "https://github.com/withastro/astro/issues", - "homepage": "https://docs.astro.build/en/guides/integrations-guide/deno/", - "exports": { - ".": "./dist/index.js", - "./server.js": "./dist/server.js", - "./__deno_imports.js": "./dist/__deno_imports.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": "deno test --allow-run --allow-env --allow-read --allow-net ./test/" - }, - "dependencies": { - "esbuild": "^0.19.2" - }, - "peerDependencies": { - "astro": "workspace:^3.1.4" - }, - "devDependencies": { - "astro": "workspace:*", - "astro-scripts": "workspace:*" - } -} diff --git a/packages/integrations/deno/src/__deno_imports.ts b/packages/integrations/deno/src/__deno_imports.ts deleted file mode 100644 index 710cd69f6..000000000 --- a/packages/integrations/deno/src/__deno_imports.ts +++ /dev/null @@ -1,10 +0,0 @@ -// This file is a shim for any Deno-specific imports! -// It will be replaced in the final Deno build. -// -// This allows us to prerender pages in Node. -export class Server { - listenAndServe() {} -} - -export function serveFile() {} -export function fromFileUrl() {} diff --git a/packages/integrations/deno/src/index.ts b/packages/integrations/deno/src/index.ts deleted file mode 100644 index 7f417a264..000000000 --- a/packages/integrations/deno/src/index.ts +++ /dev/null @@ -1,196 +0,0 @@ -import type { AstroAdapter, AstroIntegration } from 'astro'; -import esbuild from 'esbuild'; -import * as fs from 'node:fs'; -import * as npath from 'node:path'; -import { fileURLToPath } from 'node:url'; -import type { BuildConfig, Options } from './types'; - -const SHIM = `globalThis.process = { - argv: [], - env: Deno.env.toObject(), -};`; - -const DENO_VERSION = `0.177.0`; -// REF: https://github.com/denoland/deno/tree/main/ext/node/polyfills -const COMPATIBLE_NODE_MODULES = [ - 'assert', - 'assert/strict', - 'async_hooks', - 'buffer', - 'child_process', - 'cluster', - 'console', - 'constants', - 'crypto', - 'dgram', - 'diagnostics_channel', - 'dns', - 'events', - 'fs', - 'fs/promises', - 'http', - // 'http2', - 'https', - 'inspector', - 'module', - 'net', - 'os', - 'path', - 'path/posix', - 'path/win32', - 'perf_hooks', - 'process', - 'punycode', - 'querystring', - 'readline', - 'repl', - 'stream', - 'stream/promises', - 'stream/web', - 'string_decoder', - 'sys', - 'timers', - 'timers/promises', - // 'tls', - 'trace_events', - 'tty', - 'url', - 'util', - 'util/types', - // 'v8', - // 'vm', - // 'wasi', - // 'webcrypto', - 'worker_threads', - 'zlib', -]; - -// We shim deno-specific imports so we can run the code in Node -// to prerender pages. In the final Deno build, this import is -// replaced with the Deno-specific contents listed below. -const DENO_IMPORTS_SHIM = `@astrojs/deno/__deno_imports.js`; -const DENO_IMPORTS = `export { Server } from "https://deno.land/std@${DENO_VERSION}/http/server.ts" -export { serveFile } from 'https://deno.land/std@${DENO_VERSION}/http/file_server.ts'; -export { fromFileUrl } from "https://deno.land/std@${DENO_VERSION}/path/mod.ts";`; - -export function getAdapter(args?: Options): AstroAdapter { - return { - name: '@astrojs/deno', - serverEntrypoint: '@astrojs/deno/server.js', - args: args ?? {}, - exports: ['stop', 'handle', 'start', 'running'], - supportedAstroFeatures: { - hybridOutput: 'stable', - staticOutput: 'stable', - serverOutput: 'stable', - assets: { - supportKind: 'stable', - isSharpCompatible: false, - isSquooshCompatible: false, - }, - }, - }; -} - -const denoImportsShimPlugin = { - name: '@astrojs/deno:shim', - setup(build: esbuild.PluginBuild) { - build.onLoad({ filter: /__deno_imports\.js$/ }, async () => { - return { - contents: DENO_IMPORTS, - loader: 'js', - }; - }); - }, -}; - -const denoRenameNodeModulesPlugin = { - name: '@astrojs/esbuild-rename-node-modules', - setup(build: esbuild.PluginBuild) { - const filter = new RegExp(COMPATIBLE_NODE_MODULES.map((mod) => `(^${mod}$)`).join('|')); - build.onResolve({ filter }, (args) => ({ path: 'node:' + args.path, external: true })); - }, -}; - -export default function createIntegration(args?: Options): AstroIntegration { - let _buildConfig: BuildConfig; - let _vite: any; - return { - name: '@astrojs/deno', - hooks: { - 'astro:config:done': ({ setAdapter, config }) => { - setAdapter(getAdapter(args)); - _buildConfig = config.build; - - if (config.output === 'static') { - console.warn( - `[@astrojs/deno] \`output: "server"\` or \`output: "hybrid"\` is required to use this adapter.` - ); - console.warn( - `[@astrojs/deno] Otherwise, this adapter is not required to deploy a static site to Deno.` - ); - } - }, - 'astro:build:setup': ({ vite, target }) => { - if (target === 'server') { - _vite = vite; - vite.resolve = vite.resolve ?? {}; - vite.resolve.alias = vite.resolve.alias ?? {}; - vite.build = vite.build ?? {}; - vite.build.rollupOptions = vite.build.rollupOptions ?? {}; - vite.build.rollupOptions.external = vite.build.rollupOptions.external ?? []; - - 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; - } - } - - if (Array.isArray(vite.build.rollupOptions.external)) { - vite.build.rollupOptions.external.push(DENO_IMPORTS_SHIM); - } else if (typeof vite.build.rollupOptions.external !== 'function') { - vite.build.rollupOptions.external = [ - vite.build.rollupOptions.external, - DENO_IMPORTS_SHIM, - ]; - } - } - }, - 'astro:build:done': async () => { - const entryUrl = new URL(_buildConfig.serverEntry, _buildConfig.server); - const pth = fileURLToPath(entryUrl); - - await esbuild.build({ - target: 'esnext', - platform: 'browser', - entryPoints: [pth], - outfile: pth, - allowOverwrite: true, - format: 'esm', - bundle: true, - external: [ - ...COMPATIBLE_NODE_MODULES.map((mod) => `node:${mod}`), - '@astrojs/markdown-remark', - ], - plugins: [denoImportsShimPlugin, denoRenameNodeModulesPlugin], - banner: { - js: SHIM, - }, - }); - - // Remove chunks, if they exist. Since we have bundled via esbuild these chunks are trash. - try { - const chunkFileNames = - _vite?.build?.rollupOptions?.output?.chunkFileNames ?? `chunks/chunk.[hash].mjs`; - const chunkPath = npath.dirname(chunkFileNames); - const chunksDirUrl = new URL(chunkPath + '/', _buildConfig.server); - await fs.promises.rm(chunksDirUrl, { recursive: true, force: true }); - } catch {} - }, - }, - }; -} diff --git a/packages/integrations/deno/src/server.ts b/packages/integrations/deno/src/server.ts deleted file mode 100644 index 95c638b65..000000000 --- a/packages/integrations/deno/src/server.ts +++ /dev/null @@ -1,114 +0,0 @@ -// Normal Imports -import type { SSRManifest } from 'astro'; -import { App } from 'astro/app'; -import type { Options } from './types'; - -// @ts-expect-error -import { fromFileUrl, serveFile, Server } from '@astrojs/deno/__deno_imports.js'; - -let _server: Server | undefined = undefined; -let _startPromise: Promise | undefined = undefined; - -async function* getPrerenderedFiles(clientRoot: URL): AsyncGenerator { - // @ts-expect-error - for await (const ent of Deno.readDir(clientRoot)) { - if (ent.isDirectory) { - yield* getPrerenderedFiles(new URL(`./${ent.name}/`, clientRoot)); - } else if (ent.name.endsWith('.html')) { - yield new URL(`./${ent.name}`, clientRoot); - } - } -} - -export function start(manifest: SSRManifest, options: Options) { - if (options.start === false) { - return; - } - - const clientRoot = new URL('../client/', import.meta.url); - const app = new App(manifest); - const handler = async (request: Request, connInfo: any) => { - if (app.match(request)) { - let ip = connInfo?.remoteAddr?.hostname; - Reflect.set(request, Symbol.for('astro.clientAddress'), ip); - const response = await app.render(request); - if (app.setCookieHeaders) { - for (const setCookieHeader of app.setCookieHeaders(response)) { - response.headers.append('Set-Cookie', setCookieHeader); - } - } - return response; - } - - // If the request path wasn't found in astro, - // try to fetch a static file instead - const url = new URL(request.url); - const localPath = new URL('./' + app.removeBase(url.pathname), clientRoot); - - let fileResp = await serveFile(request, fromFileUrl(localPath)); - - // Attempt to serve `index.html` if 404 - if (fileResp.status == 404) { - let fallback; - for await (const file of getPrerenderedFiles(clientRoot)) { - const pathname = file.pathname.replace(/\/(index)?\.html$/, ''); - if (localPath.pathname.endsWith(pathname)) { - fallback = file; - break; - } - } - if (fallback) { - fileResp = await serveFile(request, fromFileUrl(fallback)); - } - } - - // If the static file can't be found - if (fileResp.status == 404) { - // Render the astro custom 404 page - const response = await app.render(request); - - if (app.setCookieHeaders) { - for (const setCookieHeader of app.setCookieHeaders(response)) { - response.headers.append('Set-Cookie', setCookieHeader); - } - } - return response; - - // If the static file is found - } else { - return fileResp; - } - }; - - const port = options.port ?? 8085; - _server = new Server({ - port, - hostname: options.hostname ?? '0.0.0.0', - handler, - }); - - _startPromise = Promise.resolve(_server.listenAndServe()); - console.error(`Server running on port ${port}`); -} - -export function createExports(manifest: SSRManifest, options: Options) { - const app = new App(manifest); - return { - async stop() { - if (_server) { - _server.close(); - _server = undefined; - } - await Promise.resolve(_startPromise); - }, - running() { - return _server !== undefined; - }, - async start() { - return start(manifest, options); - }, - async handle(request: Request) { - return app.render(request); - }, - }; -} diff --git a/packages/integrations/deno/src/types.ts b/packages/integrations/deno/src/types.ts deleted file mode 100644 index c44d0a842..000000000 --- a/packages/integrations/deno/src/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -export interface Options { - port?: number; - hostname?: string; - start?: boolean; -} - -export interface BuildConfig { - server: URL; - serverEntry: string; - assets: string; -} diff --git a/packages/integrations/deno/test/basics.test.ts b/packages/integrations/deno/test/basics.test.ts deleted file mode 100644 index 043fab2d6..000000000 --- a/packages/integrations/deno/test/basics.test.ts +++ /dev/null @@ -1,121 +0,0 @@ -/* Deno types consider DOM elements nullable */ -/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */ -import { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.35-alpha/deno-dom-wasm.ts'; -import { assert, assertEquals } from 'https://deno.land/std@0.158.0/testing/asserts.ts'; -import { runBuildAndStartApp, defaultTestPermissions } from './helpers.ts'; - -// this needs to be here and not in the specific test case, because -// the variables are loaded in the global scope of the built server -// module, which is only executed once upon the first load -const varContent = 'this is a value stored in env variable'; -Deno.env.set('SOME_VARIABLE', varContent); - -Deno.test({ - name: 'Basics', - permissions: defaultTestPermissions, - sanitizeResources: false, - sanitizeOps: false, - async fn(t) { - const app = await runBuildAndStartApp('./fixtures/basics/'); - - await t.step('Works', async () => { - const resp = await fetch(app.url); - assertEquals(resp.status, 200); - - const html = await resp.text(); - assert(html); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const div = doc!.querySelector('#react'); - - assert(div, 'div exists'); - }); - - await t.step('Custom 404', async () => { - const resp = await fetch(new URL('this-does-not-exist', app.url)); - assertEquals(resp.status, 404); - - const html = await resp.text(); - assert(html); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const header = doc!.querySelector('#custom-404'); - assert(header, 'displays custom 404'); - }); - - await t.step('Loads style assets', async () => { - let resp = await fetch(app.url); - const html = await resp.text(); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const style = doc!.querySelector('style'); - - assert(style?.textContent?.includes('Courier New')); - }); - - await t.step('Correctly loads run-time env variables', async () => { - const resp = await fetch(app.url); - const html = await resp.text(); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const p = doc!.querySelector('p#env-value'); - assertEquals(p!.innerText, varContent); - }); - - await t.step('Can use a module with top-level await', async () => { - const resp = await fetch(app.url); - const html = await resp.text(); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const p = doc!.querySelector('p#module-value'); - assertEquals(p!.innerText, 'bar'); - }); - - await t.step('Works with Markdown', async () => { - const resp = await fetch(new URL('markdown', app.url)); - const html = await resp.text(); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const h1 = doc!.querySelector('h1'); - assertEquals(h1!.innerText, 'Heading from Markdown'); - }); - - await t.step('Works with MDX', async () => { - const resp = await fetch(new URL('mdx', app.url)); - const html = await resp.text(); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const h1 = doc!.querySelector('h1'); - assertEquals(h1!.innerText, 'Heading from MDX'); - }); - - await t.step('Astro.cookies', async () => { - const url = new URL('/admin', app.url); - const resp = await fetch(url, { redirect: 'manual' }); - assertEquals(resp.status, 302); - - const headers = resp.headers; - assertEquals(headers.get('set-cookie'), 'logged-in=false; Max-Age=77760000; Path=/'); - }); - - await t.step('perendering', async () => { - const resp = await fetch(new URL('/prerender', app.url)); - assertEquals(resp.status, 200); - - const html = await resp.text(); - assert(html); - - const doc = new DOMParser().parseFromString(html, `text/html`); - const h1 = doc!.querySelector('h1'); - assertEquals(h1!.innerText, 'test'); - }); - - await t.step('node compatibility', async () => { - const resp = await fetch(new URL('/nodecompat', app.url)); - assertEquals(resp.status, 200); - await resp.text(); - }); - - app.stop(); - }, -}); diff --git a/packages/integrations/deno/test/dynamic-import.test.ts b/packages/integrations/deno/test/dynamic-import.test.ts deleted file mode 100644 index aa9d44c67..000000000 --- a/packages/integrations/deno/test/dynamic-import.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* Deno types consider DOM elements nullable */ -/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */ -import { DOMParser } from 'https://deno.land/x/deno_dom@v0.1.35-alpha/deno-dom-wasm.ts'; -import { assert, assertEquals } from 'https://deno.land/std@0.158.0/testing/asserts.ts'; -import { runBuildAndStartAppFromSubprocess } from './helpers.ts'; - -Deno.test({ - name: 'Dynamic import', - async fn(t) { - const app = await runBuildAndStartAppFromSubprocess('./fixtures/dynimport/'); - - await t.step('Works', async () => { - const resp = await fetch(app.url); - assertEquals(resp.status, 200); - const html = await resp.text(); - assert(html); - const doc = new DOMParser().parseFromString(html, `text/html`); - const div = doc!.querySelector('#thing'); - assert(div, 'div exists'); - }); - - app.stop(); - }, -}); diff --git a/packages/integrations/deno/test/fixtures/basics/astro.config.mjs b/packages/integrations/deno/test/fixtures/basics/astro.config.mjs deleted file mode 100644 index cf80fdb2e..000000000 --- a/packages/integrations/deno/test/fixtures/basics/astro.config.mjs +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from 'astro/config'; -import deno from '@astrojs/deno'; -import react from '@astrojs/react'; -import mdx from '@astrojs/mdx'; - -export default defineConfig({ - adapter: deno(), - integrations: [react(), mdx()], - output: 'server' -}) diff --git a/packages/integrations/deno/test/fixtures/basics/package.json b/packages/integrations/deno/test/fixtures/basics/package.json deleted file mode 100644 index ebb4270b2..000000000 --- a/packages/integrations/deno/test/fixtures/basics/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "@test/deno-astro-basic", - "version": "0.0.0", - "private": true, - "dependencies": { - "astro": "workspace:*", - "@astrojs/deno": "workspace:*", - "@astrojs/react": "workspace:*", - "@astrojs/mdx": "workspace:*", - "react": "^18.1.0", - "react-dom": "^18.1.0" - } -} diff --git a/packages/integrations/deno/test/fixtures/basics/src/components/React.jsx b/packages/integrations/deno/test/fixtures/basics/src/components/React.jsx deleted file mode 100644 index 42c74a7aa..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/components/React.jsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; - -export default function() { - return ( -
testing
- ); -} diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/404.astro b/packages/integrations/deno/test/fixtures/basics/src/pages/404.astro deleted file mode 100644 index cc1c5761e..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/404.astro +++ /dev/null @@ -1 +0,0 @@ -

Custom 404 Page

diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/admin.astro b/packages/integrations/deno/test/fixtures/basics/src/pages/admin.astro deleted file mode 100644 index 8aa627394..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/admin.astro +++ /dev/null @@ -1,8 +0,0 @@ ---- -Astro.cookies.set('logged-in', false, { - maxAge: 60 * 60 * 24 * 900, - path: '/' -}); - -return Astro.redirect('/login'); ---- diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/index.astro b/packages/integrations/deno/test/fixtures/basics/src/pages/index.astro deleted file mode 100644 index 650f60062..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/index.astro +++ /dev/null @@ -1,17 +0,0 @@ ---- -import { someData } from '../util/data'; -import ReactComponent from '../components/React.jsx'; -const envValue = import.meta.env.SOME_VARIABLE; ---- - - - Basic App on Deno - - - -

Basic App on Deno

-

{envValue}

-

{someData.foo}

- - - diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/login.astro b/packages/integrations/deno/test/fixtures/basics/src/pages/login.astro deleted file mode 100644 index e06d49b85..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/login.astro +++ /dev/null @@ -1,10 +0,0 @@ ---- ---- - - - Testing - - -

Testing

- - diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/markdown.md b/packages/integrations/deno/test/fixtures/basics/src/pages/markdown.md deleted file mode 100644 index 2e8004113..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/markdown.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Title -description: Description ---- - -# Heading from Markdown diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/mdx.mdx b/packages/integrations/deno/test/fixtures/basics/src/pages/mdx.mdx deleted file mode 100644 index 6c76e8b8d..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/mdx.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Title -description: Description ---- - -# Heading from MDX diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/nodecompat.astro b/packages/integrations/deno/test/fixtures/basics/src/pages/nodecompat.astro deleted file mode 100644 index 6d666e504..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/nodecompat.astro +++ /dev/null @@ -1,15 +0,0 @@ ---- -// unprefixed node built-in module -import path from 'node:path' - -// prefixed node built-in module -import os from 'node:os' ---- - -Go to my file -
- CPU Architecture - {os.arch()} -
-

Everything went fine.

- diff --git a/packages/integrations/deno/test/fixtures/basics/src/pages/prerender.astro b/packages/integrations/deno/test/fixtures/basics/src/pages/prerender.astro deleted file mode 100644 index d19d3e6f9..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/pages/prerender.astro +++ /dev/null @@ -1,9 +0,0 @@ ---- -export const prerender = true; ---- - - - -

test

- - diff --git a/packages/integrations/deno/test/fixtures/basics/src/util/data.ts b/packages/integrations/deno/test/fixtures/basics/src/util/data.ts deleted file mode 100644 index a9b71d2d9..000000000 --- a/packages/integrations/deno/test/fixtures/basics/src/util/data.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface Data { - foo: string; -} - -export async function getData(): Promise { - return new Promise((resolve, _reject) => { - setTimeout(() => { - resolve({ foo: "bar" }); - }, 100); - }); -} - -// Testing top-level await, a feature supported in esnext -export const someData = await getData(); diff --git a/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs b/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs deleted file mode 100644 index 009023113..000000000 --- a/packages/integrations/deno/test/fixtures/dynimport/astro.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'astro/config'; -import deno from '@astrojs/deno'; - -export default defineConfig({ - adapter: deno(), - output: 'server' -}) diff --git a/packages/integrations/deno/test/fixtures/dynimport/package.json b/packages/integrations/deno/test/fixtures/dynimport/package.json deleted file mode 100644 index 5dcf7da6e..000000000 --- a/packages/integrations/deno/test/fixtures/dynimport/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@test/deno-astro-dynimport", - "version": "0.0.0", - "private": true, - "dependencies": { - "astro": "workspace:*", - "@astrojs/deno": "workspace:*" - } -} diff --git a/packages/integrations/deno/test/fixtures/dynimport/src/components/Thing.astro b/packages/integrations/deno/test/fixtures/dynimport/src/components/Thing.astro deleted file mode 100644 index 8d8ef929a..000000000 --- a/packages/integrations/deno/test/fixtures/dynimport/src/components/Thing.astro +++ /dev/null @@ -1,4 +0,0 @@ ---- - ---- -
testing
diff --git a/packages/integrations/deno/test/fixtures/dynimport/src/pages/index.astro b/packages/integrations/deno/test/fixtures/dynimport/src/pages/index.astro deleted file mode 100644 index 852cb6201..000000000 --- a/packages/integrations/deno/test/fixtures/dynimport/src/pages/index.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- -const { default: Thing } = await import('../components/Thing.astro'); ---- - - - testing - - - - - diff --git a/packages/integrations/deno/test/helpers.ts b/packages/integrations/deno/test/helpers.ts deleted file mode 100644 index ac451d963..000000000 --- a/packages/integrations/deno/test/helpers.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { fromFileUrl } from 'https://deno.land/std@0.110.0/path/mod.ts'; -import { assert } from 'https://deno.land/std@0.158.0/testing/asserts.ts'; -import { readableStreamFromReader } from 'https://deno.land/std@0.142.0/streams/conversion.ts'; - -const dir = new URL('./', import.meta.url); -const defaultURL = new URL('http://localhost:8085/'); - -export const defaultTestPermissions: Deno.PermissionOptions = { - read: true, - net: true, - run: true, - env: true, -}; - -declare type ExitCallback = () => void; - -export async function runBuild(fixturePath: string) { - const proc = Deno.run({ - cmd: ['node', '../../../../../astro/astro.js', 'build', '--silent'], - cwd: fromFileUrl(new URL(fixturePath, dir)), - }); - try { - const status = await proc.status(); - assert(status.success); - } finally { - proc.close(); - } -} - -export async function startModFromImport(baseUrl: URL): Promise { - const entryUrl = new URL('./dist/server/entry.mjs', baseUrl); - const mod = await import(entryUrl.toString()); - - if (!mod.running()) { - mod.start(); - } - - return () => mod.stop(); -} - -export async function startModFromSubprocess(baseUrl: URL): Promise { - const entryUrl = new URL('./dist/server/entry.mjs', baseUrl); - const proc = Deno.run({ - cmd: ['deno', 'run', '--allow-env', '--allow-net', fromFileUrl(entryUrl)], - cwd: fromFileUrl(baseUrl), - stderr: 'piped', - }); - - const stderr = readableStreamFromReader(proc.stderr); - const dec = new TextDecoder(); - for await (const bytes of stderr) { - const msg = dec.decode(bytes); - if (msg.includes(`Server running`)) { - break; - } - } - - return () => proc.close(); -} - -export async function runBuildAndStartApp(fixturePath: string) { - const url = new URL(fixturePath, dir); - - await runBuild(fixturePath); - const stop = await startModFromImport(url); - - return { url: defaultURL, stop }; -} - -export async function runBuildAndStartAppFromSubprocess(fixturePath: string) { - const url = new URL(fixturePath, dir); - - await runBuild(fixturePath); - const stop = await startModFromSubprocess(url); - - return { url: defaultURL, stop }; -} diff --git a/packages/integrations/deno/tsconfig.json b/packages/integrations/deno/tsconfig.json deleted file mode 100644 index d999917aa..000000000 --- a/packages/integrations/deno/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "include": ["src"], - "compilerOptions": { - "module": "ES2022", - "outDir": "./dist", - // TODO: Due to the shim for Deno imports in `server.ts`, we can't use moduleResolution: 'node16' or the types get very weird. - "moduleResolution": "Node" - } -}