diff --git a/.github/workflows/test-hosts.yml b/.github/workflows/test-hosts.yml new file mode 100644 index 000000000..906e35aa4 --- /dev/null +++ b/.github/workflows/test-hosts.yml @@ -0,0 +1,55 @@ +name: Hosted tests + +on: + schedule: + - cron: '0 0 * * 0' + +env: + ASTRO_TELEMETRY_DISABLED: true + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + VERCEL_ORG_ID: ${{ secrets.VERCEL_TEST_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_TEST_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_TEST_SITE_ID }} + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_TEST_AUTH_TOKEN }} + FORCE_COLOR: true + +jobs: + test: + name: Run tests + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v3 + + - name: Setup PNPM + uses: pnpm/action-setup@v2 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 18 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install + + - name: Install Hosts CLIs + run: pnpm install --global netlify-cli vercel + + - name: Deploy Vercel + working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project + run: + pnpm run build + vercel --prod --prebuilt + + - name: Deploy Netlify + working-directory: ./packages/integrations/netlify/test/hosted/hosted-astro-project + run: + pnpm run build + netlify deploy --prod + + - name: Test both hosts + run: + pnpm run test:e2e:hosts diff --git a/.gitignore b/.gitignore index 670993200..da6e08ed0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ dist/ *.tsbuildinfo .DS_Store .vercel +.netlify _site/ scripts/smoke/*-main/ scripts/memory/project/src/pages/ diff --git a/package.json b/package.json index 47eae4fbb..5ee1460e4 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "test:vite-ci": "turbo run test --filter=astro", "test:e2e": "cd packages/astro && pnpm playwright install && pnpm run test:e2e", "test:e2e:match": "cd packages/astro && pnpm playwright install && pnpm run test:e2e:match", + "test:e2e:hosts": "turbo run test:hosted", "benchmark": "astro-benchmark", "lint": "eslint . --report-unused-disable-directives", "version": "changeset version && node ./scripts/deps/update-example-versions.js && pnpm install --no-frozen-lockfile && pnpm run format", diff --git a/packages/integrations/netlify/package.json b/packages/integrations/netlify/package.json index bc076772f..fe7aa6d17 100644 --- a/packages/integrations/netlify/package.json +++ b/packages/integrations/netlify/package.json @@ -34,7 +34,8 @@ "dev": "astro-scripts dev \"src/**/*.ts\"", "test-fn": "mocha --exit --timeout 20000 --file \"./test/setup.js\" test/functions/", "test-edge": "deno test --allow-run --allow-read --allow-net --allow-env --allow-write ./test/edge-functions/", - "test": "pnpm test-fn" + "test": "pnpm test-fn", + "test:hosted": "mocha --exit --timeout 30000 test/hosted" }, "dependencies": { "@astrojs/underscore-redirects": "^0.2.0", diff --git a/packages/integrations/netlify/test/hosted/README.md b/packages/integrations/netlify/test/hosted/README.md new file mode 100644 index 000000000..8c1814844 --- /dev/null +++ b/packages/integrations/netlify/test/hosted/README.md @@ -0,0 +1,3 @@ +The tests in this folder are done directly on a deployed Netlify website (hosted at https://curious-boba-495d6d.netlify.app) and are not run by the test suite. They instead run every week through a GitHub action. + +The purpose of those tests is to make sure that everything works as expected while deployed. In a way, they're as E2E as it gets. diff --git a/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs b/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs new file mode 100644 index 000000000..48b1d4db1 --- /dev/null +++ b/packages/integrations/netlify/test/hosted/hosted-astro-project/astro.config.mjs @@ -0,0 +1,11 @@ +import netlify from '@astrojs/netlify'; +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({ + output: 'server', + adapter: netlify(), + experimental: { + assets: true, + }, +}); diff --git a/packages/integrations/netlify/test/hosted/hosted-astro-project/package.json b/packages/integrations/netlify/test/hosted/hosted-astro-project/package.json new file mode 100644 index 000000000..fa6f87aea --- /dev/null +++ b/packages/integrations/netlify/test/hosted/hosted-astro-project/package.json @@ -0,0 +1,12 @@ +{ + "name": "netlify-hosted-astro-project", + "version": "0.0.0", + "private": true, + "scripts": { + "build": "astro build" + }, + "dependencies": { + "@astrojs/netlify": "file:../../..", + "astro": "file:../../../../../astro" + } +} diff --git a/packages/integrations/netlify/test/hosted/hosted-astro-project/src/assets/penguin.png b/packages/integrations/netlify/test/hosted/hosted-astro-project/src/assets/penguin.png new file mode 100644 index 000000000..74cb5e8f3 Binary files /dev/null and b/packages/integrations/netlify/test/hosted/hosted-astro-project/src/assets/penguin.png differ diff --git a/packages/integrations/netlify/test/hosted/hosted-astro-project/src/env.d.ts b/packages/integrations/netlify/test/hosted/hosted-astro-project/src/env.d.ts new file mode 100644 index 000000000..f7cbe9c1d --- /dev/null +++ b/packages/integrations/netlify/test/hosted/hosted-astro-project/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/integrations/netlify/test/hosted/hosted-astro-project/src/pages/index.astro b/packages/integrations/netlify/test/hosted/hosted-astro-project/src/pages/index.astro new file mode 100644 index 000000000..256bfb407 --- /dev/null +++ b/packages/integrations/netlify/test/hosted/hosted-astro-project/src/pages/index.astro @@ -0,0 +1,6 @@ +--- +import { Image } from 'astro:assets'; +import penguin from '../assets/penguin.png'; +--- + + diff --git a/packages/integrations/netlify/test/hosted/hosted.test.js b/packages/integrations/netlify/test/hosted/hosted.test.js new file mode 100644 index 000000000..0ce531e4d --- /dev/null +++ b/packages/integrations/netlify/test/hosted/hosted.test.js @@ -0,0 +1,13 @@ +import { expect } from 'chai'; + +const NETLIFY_TEST_URL = 'https://curious-boba-495d6d.netlify.app'; + +describe('Hosted Netlify Tests', () => { + it('Image endpoint works', async () => { + const image = await fetch( + NETLIFY_TEST_URL + '/_image?href=%2F_astro%2Fpenguin.e9c64733.png&w=300&f=webp' + ); + + expect(image.status).to.equal(200); + }); +}); diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index 0437186f3..baf404065 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -47,7 +47,8 @@ "build": "astro-scripts build \"src/**/*.ts\" && tsc", "build:ci": "astro-scripts build \"src/**/*.ts\"", "dev": "astro-scripts dev \"src/**/*.ts\"", - "test": "mocha --exit --timeout 20000 --file \"./test/setup.js\" test/" + "test": "mocha --exit --timeout 20000 --file \"./test/setup.js\" test/ --ignore test/hosted", + "test:hosted": "mocha --exit --timeout 30000 test/hosted" }, "dependencies": { "@astrojs/internal-helpers": "^0.1.1", diff --git a/packages/integrations/vercel/test/hosted/README.md b/packages/integrations/vercel/test/hosted/README.md new file mode 100644 index 000000000..9dbb9bbc0 --- /dev/null +++ b/packages/integrations/vercel/test/hosted/README.md @@ -0,0 +1,3 @@ +The tests in this folder are done directly on a deployed Vercel website (hosted at https://astro-vercel-image-test.vercel.app) and are not run by the test suite. They instead run every week through a GitHub action. + +The purpose of those tests is to make sure that everything works as expected while deployed. In a way, they're as E2E as it gets. diff --git a/packages/integrations/vercel/test/hosted/hosted-astro-project/astro.config.mjs b/packages/integrations/vercel/test/hosted/hosted-astro-project/astro.config.mjs new file mode 100644 index 000000000..e84f7fda5 --- /dev/null +++ b/packages/integrations/vercel/test/hosted/hosted-astro-project/astro.config.mjs @@ -0,0 +1,11 @@ +import vercel from '@astrojs/vercel/serverless'; +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({ + output: 'server', + adapter: vercel(), + experimental: { + assets: true, + }, +}); diff --git a/packages/integrations/vercel/test/hosted/hosted-astro-project/package.json b/packages/integrations/vercel/test/hosted/hosted-astro-project/package.json new file mode 100644 index 000000000..e8bc2fb7d --- /dev/null +++ b/packages/integrations/vercel/test/hosted/hosted-astro-project/package.json @@ -0,0 +1,12 @@ +{ + "name": "vercel-hosted-astro-project", + "version": "0.0.0", + "private": true, + "scripts": { + "build": "astro build" + }, + "dependencies": { + "@astrojs/vercel": "file:../../..", + "astro": "file:../../../../../astro" + } +} diff --git a/packages/integrations/vercel/test/hosted/hosted-astro-project/src/assets/penguin.png b/packages/integrations/vercel/test/hosted/hosted-astro-project/src/assets/penguin.png new file mode 100644 index 000000000..74cb5e8f3 Binary files /dev/null and b/packages/integrations/vercel/test/hosted/hosted-astro-project/src/assets/penguin.png differ diff --git a/packages/integrations/vercel/test/hosted/hosted-astro-project/src/env.d.ts b/packages/integrations/vercel/test/hosted/hosted-astro-project/src/env.d.ts new file mode 100644 index 000000000..f7cbe9c1d --- /dev/null +++ b/packages/integrations/vercel/test/hosted/hosted-astro-project/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/integrations/vercel/test/hosted/hosted-astro-project/src/pages/index.astro b/packages/integrations/vercel/test/hosted/hosted-astro-project/src/pages/index.astro new file mode 100644 index 000000000..256bfb407 --- /dev/null +++ b/packages/integrations/vercel/test/hosted/hosted-astro-project/src/pages/index.astro @@ -0,0 +1,6 @@ +--- +import { Image } from 'astro:assets'; +import penguin from '../assets/penguin.png'; +--- + + diff --git a/packages/integrations/vercel/test/hosted/hosted.test.js b/packages/integrations/vercel/test/hosted/hosted.test.js new file mode 100644 index 000000000..f53daa85e --- /dev/null +++ b/packages/integrations/vercel/test/hosted/hosted.test.js @@ -0,0 +1,13 @@ +import { expect } from 'chai'; + +const VERCEL_TEST_URL = 'https://astro-vercel-image-test.vercel.app'; + +describe('Hosted Vercel Tests', () => { + it('Image endpoint works', async () => { + const image = await fetch( + VERCEL_TEST_URL + '/_image?href=%2F_astro%2Fpenguin.e9c64733.png&w=300&f=webp' + ); + + expect(image.status).to.equal(200); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 993836c76..a0ce06dba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4508,6 +4508,15 @@ importers: specifier: workspace:* version: link:../../../../../../astro + packages/integrations/netlify/test/hosted/hosted-astro-project: + dependencies: + '@astrojs/netlify': + specifier: file:../../.. + version: file:packages/integrations/netlify(astro@2.8.5) + astro: + specifier: file:../../../../../astro + version: file:packages/astro(@types/node@18.16.18) + packages/integrations/node: dependencies: '@astrojs/webapi': @@ -5011,6 +5020,15 @@ importers: specifier: workspace:* version: link:../../../../../astro + packages/integrations/vercel/test/hosted/hosted-astro-project: + dependencies: + '@astrojs/vercel': + specifier: file:../../.. + version: file:packages/integrations/vercel(astro@2.8.5) + astro: + specifier: file:../../../../../astro + version: file:packages/astro(@types/node@18.16.18) + packages/integrations/vue: dependencies: '@vitejs/plugin-vue': @@ -5545,6 +5563,10 @@ packages: /@astrojs/compiler@1.6.0: resolution: {integrity: sha512-vxuzp09jAW/ZQ8C4Itf6/OsF76TNjBQC06FNpcayKOzxYkCGHTLh7+0lF4ywmG/fDgSc+f1x7kKxxEKl4nqXvQ==} + /@astrojs/internal-helpers@0.1.1: + resolution: {integrity: sha512-+LySbvFbjv2nO2m/e78suleQOGEru4Cnx73VsZbrQgB2u7A4ddsQg3P2T0zC0e10jgcT+c6nNlKeLpa6nRhQIg==} + dev: false + /@astrojs/language-server@1.0.0: resolution: {integrity: sha512-oEw7AwJmzjgy6HC9f5IdrphZ1GVgfV/+7xQuyf52cpTiRWd/tJISK3MsKP0cDkVlfodmNABNFnAaAWuLZEiiiA==} hasBin: true @@ -5565,6 +5587,62 @@ packages: vscode-uri: 3.0.7 dev: false + /@astrojs/markdown-remark@2.2.1(astro@2.8.5): + resolution: {integrity: sha512-VF0HRv4GpC1XEMLnsKf6jth7JSmlt9qpqP0josQgA2eSpCIAC/Et+y94mgdBIZVBYH/yFnMoIxgKVe93xfO2GA==} + peerDependencies: + astro: '*' + dependencies: + '@astrojs/prism': 2.1.2 + astro: file:packages/astro(@types/node@18.16.18) + github-slugger: 1.5.0 + import-meta-resolve: 2.2.2 + rehype-raw: 6.1.1 + rehype-stringify: 9.0.3 + remark-gfm: 3.0.1 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + remark-smartypants: 2.0.0 + shiki: 0.14.1 + unified: 10.1.2 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@astrojs/prism@2.1.2: + resolution: {integrity: sha512-3antim1gb34689GHRQFJ88JEo93HuZKQBnmxDT5W/nxiNz1p/iRxnCTEhIbJhqMOTRbbo5h2ldm5qSxx+TMFQA==} + engines: {node: '>=16.12.0'} + dependencies: + prismjs: 1.29.0 + dev: false + + /@astrojs/telemetry@2.1.1: + resolution: {integrity: sha512-4pRhyeQr0MLB5PKYgkdu+YE8sSpMbHL8dUuslBWBIdgcYjtD1SufPMBI8pgXJ+xlwrQJHKKfK2X1KonHYuOS9A==} + engines: {node: '>=16.12.0'} + dependencies: + ci-info: 3.8.0 + debug: 4.3.4 + dlv: 1.1.3 + dset: 3.1.2 + is-docker: 3.0.0 + is-wsl: 2.2.0 + undici: 5.22.1 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@astrojs/underscore-redirects@0.2.0: + resolution: {integrity: sha512-TP+uEdqMGNC7Lyci6WmbHvvMElBDSyHlTsvGH9E9/2duvD/n4KJVyr59klycEroaZJiAi5tzlXL8Jsl9/R32gQ==} + dev: false + + /@astrojs/webapi@2.2.0: + resolution: {integrity: sha512-mHAOApWyjqSe5AQMOUD9rsZJqbMQqe3Wosb1a40JV6Okvyxj1G6GTlthwYadWCymq/lbgwh0PLiY8Fr4eFxtuQ==} + dependencies: + undici: 5.22.1 + dev: false + /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} @@ -5663,7 +5741,7 @@ packages: '@babel/helper-replace-supers': 7.21.5 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/helper-split-export-declaration': 7.22.5 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false @@ -5680,7 +5758,7 @@ packages: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 - semver: 6.3.0 + semver: 6.3.1 dev: false /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.22.5): @@ -5697,7 +5775,7 @@ packages: debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.2 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false @@ -7152,7 +7230,7 @@ packages: resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} dependencies: dataloader: 1.4.0 - node-fetch: 2.6.11 + node-fetch: 2.6.12 transitivePeerDependencies: - encoding dev: true @@ -7816,11 +7894,11 @@ packages: detect-libc: 2.0.1 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.6.11 + node-fetch: 2.6.12 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.3 + semver: 7.5.4 tar: 6.1.15 transitivePeerDependencies: - encoding @@ -8195,7 +8273,7 @@ packages: '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 is-plain-object: 5.0.0 - node-fetch: 2.6.11 + node-fetch: 2.6.12 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding @@ -8997,7 +9075,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.3 + semver: 7.5.4 ts-api-utils: 1.0.1(typescript@5.0.2) typescript: 5.0.2 transitivePeerDependencies: @@ -9018,7 +9096,7 @@ packages: '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.0.2) eslint: 8.43.0 eslint-scope: 5.1.1 - semver: 7.5.3 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript @@ -9660,7 +9738,7 @@ packages: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.22.5) - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color dev: false @@ -9868,7 +9946,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.3 + semver: 7.5.4 dev: true /bundle-name@3.0.0: @@ -10254,7 +10332,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.5.3 + semver: 7.5.4 well-known-symbols: 2.0.0 dev: false @@ -13351,7 +13429,7 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: - semver: 6.3.0 + semver: 6.3.1 dev: false /manage-path@2.0.0: @@ -14278,6 +14356,14 @@ packages: typescript: 5.0.2 dev: false + /network-information-types@0.1.1(typescript@5.0.4): + resolution: {integrity: sha512-mLXNafJYOkiJB6IlF727YWssTRpXitR+tKSLyA5VAdBi3SOvLf5gtizHgxf241YHPWocnAO/fAhVrB/68tPHDw==} + peerDependencies: + typescript: '>= 3.0.0' + dependencies: + typescript: 5.0.4 + dev: false + /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true @@ -14305,7 +14391,7 @@ packages: resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==} engines: {node: '>=10'} dependencies: - semver: 7.5.3 + semver: 7.5.4 /node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} @@ -14319,8 +14405,8 @@ packages: resolution: {integrity: sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==} dev: false - /node-fetch@2.6.11: - resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -14440,7 +14526,7 @@ packages: dependencies: execa: 6.1.0 parse-package-name: 1.0.0 - semver: 7.5.3 + semver: 7.5.4 validate-npm-package-name: 4.0.0 dev: true @@ -16111,6 +16197,11 @@ packages: hasBin: true dev: false + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: false + /semver@7.5.2: resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==} engines: {node: '>=10'} @@ -16126,6 +16217,13 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -17142,6 +17240,12 @@ packages: engines: {node: '>=12.20'} hasBin: true + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: false + /ufo@1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} dev: false @@ -18283,6 +18387,87 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + file:packages/astro(@types/node@18.16.18): + resolution: {directory: packages/astro, type: directory} + id: file:packages/astro + name: astro + version: 2.8.5 + engines: {node: '>=16.12.0', npm: '>=6.14.0'} + hasBin: true + peerDependencies: + sharp: '>=0.31.0' + peerDependenciesMeta: + sharp: + optional: true + dependencies: + '@astrojs/compiler': 1.6.0 + '@astrojs/internal-helpers': 0.1.1 + '@astrojs/language-server': 1.0.0 + '@astrojs/markdown-remark': 2.2.1(astro@2.8.5) + '@astrojs/telemetry': 2.1.1 + '@astrojs/webapi': 2.2.0 + '@babel/core': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + '@types/babel__core': 7.20.1 + '@types/dom-view-transitions': 1.0.1 + '@types/yargs-parser': 21.0.0 + acorn: 8.9.0 + boxen: 6.2.1 + chokidar: 3.5.3 + ci-info: 3.8.0 + common-ancestor-path: 1.0.1 + cookie: 0.5.0 + debug: 4.3.4 + deepmerge-ts: 4.3.0 + devalue: 4.3.2 + diff: 5.1.0 + es-module-lexer: 1.3.0 + esbuild: 0.17.19 + estree-walker: 3.0.0 + execa: 6.1.0 + fast-glob: 3.2.12 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.27.0 + mime: 3.0.0 + network-information-types: 0.1.1(typescript@5.0.4) + ora: 6.3.1 + p-limit: 4.0.0 + path-to-regexp: 6.2.1 + preferred-pm: 3.0.3 + prompts: 2.4.2 + rehype: 12.0.1 + semver: 7.5.4 + server-destroy: 1.0.1 + shiki: 0.14.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + tsconfig-resolver: 3.0.1 + typescript: 5.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4) + vitefu: 0.2.4(vite@4.3.9) + which-pm: 2.0.0 + yargs-parser: 21.1.1 + zod: 3.20.6 + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + file:packages/astro/test/fixtures/astro-client-only/pkg: resolution: {directory: packages/astro/test/fixtures/astro-client-only/pkg, type: directory} name: '@test/astro-client-only-pkg' @@ -18313,3 +18498,41 @@ packages: dependencies: solid-js: 1.7.6 dev: false + + file:packages/integrations/netlify(astro@2.8.5): + resolution: {directory: packages/integrations/netlify, type: directory} + id: file:packages/integrations/netlify + name: '@astrojs/netlify' + version: 2.5.0 + peerDependencies: + astro: '*' + dependencies: + '@astrojs/underscore-redirects': 0.2.0 + '@astrojs/webapi': 2.2.0 + '@netlify/functions': 1.6.0 + astro: file:packages/astro(@types/node@18.16.18) + esbuild: 0.15.18 + dev: false + + file:packages/integrations/vercel(astro@2.8.5): + resolution: {directory: packages/integrations/vercel, type: directory} + id: file:packages/integrations/vercel + name: '@astrojs/vercel' + version: 3.7.3 + peerDependencies: + astro: '*' + dependencies: + '@astrojs/internal-helpers': 0.1.1 + '@astrojs/webapi': 2.2.0 + '@vercel/analytics': 0.1.11 + '@vercel/nft': 0.22.6 + astro: file:packages/astro(@types/node@18.16.18) + esbuild: 0.17.19 + fast-glob: 3.2.12 + set-cookie-parser: 2.6.0 + web-vitals: 3.3.2 + transitivePeerDependencies: + - encoding + - react + - supports-color + dev: false diff --git a/turbo.json b/turbo.json index 158618ffe..d95246aef 100644 --- a/turbo.json +++ b/turbo.json @@ -38,6 +38,10 @@ "test": { "env": ["RUNNER_OS", "NODE_VERSION"], "outputMode": "new-only" + }, + "test:hosted": { + "outputMode": "new-only", + "cache": false } } }