From 519a1c4e8407c7abcb8d879b67a9f4b960652cae Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Fri, 11 Aug 2023 10:05:02 -0400 Subject: [PATCH 1/4] JSX refactor (#7924) * JSX refactor * Get preact/compat test to pass * Use include config * Remove old astro flavored markdown test * Move babel dep to preact * Remove errant debugger * Update lockfile * Update the multi-framework example * Update e2e tests * Fix nested-in-vue tests * Add back in astro check * Update packages/astro/src/core/create-vite.ts Co-authored-by: Nate Moore * Update packages/astro/src/core/create-vite.ts Co-authored-by: Nate Moore * Update packages/integrations/solid/src/index.ts Co-authored-by: Nate Moore * Update packages/integrations/solid/src/index.ts Co-authored-by: Nate Moore * Update .changeset/perfect-horses-tell.md Co-authored-by: Nate Moore * Move the comment about the include config * Remove redundant alias config * Use react's own preamble code * Use the base for the preamble * Remove solid redundancy * Update .changeset/perfect-horses-tell.md Co-authored-by: Sarah Rainsberger * Update based on review comments * Oops --------- Co-authored-by: Fred K. Schott Co-authored-by: Nate Moore Co-authored-by: Sarah Rainsberger --- .changeset/cool-feet-rest.md | 7 + .changeset/large-countries-share.md | 7 + .changeset/perfect-horses-tell.md | 27 + .changeset/slimy-carrots-sell.md | 9 + examples/framework-multiple/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.tsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../framework-multiple/src/pages/index.astro | 10 +- packages/astro/e2e/errors.test.js | 4 +- .../e2e/fixtures/client-only/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../client-only/src/pages/index.astro | 10 +- .../e2e/fixtures/errors/astro.config.mjs | 10 +- .../{ => preact}/PreactRuntimeError.jsx | 0 .../{ => preact}/PreactSyntaxError.jsx | 0 .../{ => react}/ReactRuntimeError.jsx | 0 .../{ => react}/ReactSyntaxError.jsx | 0 .../{ => solid}/SolidRuntimeError.jsx | 0 .../{ => solid}/SolidSyntaxError.jsx | 0 .../{ => svelte}/SvelteDirectiveError.svelte | 0 .../{ => svelte}/SvelteRuntimeError.svelte | 0 .../{ => svelte}/SvelteSyntaxError.svelte | 0 .../components/{ => vue}/VueRuntimeError.vue | 0 .../components/{ => vue}/VueSyntaxError.vue | 0 .../src/pages/astro-client-media-error.astro | 4 +- .../src/pages/astro-hydration-error.astro | 4 +- .../src/pages/preact-runtime-error.astro | 2 +- .../src/pages/preact-syntax-error.astro | 2 +- .../src/pages/react-runtime-error.astro | 2 +- .../errors/src/pages/react-syntax-error.astro | 2 +- .../src/pages/solid-runtime-error.astro | 2 +- .../errors/src/pages/solid-syntax-error.astro | 2 +- .../src/pages/svelte-runtime-error.astro | 2 +- .../src/pages/svelte-syntax-error.astro | 2 +- .../errors/src/pages/vue-runtime-error.astro | 2 +- .../errors/src/pages/vue-syntax-error.astro | 2 +- .../multiple-frameworks/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../multiple-frameworks/src/pages/index.astro | 10 +- .../nested-in-preact/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../nested-in-preact/src/pages/index.astro | 10 +- .../fixtures/nested-in-react/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../nested-in-react/src/pages/index.astro | 10 +- .../fixtures/nested-in-solid/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../nested-in-solid/src/pages/index.astro | 10 +- .../nested-in-svelte/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../nested-in-svelte/src/pages/index.astro | 10 +- .../fixtures/nested-in-vue/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../nested-in-vue/src/pages/index.astro | 10 +- .../nested-recursive/astro.config.mjs | 8 +- .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 0 .../components/{ => solid}/SolidCounter.tsx | 0 .../{ => svelte}/SvelteCounter.svelte | 0 .../src/components/{ => vue}/VueCounter.vue | 0 .../nested-recursive/src/pages/index.astro | 10 +- .../core/build/plugins/plugin-renderers.ts | 2 + packages/astro/src/core/config/settings.ts | 3 +- packages/astro/src/core/create-vite.ts | 4 +- packages/astro/src/vite-plugin-jsx/index.ts | 251 --------- .../astro/src/vite-plugin-markdown/index.ts | 42 +- .../README.md | 0 .../import-source.ts | 0 packages/astro/src/vite-plugin-mdx/index.ts | 134 +++++ .../tag.ts | 0 .../astro-slots-nested/astro.config.mjs | 6 +- .../{ => preact}/PassesChildrenP.tsx | 0 .../src/components/{ => react}/Inner.tsx | 0 .../src/components/{ => react}/Parent.jsx | 0 .../components/{ => react}/PassesChildren.tsx | 0 .../{ => solid}/PassesChildrenS.tsx | 0 .../src/pages/component-slot.astro | 2 +- .../src/pages/hidden-nested.astro | 4 +- .../src/pages/server-component-nested.astro | 6 +- .../astro/test/fixtures/jsx/astro.config.mjs | 19 +- packages/astro/test/fixtures/jsx/package.json | 1 + .../fixtures/jsx/src/components/Content.mdx | 5 + .../jsx/src/components/Frameworks.jsx | 28 - .../components/{ => preact}/PreactCounter.tsx | 0 .../components/{ => react}/ReactCounter.jsx | 2 + .../components/{ => solid}/SolidCounter.jsx | 0 .../fixtures/jsx/src/pages/frameworks.astro | 34 +- .../packages/react-lib/index.js | 2 +- .../src/components/Counter.jsx | 1 - .../tailwindcss/src/pages/markdown-page.md | 11 - packages/astro/test/jsx.test.js | 28 +- .../test/preact-compat-component.test.js | 29 +- packages/astro/test/tailwindcss.test.js | 9 +- packages/astro/test/test-utils.js | 2 +- packages/integrations/mdx/src/index.ts | 4 +- packages/integrations/preact/package.json | 5 +- packages/integrations/preact/src/index.ts | 122 ++--- packages/integrations/preact/src/server.ts | 4 +- packages/integrations/react/package.json | 4 +- packages/integrations/react/src/index.ts | 44 +- packages/integrations/solid/package.json | 3 +- .../integrations/solid/src/dependencies.ts | 27 - packages/integrations/solid/src/index.ts | 79 +-- pnpm-lock.yaml | 486 +++++++++++------- 135 files changed, 856 insertions(+), 801 deletions(-) create mode 100644 .changeset/cool-feet-rest.md create mode 100644 .changeset/large-countries-share.md create mode 100644 .changeset/perfect-horses-tell.md create mode 100644 .changeset/slimy-carrots-sell.md rename examples/framework-multiple/src/components/{ => preact}/PreactCounter.tsx (100%) rename examples/framework-multiple/src/components/{ => react}/ReactCounter.tsx (100%) rename examples/framework-multiple/src/components/{ => solid}/SolidCounter.tsx (100%) rename examples/framework-multiple/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename examples/framework-multiple/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/client-only/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/client-only/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/client-only/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/client-only/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/client-only/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => preact}/PreactRuntimeError.jsx (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => preact}/PreactSyntaxError.jsx (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => react}/ReactRuntimeError.jsx (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => react}/ReactSyntaxError.jsx (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => solid}/SolidRuntimeError.jsx (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => solid}/SolidSyntaxError.jsx (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => svelte}/SvelteDirectiveError.svelte (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => svelte}/SvelteRuntimeError.svelte (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => svelte}/SvelteSyntaxError.svelte (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => vue}/VueRuntimeError.vue (100%) rename packages/astro/e2e/fixtures/errors/src/components/{ => vue}/VueSyntaxError.vue (100%) rename packages/astro/e2e/fixtures/multiple-frameworks/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/multiple-frameworks/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/multiple-frameworks/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/multiple-frameworks/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/multiple-frameworks/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/nested-in-preact/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-preact/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/nested-in-preact/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-preact/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/nested-in-preact/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/nested-in-react/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-react/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/nested-in-react/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-react/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/nested-in-react/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/nested-in-solid/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-solid/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/nested-in-solid/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-solid/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/nested-in-solid/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/nested-in-svelte/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-svelte/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/nested-in-svelte/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-svelte/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/nested-in-svelte/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/nested-in-vue/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-vue/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/nested-in-vue/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-in-vue/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/nested-in-vue/src/components/{ => vue}/VueCounter.vue (100%) rename packages/astro/e2e/fixtures/nested-recursive/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-recursive/src/components/{ => react}/ReactCounter.jsx (100%) rename packages/astro/e2e/fixtures/nested-recursive/src/components/{ => solid}/SolidCounter.tsx (100%) rename packages/astro/e2e/fixtures/nested-recursive/src/components/{ => svelte}/SvelteCounter.svelte (100%) rename packages/astro/e2e/fixtures/nested-recursive/src/components/{ => vue}/VueCounter.vue (100%) delete mode 100644 packages/astro/src/vite-plugin-jsx/index.ts rename packages/astro/src/{vite-plugin-jsx => vite-plugin-mdx}/README.md (100%) rename packages/astro/src/{vite-plugin-jsx => vite-plugin-mdx}/import-source.ts (100%) create mode 100644 packages/astro/src/vite-plugin-mdx/index.ts rename packages/astro/src/{vite-plugin-jsx => vite-plugin-mdx}/tag.ts (100%) rename packages/astro/test/fixtures/astro-slots-nested/src/components/{ => preact}/PassesChildrenP.tsx (100%) rename packages/astro/test/fixtures/astro-slots-nested/src/components/{ => react}/Inner.tsx (100%) rename packages/astro/test/fixtures/astro-slots-nested/src/components/{ => react}/Parent.jsx (100%) rename packages/astro/test/fixtures/astro-slots-nested/src/components/{ => react}/PassesChildren.tsx (100%) rename packages/astro/test/fixtures/astro-slots-nested/src/components/{ => solid}/PassesChildrenS.tsx (100%) create mode 100644 packages/astro/test/fixtures/jsx/src/components/Content.mdx delete mode 100644 packages/astro/test/fixtures/jsx/src/components/Frameworks.jsx rename packages/astro/test/fixtures/jsx/src/components/{ => preact}/PreactCounter.tsx (100%) rename packages/astro/test/fixtures/jsx/src/components/{ => react}/ReactCounter.jsx (97%) rename packages/astro/test/fixtures/jsx/src/components/{ => solid}/SolidCounter.jsx (100%) delete mode 100644 packages/astro/test/fixtures/tailwindcss/src/pages/markdown-page.md delete mode 100644 packages/integrations/solid/src/dependencies.ts diff --git a/.changeset/cool-feet-rest.md b/.changeset/cool-feet-rest.md new file mode 100644 index 000000000000..c2e724d8002c --- /dev/null +++ b/.changeset/cool-feet-rest.md @@ -0,0 +1,7 @@ +--- +'@astrojs/solid-js': major +--- + +New `include` and `exclude` config options + +The Solid integration now has new `include` and `exclude` config options. Use these if you want to use Solid alongside another JSX framework; include specifies files to be compiled for Solid and `exclude` does the opposite. diff --git a/.changeset/large-countries-share.md b/.changeset/large-countries-share.md new file mode 100644 index 000000000000..b3101d2f2225 --- /dev/null +++ b/.changeset/large-countries-share.md @@ -0,0 +1,7 @@ +--- +'@astrojs/preact': major +--- + +New `include` and `exclude` config options + +The Preact integration now has new `include` and `exclude` config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and `exclude` does the opposite. diff --git a/.changeset/perfect-horses-tell.md b/.changeset/perfect-horses-tell.md new file mode 100644 index 000000000000..7723c665f4c2 --- /dev/null +++ b/.changeset/perfect-horses-tell.md @@ -0,0 +1,27 @@ +--- +'astro': major +--- + +Astro's JSX handling has been refactored with better support for each framework. + +Previously, Astro automatically scanned your components to determine which framework-specific transformations should be used. In practice, supporting advanced features like Fast Refresh with this approach proved difficult. + +Now, Astro determines which framework to use with `include` and `exclude` config options where you can specify files and folders on a per-framework basis. When using multiple JSX frameworks in the same project, users should manually control which files belong to each framework using the `include` and `exclude` options. + +```js +export default defineConfig({ + // The `include` config is only needed in projects that use multiple JSX frameworks; + // if only using one no extra config is needed. + integrations: [ + preact({ + include: ['**/preact/*'] + }), + react({ + include: ['**/react/*'] + }), + solid({ + include: ['**/solid/*'], + }), + ] +}); +``` diff --git a/.changeset/slimy-carrots-sell.md b/.changeset/slimy-carrots-sell.md new file mode 100644 index 000000000000..c1c9e694f56f --- /dev/null +++ b/.changeset/slimy-carrots-sell.md @@ -0,0 +1,9 @@ +--- +'@astrojs/react': major +--- + +Support for React Refresh + +The React integration now fully supports React Refresh and is backed by `@vitejs/plugin-react`. + +Also included in this change are new `include` and `exclude` config options. Use these if you want to use React alongside another JSX framework; include specifies files to be compiled for React and `exclude` does the opposite. diff --git a/examples/framework-multiple/astro.config.mjs b/examples/framework-multiple/astro.config.mjs index 4b50887cd70c..36f75aec2610 100644 --- a/examples/framework-multiple/astro.config.mjs +++ b/examples/framework-multiple/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + react({ include: ['**/react/*'] }), + svelte(), + vue(), + ], }); diff --git a/examples/framework-multiple/src/components/PreactCounter.tsx b/examples/framework-multiple/src/components/preact/PreactCounter.tsx similarity index 100% rename from examples/framework-multiple/src/components/PreactCounter.tsx rename to examples/framework-multiple/src/components/preact/PreactCounter.tsx diff --git a/examples/framework-multiple/src/components/ReactCounter.tsx b/examples/framework-multiple/src/components/react/ReactCounter.tsx similarity index 100% rename from examples/framework-multiple/src/components/ReactCounter.tsx rename to examples/framework-multiple/src/components/react/ReactCounter.tsx diff --git a/examples/framework-multiple/src/components/SolidCounter.tsx b/examples/framework-multiple/src/components/solid/SolidCounter.tsx similarity index 100% rename from examples/framework-multiple/src/components/SolidCounter.tsx rename to examples/framework-multiple/src/components/solid/SolidCounter.tsx diff --git a/examples/framework-multiple/src/components/SvelteCounter.svelte b/examples/framework-multiple/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from examples/framework-multiple/src/components/SvelteCounter.svelte rename to examples/framework-multiple/src/components/svelte/SvelteCounter.svelte diff --git a/examples/framework-multiple/src/components/VueCounter.vue b/examples/framework-multiple/src/components/vue/VueCounter.vue similarity index 100% rename from examples/framework-multiple/src/components/VueCounter.vue rename to examples/framework-multiple/src/components/vue/VueCounter.vue diff --git a/examples/framework-multiple/src/pages/index.astro b/examples/framework-multiple/src/pages/index.astro index 94630aa1ebfb..ccf5aaa715af 100644 --- a/examples/framework-multiple/src/pages/index.astro +++ b/examples/framework-multiple/src/pages/index.astro @@ -4,12 +4,12 @@ import '../styles/global.css'; // Component Imports // For JSX components, all the common ways of exporting (under a namespace, specific export, default export etc) are supported! -import * as react from '../components/ReactCounter'; -import { PreactCounter } from '../components/PreactCounter'; -import SolidCounter from '../components/SolidCounter'; +import * as react from '../components/react/ReactCounter'; +import { PreactCounter } from '../components/preact/PreactCounter'; +import SolidCounter from '../components/solid/SolidCounter'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/errors.test.js b/packages/astro/e2e/errors.test.js index e23b22c654cb..2a5a83acecc4 100644 --- a/packages/astro/e2e/errors.test.js +++ b/packages/astro/e2e/errors.test.js @@ -75,7 +75,7 @@ test.describe('Error display', () => { const fileExists = astro.pathExists(absoluteFileUrl); expect(fileExists).toBeTruthy(); - expect(fileLocation).toMatch(/^components\/PreactRuntimeError.jsx/); + expect(fileLocation).toMatch(/^preact\/PreactRuntimeError.jsx/); }); test('shows correct line when a style preprocess has an error', async ({ page, astro }) => { @@ -105,7 +105,7 @@ test.describe('Error display', () => { // Wait for page reload page.waitForNavigation(), // Edit the component file - astro.editFile('./src/components/SvelteSyntaxError.svelte', () => `

No mismatch

`), + astro.editFile('./src/components/svelte/SvelteSyntaxError.svelte', () => `

No mismatch

`), ]); expect(await page.locator('vite-error-overlay').count()).toEqual(0); diff --git a/packages/astro/e2e/fixtures/client-only/astro.config.mjs b/packages/astro/e2e/fixtures/client-only/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/client-only/astro.config.mjs +++ b/packages/astro/e2e/fixtures/client-only/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/client-only/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/client-only/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/client-only/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/client-only/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/client-only/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/client-only/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/client-only/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/client-only/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/client-only/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/client-only/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/client-only/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/client-only/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/client-only/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/client-only/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/client-only/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/client-only/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/client-only/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/client-only/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/client-only/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/client-only/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/client-only/src/pages/index.astro b/packages/astro/e2e/fixtures/client-only/src/pages/index.astro index 708ba1582dc9..0b4299600881 100644 --- a/packages/astro/e2e/fixtures/client-only/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/client-only/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import * as react from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import * as react from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.jsx'; +import SolidCounter from '../components/solid/SolidCounter.jsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/errors/astro.config.mjs b/packages/astro/e2e/fixtures/errors/astro.config.mjs index 8f27d8fabf35..48e8736bdba7 100644 --- a/packages/astro/e2e/fixtures/errors/astro.config.mjs +++ b/packages/astro/e2e/fixtures/errors/astro.config.mjs @@ -7,5 +7,11 @@ import vue from '@astrojs/vue'; // https://astro.build/config export default defineConfig({ - integrations: [react(), preact(), solid(), svelte(), vue()], -}); \ No newline at end of file + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], +}); diff --git a/packages/astro/e2e/fixtures/errors/src/components/PreactRuntimeError.jsx b/packages/astro/e2e/fixtures/errors/src/components/preact/PreactRuntimeError.jsx similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/PreactRuntimeError.jsx rename to packages/astro/e2e/fixtures/errors/src/components/preact/PreactRuntimeError.jsx diff --git a/packages/astro/e2e/fixtures/errors/src/components/PreactSyntaxError.jsx b/packages/astro/e2e/fixtures/errors/src/components/preact/PreactSyntaxError.jsx similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/PreactSyntaxError.jsx rename to packages/astro/e2e/fixtures/errors/src/components/preact/PreactSyntaxError.jsx diff --git a/packages/astro/e2e/fixtures/errors/src/components/ReactRuntimeError.jsx b/packages/astro/e2e/fixtures/errors/src/components/react/ReactRuntimeError.jsx similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/ReactRuntimeError.jsx rename to packages/astro/e2e/fixtures/errors/src/components/react/ReactRuntimeError.jsx diff --git a/packages/astro/e2e/fixtures/errors/src/components/ReactSyntaxError.jsx b/packages/astro/e2e/fixtures/errors/src/components/react/ReactSyntaxError.jsx similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/ReactSyntaxError.jsx rename to packages/astro/e2e/fixtures/errors/src/components/react/ReactSyntaxError.jsx diff --git a/packages/astro/e2e/fixtures/errors/src/components/SolidRuntimeError.jsx b/packages/astro/e2e/fixtures/errors/src/components/solid/SolidRuntimeError.jsx similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/SolidRuntimeError.jsx rename to packages/astro/e2e/fixtures/errors/src/components/solid/SolidRuntimeError.jsx diff --git a/packages/astro/e2e/fixtures/errors/src/components/SolidSyntaxError.jsx b/packages/astro/e2e/fixtures/errors/src/components/solid/SolidSyntaxError.jsx similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/SolidSyntaxError.jsx rename to packages/astro/e2e/fixtures/errors/src/components/solid/SolidSyntaxError.jsx diff --git a/packages/astro/e2e/fixtures/errors/src/components/SvelteDirectiveError.svelte b/packages/astro/e2e/fixtures/errors/src/components/svelte/SvelteDirectiveError.svelte similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/SvelteDirectiveError.svelte rename to packages/astro/e2e/fixtures/errors/src/components/svelte/SvelteDirectiveError.svelte diff --git a/packages/astro/e2e/fixtures/errors/src/components/SvelteRuntimeError.svelte b/packages/astro/e2e/fixtures/errors/src/components/svelte/SvelteRuntimeError.svelte similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/SvelteRuntimeError.svelte rename to packages/astro/e2e/fixtures/errors/src/components/svelte/SvelteRuntimeError.svelte diff --git a/packages/astro/e2e/fixtures/errors/src/components/SvelteSyntaxError.svelte b/packages/astro/e2e/fixtures/errors/src/components/svelte/SvelteSyntaxError.svelte similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/SvelteSyntaxError.svelte rename to packages/astro/e2e/fixtures/errors/src/components/svelte/SvelteSyntaxError.svelte diff --git a/packages/astro/e2e/fixtures/errors/src/components/VueRuntimeError.vue b/packages/astro/e2e/fixtures/errors/src/components/vue/VueRuntimeError.vue similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/VueRuntimeError.vue rename to packages/astro/e2e/fixtures/errors/src/components/vue/VueRuntimeError.vue diff --git a/packages/astro/e2e/fixtures/errors/src/components/VueSyntaxError.vue b/packages/astro/e2e/fixtures/errors/src/components/vue/VueSyntaxError.vue similarity index 100% rename from packages/astro/e2e/fixtures/errors/src/components/VueSyntaxError.vue rename to packages/astro/e2e/fixtures/errors/src/components/vue/VueSyntaxError.vue diff --git a/packages/astro/e2e/fixtures/errors/src/pages/astro-client-media-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/astro-client-media-error.astro index 46bb9a2c459f..94e124c9a475 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/astro-client-media-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/astro-client-media-error.astro @@ -1,7 +1,7 @@ --- -import SvelteDirectiveError from '../components/SvelteDirectiveError.svelte'; +import SvelteDirectiveError from '../components/svelte/SvelteDirectiveError.svelte'; ---
-
\ No newline at end of file + diff --git a/packages/astro/e2e/fixtures/errors/src/pages/astro-hydration-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/astro-hydration-error.astro index 1852539eb0c7..8fcd56bd41cf 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/astro-hydration-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/astro-hydration-error.astro @@ -1,7 +1,7 @@ --- -import SvelteDirectiveError from '../components/SvelteDirectiveError.svelte'; +import SvelteDirectiveError from '../components/svelte/SvelteDirectiveError.svelte'; ---
-
\ No newline at end of file + diff --git a/packages/astro/e2e/fixtures/errors/src/pages/preact-runtime-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/preact-runtime-error.astro index 5c0aa2526b7e..17ad92808a97 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/preact-runtime-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/preact-runtime-error.astro @@ -1,5 +1,5 @@ --- -import PreactRuntimeError from '../components/PreactRuntimeError.jsx'; +import PreactRuntimeError from '../components/preact/PreactRuntimeError.jsx'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/preact-syntax-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/preact-syntax-error.astro index 6748b0366931..b0f709b9d1ff 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/preact-syntax-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/preact-syntax-error.astro @@ -1,5 +1,5 @@ --- -import PreactSyntaxError from '../components/PreactSyntaxError.jsx'; +import PreactSyntaxError from '../components/preact/PreactSyntaxError.jsx'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/react-runtime-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/react-runtime-error.astro index f1df8ec992e2..18490518e8f8 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/react-runtime-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/react-runtime-error.astro @@ -1,5 +1,5 @@ --- -import ReactRuntimeError from '../components/ReactRuntimeError.jsx'; +import ReactRuntimeError from '../components/react/ReactRuntimeError.jsx'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/react-syntax-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/react-syntax-error.astro index 6e61ae31db33..c11b49ae0726 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/react-syntax-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/react-syntax-error.astro @@ -1,5 +1,5 @@ --- -import ReactSyntaxError from '../components/ReactSyntaxError.jsx'; +import ReactSyntaxError from '../components/react/ReactSyntaxError.jsx'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/solid-runtime-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/solid-runtime-error.astro index 51a2608bd76d..7d4160126d61 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/solid-runtime-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/solid-runtime-error.astro @@ -1,5 +1,5 @@ --- -import SolidRuntimeError from '../components/SolidRuntimeError.jsx'; +import SolidRuntimeError from '../components/solid/SolidRuntimeError.jsx'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/solid-syntax-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/solid-syntax-error.astro index 0fdbad25b9c9..028ab9ede91c 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/solid-syntax-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/solid-syntax-error.astro @@ -1,5 +1,5 @@ --- -import SolidSyntaxError from '../components/SolidSyntaxError.jsx'; +import SolidSyntaxError from '../components/solid/SolidSyntaxError.jsx'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/svelte-runtime-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/svelte-runtime-error.astro index ec499f6db552..662a48f0e6f8 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/svelte-runtime-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/svelte-runtime-error.astro @@ -1,5 +1,5 @@ --- -import SvelteRuntimeError from '../components/SvelteRuntimeError.svelte'; +import SvelteRuntimeError from '../components/svelte/SvelteRuntimeError.svelte'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/svelte-syntax-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/svelte-syntax-error.astro index 26c14c15ea61..e275251a4757 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/svelte-syntax-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/svelte-syntax-error.astro @@ -1,5 +1,5 @@ --- -import SvelteSyntaxError from '../components/SvelteSyntaxError.svelte'; +import SvelteSyntaxError from '../components/svelte/SvelteSyntaxError.svelte'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/vue-runtime-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/vue-runtime-error.astro index b63f85e63309..698da561f364 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/vue-runtime-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/vue-runtime-error.astro @@ -1,5 +1,5 @@ --- -import VueRuntimeError from '../components/VueRuntimeError.vue'; +import VueRuntimeError from '../components/vue/VueRuntimeError.vue'; ---
diff --git a/packages/astro/e2e/fixtures/errors/src/pages/vue-syntax-error.astro b/packages/astro/e2e/fixtures/errors/src/pages/vue-syntax-error.astro index 8db897fe1197..c76ed16fe66a 100644 --- a/packages/astro/e2e/fixtures/errors/src/pages/vue-syntax-error.astro +++ b/packages/astro/e2e/fixtures/errors/src/pages/vue-syntax-error.astro @@ -1,5 +1,5 @@ --- -import VueSyntaxError from '../components/VueSyntaxError.vue'; +import VueSyntaxError from '../components/vue/VueSyntaxError.vue'; ---
diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/astro.config.mjs b/packages/astro/e2e/fixtures/multiple-frameworks/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/multiple-frameworks/astro.config.mjs +++ b/packages/astro/e2e/fixtures/multiple-frameworks/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/multiple-frameworks/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/multiple-frameworks/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/multiple-frameworks/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/multiple-frameworks/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/multiple-frameworks/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/multiple-frameworks/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/multiple-frameworks/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/multiple-frameworks/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/multiple-frameworks/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/multiple-frameworks/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/multiple-frameworks/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/multiple-frameworks/src/pages/index.astro b/packages/astro/e2e/fixtures/multiple-frameworks/src/pages/index.astro index a30688bca8ae..747744852c8c 100644 --- a/packages/astro/e2e/fixtures/multiple-frameworks/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/multiple-frameworks/src/pages/index.astro @@ -3,11 +3,11 @@ import '../styles/global.css'; // Component Imports import { A, B as Renamed } from '../components'; -import * as react from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import * as react from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/nested-in-preact/astro.config.mjs b/packages/astro/e2e/fixtures/nested-in-preact/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/nested-in-preact/astro.config.mjs +++ b/packages/astro/e2e/fixtures/nested-in-preact/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/nested-in-preact/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/nested-in-preact/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-preact/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-preact/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-preact/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/nested-in-preact/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-preact/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/nested-in-preact/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/nested-in-preact/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/nested-in-preact/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-preact/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-preact/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-preact/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/nested-in-preact/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-preact/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/nested-in-preact/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/nested-in-preact/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/nested-in-preact/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-preact/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/nested-in-preact/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/nested-in-preact/src/pages/index.astro b/packages/astro/e2e/fixtures/nested-in-preact/src/pages/index.astro index 619e8cccd0ae..7512b86f4dd6 100644 --- a/packages/astro/e2e/fixtures/nested-in-preact/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/nested-in-preact/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import ReactCounter from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import ReactCounter from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/nested-in-react/astro.config.mjs b/packages/astro/e2e/fixtures/nested-in-react/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/nested-in-react/astro.config.mjs +++ b/packages/astro/e2e/fixtures/nested-in-react/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/nested-in-react/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/nested-in-react/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-react/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-react/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-react/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/nested-in-react/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-react/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/nested-in-react/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/nested-in-react/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/nested-in-react/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-react/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-react/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-react/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/nested-in-react/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-react/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/nested-in-react/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/nested-in-react/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/nested-in-react/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-react/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/nested-in-react/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/nested-in-react/src/pages/index.astro b/packages/astro/e2e/fixtures/nested-in-react/src/pages/index.astro index 0b3b23d9d8e8..fe18a3151201 100644 --- a/packages/astro/e2e/fixtures/nested-in-react/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/nested-in-react/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import ReactCounter from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import ReactCounter from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/nested-in-solid/astro.config.mjs b/packages/astro/e2e/fixtures/nested-in-solid/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/nested-in-solid/astro.config.mjs +++ b/packages/astro/e2e/fixtures/nested-in-solid/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/nested-in-solid/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/nested-in-solid/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-solid/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-solid/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-solid/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/nested-in-solid/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-solid/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/nested-in-solid/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/nested-in-solid/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/nested-in-solid/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-solid/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-solid/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-solid/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/nested-in-solid/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-solid/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/nested-in-solid/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/nested-in-solid/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/nested-in-solid/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-solid/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/nested-in-solid/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/nested-in-solid/src/pages/index.astro b/packages/astro/e2e/fixtures/nested-in-solid/src/pages/index.astro index 0feb5ba60035..7b2c8da8d220 100644 --- a/packages/astro/e2e/fixtures/nested-in-solid/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/nested-in-solid/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import { Counter as ReactCounter } from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import { Counter as ReactCounter } from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/astro.config.mjs b/packages/astro/e2e/fixtures/nested-in-svelte/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/nested-in-svelte/astro.config.mjs +++ b/packages/astro/e2e/fixtures/nested-in-svelte/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/nested-in-svelte/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-svelte/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-svelte/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/nested-in-svelte/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-svelte/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/nested-in-svelte/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/nested-in-svelte/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-svelte/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-svelte/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/nested-in-svelte/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-svelte/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/nested-in-svelte/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/nested-in-svelte/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-svelte/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/nested-in-svelte/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/nested-in-svelte/src/pages/index.astro b/packages/astro/e2e/fixtures/nested-in-svelte/src/pages/index.astro index 764ebfaf702e..aa11de7fd862 100644 --- a/packages/astro/e2e/fixtures/nested-in-svelte/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/nested-in-svelte/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import { Counter as ReactCounter } from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import { Counter as ReactCounter } from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/nested-in-vue/astro.config.mjs b/packages/astro/e2e/fixtures/nested-in-vue/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/nested-in-vue/astro.config.mjs +++ b/packages/astro/e2e/fixtures/nested-in-vue/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/nested-in-vue/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/nested-in-vue/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-vue/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-vue/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-vue/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/nested-in-vue/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-vue/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/nested-in-vue/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/nested-in-vue/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/nested-in-vue/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-vue/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/nested-in-vue/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-in-vue/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/nested-in-vue/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-vue/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/nested-in-vue/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/nested-in-vue/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/nested-in-vue/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/nested-in-vue/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/nested-in-vue/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/nested-in-vue/src/pages/index.astro b/packages/astro/e2e/fixtures/nested-in-vue/src/pages/index.astro index 5e4d47d768b3..e89554755e7d 100644 --- a/packages/astro/e2e/fixtures/nested-in-vue/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/nested-in-vue/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import { Counter as ReactCounter } from '../components/ReactCounter.jsx'; -import { PreactCounter } from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import { Counter as ReactCounter } from '../components/react/ReactCounter.jsx'; +import { PreactCounter } from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; // Full Astro Component Syntax: // https://docs.astro.build/core-concepts/astro-components/ diff --git a/packages/astro/e2e/fixtures/nested-recursive/astro.config.mjs b/packages/astro/e2e/fixtures/nested-recursive/astro.config.mjs index 4b50887cd70c..0ef8f6e2b363 100644 --- a/packages/astro/e2e/fixtures/nested-recursive/astro.config.mjs +++ b/packages/astro/e2e/fixtures/nested-recursive/astro.config.mjs @@ -8,5 +8,11 @@ import solid from '@astrojs/solid-js'; // https://astro.build/config export default defineConfig({ // Enable many frameworks to support all different kinds of components. - integrations: [preact(), react(), svelte(), vue(), solid()], + integrations: [ + react({ include: ['**/react/*'] }), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + svelte(), + vue(), + ], }); diff --git a/packages/astro/e2e/fixtures/nested-recursive/src/components/PreactCounter.tsx b/packages/astro/e2e/fixtures/nested-recursive/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-recursive/src/components/PreactCounter.tsx rename to packages/astro/e2e/fixtures/nested-recursive/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-recursive/src/components/ReactCounter.jsx b/packages/astro/e2e/fixtures/nested-recursive/src/components/react/ReactCounter.jsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-recursive/src/components/ReactCounter.jsx rename to packages/astro/e2e/fixtures/nested-recursive/src/components/react/ReactCounter.jsx diff --git a/packages/astro/e2e/fixtures/nested-recursive/src/components/SolidCounter.tsx b/packages/astro/e2e/fixtures/nested-recursive/src/components/solid/SolidCounter.tsx similarity index 100% rename from packages/astro/e2e/fixtures/nested-recursive/src/components/SolidCounter.tsx rename to packages/astro/e2e/fixtures/nested-recursive/src/components/solid/SolidCounter.tsx diff --git a/packages/astro/e2e/fixtures/nested-recursive/src/components/SvelteCounter.svelte b/packages/astro/e2e/fixtures/nested-recursive/src/components/svelte/SvelteCounter.svelte similarity index 100% rename from packages/astro/e2e/fixtures/nested-recursive/src/components/SvelteCounter.svelte rename to packages/astro/e2e/fixtures/nested-recursive/src/components/svelte/SvelteCounter.svelte diff --git a/packages/astro/e2e/fixtures/nested-recursive/src/components/VueCounter.vue b/packages/astro/e2e/fixtures/nested-recursive/src/components/vue/VueCounter.vue similarity index 100% rename from packages/astro/e2e/fixtures/nested-recursive/src/components/VueCounter.vue rename to packages/astro/e2e/fixtures/nested-recursive/src/components/vue/VueCounter.vue diff --git a/packages/astro/e2e/fixtures/nested-recursive/src/pages/index.astro b/packages/astro/e2e/fixtures/nested-recursive/src/pages/index.astro index 685c7fb5ed70..a17337c897fd 100644 --- a/packages/astro/e2e/fixtures/nested-recursive/src/pages/index.astro +++ b/packages/astro/e2e/fixtures/nested-recursive/src/pages/index.astro @@ -1,9 +1,9 @@ --- -import ReactCounter from '../components/ReactCounter.jsx'; -import PreactCounter from '../components/PreactCounter.tsx'; -import SolidCounter from '../components/SolidCounter.tsx'; -import VueCounter from '../components/VueCounter.vue'; -import SvelteCounter from '../components/SvelteCounter.svelte'; +import ReactCounter from '../components/react/ReactCounter.jsx'; +import PreactCounter from '../components/preact/PreactCounter.tsx'; +import SolidCounter from '../components/solid/SolidCounter.tsx'; +import VueCounter from '../components/vue/VueCounter.vue'; +import SvelteCounter from '../components/svelte/SvelteCounter.svelte'; --- diff --git a/packages/astro/src/core/build/plugins/plugin-renderers.ts b/packages/astro/src/core/build/plugins/plugin-renderers.ts index 912df42418f0..f0cdf898331b 100644 --- a/packages/astro/src/core/build/plugins/plugin-renderers.ts +++ b/packages/astro/src/core/build/plugins/plugin-renderers.ts @@ -38,6 +38,8 @@ export function vitePluginRenderers(opts: StaticBuildOptions): VitePlugin { exports.push(`export const renderers = [${rendererItems}];`); return `${imports.join('\n')}\n${exports.join('\n')}`; + } else { + return `export const renderers = [];`; } } }, diff --git a/packages/astro/src/core/config/settings.ts b/packages/astro/src/core/config/settings.ts index c0274f60293f..1d0938c00f33 100644 --- a/packages/astro/src/core/config/settings.ts +++ b/packages/astro/src/core/config/settings.ts @@ -3,7 +3,6 @@ import path from 'node:path'; import { fileURLToPath, pathToFileURL } from 'node:url'; import type { AstroConfig, AstroSettings } from '../../@types/astro'; import { getContentPaths } from '../../content/index.js'; -import jsxRenderer from '../../jsx/renderer.js'; import { markdownContentEntryType } from '../../vite-plugin-markdown/content-entry-type.js'; import { getDefaultClientDirectives } from '../client-directive/index.js'; import { AstroError, AstroErrorData } from '../errors/index.js'; @@ -96,7 +95,7 @@ export function createBaseSettings(config: AstroConfig): AstroSettings { }, }, ], - renderers: [jsxRenderer], + renderers: [], scripts: [], clientDirectives: getDefaultClientDirectives(), watchFiles: [], diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts index efb78d137496..846d6109d3a0 100644 --- a/packages/astro/src/core/create-vite.ts +++ b/packages/astro/src/core/create-vite.ts @@ -19,9 +19,9 @@ import configAliasVitePlugin from '../vite-plugin-config-alias/index.js'; import envVitePlugin from '../vite-plugin-env/index.js'; import astroHeadPlugin from '../vite-plugin-head/index.js'; import htmlVitePlugin from '../vite-plugin-html/index.js'; +import mdxVitePlugin from '../vite-plugin-mdx/index.js'; import { astroInjectEnvTsPlugin } from '../vite-plugin-inject-env-ts/index.js'; import astroIntegrationsContainerPlugin from '../vite-plugin-integrations-container/index.js'; -import jsxVitePlugin from '../vite-plugin-jsx/index.js'; import astroLoadFallbackPlugin from '../vite-plugin-load-fallback/index.js'; import markdownVitePlugin from '../vite-plugin-markdown/index.js'; import astroScannerPlugin from '../vite-plugin-scanner/index.js'; @@ -121,7 +121,7 @@ export async function createVite( envVitePlugin({ settings }), markdownVitePlugin({ settings, logging }), htmlVitePlugin(), - jsxVitePlugin({ settings, logging }), + mdxVitePlugin({ settings, logging }), astroPostprocessVitePlugin(), astroIntegrationsContainerPlugin({ settings, logging }), astroScriptsPageSSRPlugin({ settings }), diff --git a/packages/astro/src/vite-plugin-jsx/index.ts b/packages/astro/src/vite-plugin-jsx/index.ts deleted file mode 100644 index 7aa7e7b1642b..000000000000 --- a/packages/astro/src/vite-plugin-jsx/index.ts +++ /dev/null @@ -1,251 +0,0 @@ -import type { TransformResult } from 'rollup'; -import { - transformWithEsbuild, - type EsbuildTransformOptions, - type Plugin, - type ResolvedConfig, -} from 'vite'; -import type { AstroRenderer, AstroSettings } from '../@types/astro'; -import type { LogOptions } from '../core/logger/core.js'; -import type { PluginMetadata } from '../vite-plugin-astro/types'; - -import babel from '@babel/core'; -import * as colors from 'kleur/colors'; -import path from 'node:path'; -import { CONTENT_FLAG, PROPAGATED_ASSET_FLAG } from '../content/index.js'; -import { astroEntryPrefix } from '../core/build/plugins/plugin-component-entry.js'; -import { error } from '../core/logger/core.js'; -import { removeQueryString } from '../core/path.js'; -import { detectImportSource } from './import-source.js'; -import tagExportsPlugin from './tag.js'; - -const JSX_EXTENSIONS = new Set(['.jsx', '.tsx', '.mdx']); -const IMPORT_STATEMENTS: Record = { - react: "import React from 'react'", - preact: "import { h } from 'preact'", - 'solid-js': "import 'solid-js'", - astro: "import 'astro/jsx-runtime'", -}; - -function getEsbuildLoader(filePath: string): EsbuildTransformOptions['loader'] { - const fileExt = path.extname(filePath); - if (fileExt === '.mdx') return 'jsx'; - return fileExt.slice(1) as EsbuildTransformOptions['loader']; -} - -function collectJSXRenderers(renderers: AstroRenderer[]): Map { - const renderersWithJSXSupport = renderers.filter((r) => r.jsxImportSource); - return new Map( - renderersWithJSXSupport.map((r) => [r.jsxImportSource, r] as [string, AstroRenderer]) - ); -} - -interface TransformJSXOptions { - code: string; - id: string; - mode: string; - renderer: AstroRenderer; - ssr: boolean; - root: URL; -} - -async function transformJSX({ - code, - mode, - id, - ssr, - renderer, - root, -}: TransformJSXOptions): Promise { - const { jsxTransformOptions } = renderer; - const options = await jsxTransformOptions!({ mode, ssr }); - const plugins = [...(options.plugins || [])]; - if (ssr) { - plugins.push(await tagExportsPlugin({ rendererName: renderer.name, root })); - } - const result = await babel.transformAsync(code, { - presets: options.presets, - plugins, - cwd: process.cwd(), - filename: id, - ast: false, - compact: false, - sourceMaps: true, - configFile: false, - babelrc: false, - inputSourceMap: options.inputSourceMap, - }); - // TODO: Be more strict about bad return values here. - // Should we throw an error instead? Should we never return `{code: ""}`? - if (!result) return null; - - if (renderer.name === 'astro:jsx') { - const { astro } = result.metadata as unknown as PluginMetadata; - return { - code: result.code || '', - map: result.map, - meta: { - astro, - vite: { - // Setting this vite metadata to `ts` causes Vite to resolve .js - // extensions to .ts files. - lang: 'ts', - }, - }, - }; - } - - return { - code: result.code || '', - map: result.map, - }; -} - -interface AstroPluginJSXOptions { - settings: AstroSettings; - logging: LogOptions; -} - -// Format inspired by https://github.com/vitejs/vite/blob/main/packages/vite/src/node/constants.ts#L54 -const SPECIAL_QUERY_REGEX = new RegExp( - `[?&](?:worker|sharedworker|raw|url|${CONTENT_FLAG}|${PROPAGATED_ASSET_FLAG})\\b` -); - -/** Use Astro config to allow for alternate or multiple JSX renderers (by default Vite will assume React) */ -export default function jsx({ settings, logging }: AstroPluginJSXOptions): Plugin { - let viteConfig: ResolvedConfig; - const jsxRenderers = new Map(); - const jsxRenderersIntegrationOnly = new Map(); - // A reference to Astro's internal JSX renderer. - let astroJSXRenderer: AstroRenderer; - // The first JSX renderer provided is considered the default renderer. - // This is a useful reference for when the user only gives a single render. - let defaultJSXRendererEntry: [string, AstroRenderer] | undefined; - - return { - name: 'astro:jsx', - enforce: 'pre', // run transforms before other plugins - async configResolved(resolvedConfig) { - viteConfig = resolvedConfig; - const possibleRenderers = collectJSXRenderers(settings.renderers); - for (const [importSource, renderer] of possibleRenderers) { - jsxRenderers.set(importSource, renderer); - if (importSource === 'astro') { - astroJSXRenderer = renderer; - } else { - jsxRenderersIntegrationOnly.set(importSource, renderer); - } - } - defaultJSXRendererEntry = [...jsxRenderersIntegrationOnly.entries()][0]; - }, - async transform(code, id, opts) { - const ssr = Boolean(opts?.ssr); - // Skip special queries and astro entries. We skip astro entries here as we know it doesn't contain - // JSX code, and also because we can't detect the import source to apply JSX transforms. - if (SPECIAL_QUERY_REGEX.test(id) || id.startsWith(astroEntryPrefix)) { - return null; - } - id = removeQueryString(id); - if (!JSX_EXTENSIONS.has(path.extname(id))) { - return null; - } - - const { mode } = viteConfig; - // Shortcut: only use Astro renderer for MD and MDX files - if (id.endsWith('.mdx')) { - const { code: jsxCode } = await transformWithEsbuild(code, id, { - loader: getEsbuildLoader(id), - jsx: 'preserve', - sourcemap: 'inline', - tsconfigRaw: { - compilerOptions: { - // Ensure client:only imports are treeshaken - verbatimModuleSyntax: false, - importsNotUsedAsValues: 'remove', - }, - }, - }); - return transformJSX({ - code: jsxCode, - id, - renderer: astroJSXRenderer, - mode, - ssr, - root: settings.config.root, - }); - } - if (defaultJSXRendererEntry && jsxRenderersIntegrationOnly.size === 1) { - // downlevel any non-standard syntax, but preserve JSX - const { code: jsxCode } = await transformWithEsbuild(code, id, { - loader: getEsbuildLoader(id), - jsx: 'preserve', - sourcemap: 'inline', - }); - return transformJSX({ - code: jsxCode, - id, - renderer: defaultJSXRendererEntry[1], - mode, - ssr, - root: settings.config.root, - }); - } - - const importSource = await detectImportSource(code, jsxRenderers, settings.tsConfig); - - // if we still can’t tell the import source, now is the time to throw an error. - if (!importSource && defaultJSXRendererEntry) { - const [defaultRendererName] = defaultJSXRendererEntry; - error( - logging, - 'renderer', - `${colors.yellow(id)} -Unable to resolve a renderer that handles this file! With more than one renderer enabled, you should include an import or use a pragma comment. -Add ${colors.cyan( - IMPORT_STATEMENTS[defaultRendererName] || `import '${defaultRendererName}';` - )} or ${colors.cyan(`/** @jsxImportSource: ${defaultRendererName} */`)} to this file. -` - ); - return null; - } else if (!importSource) { - error( - logging, - 'renderer', - `${colors.yellow(id)} -Unable to find a renderer for JSX. Do you have one configured in your Astro config? See this page to learn how: -https://docs.astro.build/en/core-concepts/framework-components/#installing-integrations -` - ); - return null; - } - - const selectedJsxRenderer = jsxRenderers.get(importSource); - // if the renderer is not installed for this JSX source, throw error - if (!selectedJsxRenderer) { - error( - logging, - 'renderer', - `${colors.yellow( - id - )} No renderer installed for ${importSource}. Try adding \`@astrojs/${importSource}\` to your project.` - ); - return null; - } - - // downlevel any non-standard syntax, but preserve JSX - const { code: jsxCode } = await transformWithEsbuild(code, id, { - loader: getEsbuildLoader(id), - jsx: 'preserve', - sourcemap: 'inline', - }); - return await transformJSX({ - code: jsxCode, - id, - renderer: selectedJsxRenderer, - mode, - ssr, - root: settings.config.root, - }); - }, - }; -} diff --git a/packages/astro/src/vite-plugin-markdown/index.ts b/packages/astro/src/vite-plugin-markdown/index.ts index dd2cbcd85cf4..aff27f7a6d4b 100644 --- a/packages/astro/src/vite-plugin-markdown/index.ts +++ b/packages/astro/src/vite-plugin-markdown/index.ts @@ -49,11 +49,6 @@ function safeMatter(source: string, id: string) { } } -// absolute path of "astro/jsx-runtime" -const astroJsxRuntimeModulePath = normalizePath( - fileURLToPath(new URL('../jsx-runtime/index.js', import.meta.url)) -); - const astroServerRuntimeModulePath = normalizePath( fileURLToPath(new URL('../runtime/server/index.js', import.meta.url)) ); @@ -115,8 +110,7 @@ export default function markdown({ settings, logging }: AstroPluginOptions): Plu } const code = escapeViteEnvReferences(` - import { Fragment, jsx as h } from ${JSON.stringify(astroJsxRuntimeModulePath)}; - import { spreadAttributes } from ${JSON.stringify(astroServerRuntimeModulePath)}; + import { unescapeHTML, spreadAttributes, createComponent, render, renderComponent } from ${JSON.stringify(astroServerRuntimeModulePath)}; import { AstroError, AstroErrorData } from ${JSON.stringify(astroErrorModulePath)}; ${layout ? `import Layout from ${JSON.stringify(layout)};` : ''} @@ -167,27 +161,29 @@ export default function markdown({ settings, logging }: AstroPluginOptions): Plu export function getHeadings() { return ${JSON.stringify(headings)}; } - export async function Content() { + + export const Content = createComponent((result, _props, slots) => { const { layout, ...content } = frontmatter; content.file = file; content.url = url; - const contentFragment = h(Fragment, { 'set:html': html }); + return ${ layout - ? `h(Layout, { - file, - url, - content, - frontmatter: content, - headings: getHeadings(), - rawContent, - compiledContent, - 'server:root': true, - children: contentFragment - })` - : `contentFragment` - }; - } + ? `render\`\${renderComponent(result, 'Layout', Layout, { + file, + url, + content, + frontmatter: content, + headings: getHeadings(), + rawContent, + compiledContent, + 'server:root': true, + }, { + 'default': () => render\`\${unescapeHTML(html)}\` + })}\`;` + : `render\`\${unescapeHTML(html)}\`;` + } + }); Content[Symbol.for('astro.needsHeadRendering')] = ${layout ? 'false' : 'true'}; export default Content; `); diff --git a/packages/astro/src/vite-plugin-jsx/README.md b/packages/astro/src/vite-plugin-mdx/README.md similarity index 100% rename from packages/astro/src/vite-plugin-jsx/README.md rename to packages/astro/src/vite-plugin-mdx/README.md diff --git a/packages/astro/src/vite-plugin-jsx/import-source.ts b/packages/astro/src/vite-plugin-mdx/import-source.ts similarity index 100% rename from packages/astro/src/vite-plugin-jsx/import-source.ts rename to packages/astro/src/vite-plugin-mdx/import-source.ts diff --git a/packages/astro/src/vite-plugin-mdx/index.ts b/packages/astro/src/vite-plugin-mdx/index.ts new file mode 100644 index 000000000000..473c4a78e12b --- /dev/null +++ b/packages/astro/src/vite-plugin-mdx/index.ts @@ -0,0 +1,134 @@ +import type { TransformResult } from 'rollup'; +import { + transformWithEsbuild, + type Plugin, + type ResolvedConfig, +} from 'vite'; +import type { AstroRenderer, AstroSettings } from '../@types/astro'; +import type { LogOptions } from '../core/logger/core.js'; +import type { PluginMetadata } from '../vite-plugin-astro/types'; + +import babel from '@babel/core'; +import { CONTENT_FLAG, PROPAGATED_ASSET_FLAG } from '../content/index.js'; +import { astroEntryPrefix } from '../core/build/plugins/plugin-component-entry.js'; +import { removeQueryString } from '../core/path.js'; +import tagExportsPlugin from './tag.js'; + +interface TransformJSXOptions { + code: string; + id: string; + mode: string; + renderer: AstroRenderer; + ssr: boolean; + root: URL; +} + +async function transformJSX({ + code, + mode, + id, + ssr, + renderer, + root, +}: TransformJSXOptions): Promise { + const { jsxTransformOptions } = renderer; + const options = await jsxTransformOptions!({ mode, ssr }); + const plugins = [...(options.plugins || [])]; + if (ssr) { + plugins.push(await tagExportsPlugin({ rendererName: renderer.name, root })); + } + const result = await babel.transformAsync(code, { + presets: options.presets, + plugins, + cwd: process.cwd(), + filename: id, + ast: false, + compact: false, + sourceMaps: true, + configFile: false, + babelrc: false, + inputSourceMap: options.inputSourceMap, + }); + // TODO: Be more strict about bad return values here. + // Should we throw an error instead? Should we never return `{code: ""}`? + if (!result) return null; + + if (renderer.name === 'astro:jsx') { + const { astro } = result.metadata as unknown as PluginMetadata; + return { + code: result.code || '', + map: result.map, + meta: { + astro, + vite: { + // Setting this vite metadata to `ts` causes Vite to resolve .js + // extensions to .ts files. + lang: 'ts', + }, + }, + }; + } + + return { + code: result.code || '', + map: result.map, + }; +} + +interface AstroPluginJSXOptions { + settings: AstroSettings; + logging: LogOptions; +} + +// Format inspired by https://github.com/vitejs/vite/blob/main/packages/vite/src/node/constants.ts#L54 +const SPECIAL_QUERY_REGEX = new RegExp( + `[?&](?:worker|sharedworker|raw|url|${CONTENT_FLAG}|${PROPAGATED_ASSET_FLAG})\\b` +); + +/** Use Astro config to allow for alternate or multiple JSX renderers (by default Vite will assume React) */ +export default function mdxVitePlugin({ settings }: AstroPluginJSXOptions): Plugin { + let viteConfig: ResolvedConfig; + // A reference to Astro's internal JSX renderer. + let astroJSXRenderer: AstroRenderer; + + return { + name: 'astro:jsx', + enforce: 'pre', // run transforms before other plugins + async configResolved(resolvedConfig) { + viteConfig = resolvedConfig; + astroJSXRenderer = settings.renderers.find((r) => r.jsxImportSource === 'astro')!; + }, + async transform(code, id, opts) { + // Skip special queries and astro entries. We skip astro entries here as we know it doesn't contain + // JSX code, and also because we can't detect the import source to apply JSX transforms. + if (SPECIAL_QUERY_REGEX.test(id) || id.startsWith(astroEntryPrefix)) { + return null; + } + id = removeQueryString(id); + // Shortcut: only use Astro renderer for MD and MDX files + if (!id.endsWith('.mdx')) { + return null; + } + const { code: jsxCode } = await transformWithEsbuild(code, id, { + loader: 'jsx', + jsx: 'preserve', + sourcemap: 'inline', + tsconfigRaw: { + compilerOptions: { + // Ensure client:only imports are treeshaken + verbatimModuleSyntax: false, + importsNotUsedAsValues: 'remove', + }, + }, + }); + return transformJSX({ + code: jsxCode, + id, + renderer: astroJSXRenderer, + mode: viteConfig.mode, + ssr: Boolean(opts?.ssr), + root: settings.config.root, + }); + }, + }; +} diff --git a/packages/astro/src/vite-plugin-jsx/tag.ts b/packages/astro/src/vite-plugin-mdx/tag.ts similarity index 100% rename from packages/astro/src/vite-plugin-jsx/tag.ts rename to packages/astro/src/vite-plugin-mdx/tag.ts diff --git a/packages/astro/test/fixtures/astro-slots-nested/astro.config.mjs b/packages/astro/test/fixtures/astro-slots-nested/astro.config.mjs index 4a8807ed05e2..6f37285c6bef 100644 --- a/packages/astro/test/fixtures/astro-slots-nested/astro.config.mjs +++ b/packages/astro/test/fixtures/astro-slots-nested/astro.config.mjs @@ -7,9 +7,9 @@ import vue from '@astrojs/vue'; export default defineConfig({ integrations: [ - react(), - preact(), - solid(), + preact({ include: ['**/preact/*'] }), + solid({ include: ['**/solid/*'] }), + react({ include: ['**/react/*'] }), svelte(), vue() ] diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/components/PassesChildrenP.tsx b/packages/astro/test/fixtures/astro-slots-nested/src/components/preact/PassesChildrenP.tsx similarity index 100% rename from packages/astro/test/fixtures/astro-slots-nested/src/components/PassesChildrenP.tsx rename to packages/astro/test/fixtures/astro-slots-nested/src/components/preact/PassesChildrenP.tsx diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/components/Inner.tsx b/packages/astro/test/fixtures/astro-slots-nested/src/components/react/Inner.tsx similarity index 100% rename from packages/astro/test/fixtures/astro-slots-nested/src/components/Inner.tsx rename to packages/astro/test/fixtures/astro-slots-nested/src/components/react/Inner.tsx diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/components/Parent.jsx b/packages/astro/test/fixtures/astro-slots-nested/src/components/react/Parent.jsx similarity index 100% rename from packages/astro/test/fixtures/astro-slots-nested/src/components/Parent.jsx rename to packages/astro/test/fixtures/astro-slots-nested/src/components/react/Parent.jsx diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/components/PassesChildren.tsx b/packages/astro/test/fixtures/astro-slots-nested/src/components/react/PassesChildren.tsx similarity index 100% rename from packages/astro/test/fixtures/astro-slots-nested/src/components/PassesChildren.tsx rename to packages/astro/test/fixtures/astro-slots-nested/src/components/react/PassesChildren.tsx diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/components/PassesChildrenS.tsx b/packages/astro/test/fixtures/astro-slots-nested/src/components/solid/PassesChildrenS.tsx similarity index 100% rename from packages/astro/test/fixtures/astro-slots-nested/src/components/PassesChildrenS.tsx rename to packages/astro/test/fixtures/astro-slots-nested/src/components/solid/PassesChildrenS.tsx diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/pages/component-slot.astro b/packages/astro/test/fixtures/astro-slots-nested/src/pages/component-slot.astro index b9a03f887eb4..d803f3ff7b77 100644 --- a/packages/astro/test/fixtures/astro-slots-nested/src/pages/component-slot.astro +++ b/packages/astro/test/fixtures/astro-slots-nested/src/pages/component-slot.astro @@ -1,6 +1,6 @@ --- import SlotRender from '../components/SlotRender.astro' -import Inner from '../components/Inner' +import Inner from '../components/react/Inner' --- diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/pages/hidden-nested.astro b/packages/astro/test/fixtures/astro-slots-nested/src/pages/hidden-nested.astro index e51ce00a0a8c..dcb3ebcba5b6 100644 --- a/packages/astro/test/fixtures/astro-slots-nested/src/pages/hidden-nested.astro +++ b/packages/astro/test/fixtures/astro-slots-nested/src/pages/hidden-nested.astro @@ -1,6 +1,6 @@ --- -import Parent from '../components/Parent' -import Inner from '../components/Inner' +import Parent from '../components/react/Parent' +import Inner from '../components/react/Inner' --- diff --git a/packages/astro/test/fixtures/astro-slots-nested/src/pages/server-component-nested.astro b/packages/astro/test/fixtures/astro-slots-nested/src/pages/server-component-nested.astro index b5a3d72a0140..ec4ae3158beb 100644 --- a/packages/astro/test/fixtures/astro-slots-nested/src/pages/server-component-nested.astro +++ b/packages/astro/test/fixtures/astro-slots-nested/src/pages/server-component-nested.astro @@ -1,7 +1,7 @@ --- -import PassesChildren from '../components/PassesChildren.jsx'; -import PassesChildrenP from '../components/PassesChildrenP.jsx'; -import PassesChildrenS from '../components/PassesChildrenS.jsx'; +import PassesChildren from '../components/react/PassesChildren.jsx'; +import PassesChildrenP from '../components/preact/PassesChildrenP.jsx'; +import PassesChildrenS from '../components/solid/PassesChildrenS.jsx'; import PassesChildrenSv from '../components/PassesChildrenSv.svelte'; import PassesChildrenV from '../components/PassesChildrenV.vue'; --- diff --git a/packages/astro/test/fixtures/jsx/astro.config.mjs b/packages/astro/test/fixtures/jsx/astro.config.mjs index 5b84d23a8f20..61d0d075e336 100644 --- a/packages/astro/test/fixtures/jsx/astro.config.mjs +++ b/packages/astro/test/fixtures/jsx/astro.config.mjs @@ -1,13 +1,27 @@ import { defineConfig } from 'astro/config'; import renderer from 'astro/jsx/renderer.js'; +import mdx from '@astrojs/mdx'; import preact from '@astrojs/preact'; import react from '@astrojs/react'; import svelte from '@astrojs/svelte'; import vue from '@astrojs/vue'; import solid from '@astrojs/solid-js'; + export default defineConfig({ integrations: [ + preact({ + include: ['**/preact/*'] + }), + react({ + include: ['**/react/*'] + }), + solid({ + include: ['**/solid/*'], + }), + mdx(), + svelte(), + vue(), { name: '@astrojs/test-jsx', hooks: { @@ -16,10 +30,5 @@ export default defineConfig({ } } }, - preact(), - react(), - svelte(), - vue(), - solid(), ] }) diff --git a/packages/astro/test/fixtures/jsx/package.json b/packages/astro/test/fixtures/jsx/package.json index 1e7001b47ea3..e5b12ece4221 100644 --- a/packages/astro/test/fixtures/jsx/package.json +++ b/packages/astro/test/fixtures/jsx/package.json @@ -3,6 +3,7 @@ "version": "0.0.0", "private": true, "devDependencies": { + "@astrojs/mdx": "workspace:*", "@astrojs/preact": "workspace:*", "@astrojs/react": "workspace:*", "@astrojs/solid-js": "workspace:*", diff --git a/packages/astro/test/fixtures/jsx/src/components/Content.mdx b/packages/astro/test/fixtures/jsx/src/components/Content.mdx new file mode 100644 index 000000000000..7a8bbc0f4309 --- /dev/null +++ b/packages/astro/test/fixtures/jsx/src/components/Content.mdx @@ -0,0 +1,5 @@ +import ReactCounter from './react/ReactCounter.jsx' + +# Hello world + + diff --git a/packages/astro/test/fixtures/jsx/src/components/Frameworks.jsx b/packages/astro/test/fixtures/jsx/src/components/Frameworks.jsx deleted file mode 100644 index 2cc17596457c..000000000000 --- a/packages/astro/test/fixtures/jsx/src/components/Frameworks.jsx +++ /dev/null @@ -1,28 +0,0 @@ -import 'astro/jsx-runtime'; -import { Test } from "./Test"; - -import PreactCounter from "./PreactCounter"; -import ReactCounter from "./ReactCounter"; -import SolidCounter from "./SolidCounter"; -import SvelteCounter from "./SvelteCounter.svelte"; -import VueCounter from "./VueCounter.vue"; - -export function Preact() { - return -} - -export function React() { - return -} - -export function Solid() { - return -} - -export function Svelte() { - return -} - -export function Vue() { - return -} diff --git a/packages/astro/test/fixtures/jsx/src/components/PreactCounter.tsx b/packages/astro/test/fixtures/jsx/src/components/preact/PreactCounter.tsx similarity index 100% rename from packages/astro/test/fixtures/jsx/src/components/PreactCounter.tsx rename to packages/astro/test/fixtures/jsx/src/components/preact/PreactCounter.tsx diff --git a/packages/astro/test/fixtures/jsx/src/components/ReactCounter.jsx b/packages/astro/test/fixtures/jsx/src/components/react/ReactCounter.jsx similarity index 97% rename from packages/astro/test/fixtures/jsx/src/components/ReactCounter.jsx rename to packages/astro/test/fixtures/jsx/src/components/react/ReactCounter.jsx index 5c5a001e8863..7404d45bc41e 100644 --- a/packages/astro/test/fixtures/jsx/src/components/ReactCounter.jsx +++ b/packages/astro/test/fixtures/jsx/src/components/react/ReactCounter.jsx @@ -6,6 +6,8 @@ export default function ReactCounter() { const add = () => setCount((i) => i + 1); const subtract = () => setCount((i) => i - 1); + debugger; + return (
diff --git a/packages/astro/test/fixtures/jsx/src/components/SolidCounter.jsx b/packages/astro/test/fixtures/jsx/src/components/solid/SolidCounter.jsx similarity index 100% rename from packages/astro/test/fixtures/jsx/src/components/SolidCounter.jsx rename to packages/astro/test/fixtures/jsx/src/components/solid/SolidCounter.jsx diff --git a/packages/astro/test/fixtures/jsx/src/pages/frameworks.astro b/packages/astro/test/fixtures/jsx/src/pages/frameworks.astro index ede0f542c3cd..cfd28a3d4b15 100644 --- a/packages/astro/test/fixtures/jsx/src/pages/frameworks.astro +++ b/packages/astro/test/fixtures/jsx/src/pages/frameworks.astro @@ -1,13 +1,27 @@ --- -import * as Framework from '../components/Frameworks' +import FrameworkSolid from '../components/solid/SolidCounter.jsx' +import FrameworkPreact from '../components/preact/PreactCounter.jsx' +import FrameworkReact from '../components/react/ReactCounter.jsx' +import FrameworkSvelte from '../components/SvelteCounter.svelte' +import FrameworkVue from '../components/VueCounter.vue' +import FrameworkMDX from '../components/Content.mdx' --- - - - - - - - - - +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
diff --git a/packages/astro/test/fixtures/preact-compat-component/packages/react-lib/index.js b/packages/astro/test/fixtures/preact-compat-component/packages/react-lib/index.js index 22fb55f10567..4f15bdac1cfb 100644 --- a/packages/astro/test/fixtures/preact-compat-component/packages/react-lib/index.js +++ b/packages/astro/test/fixtures/preact-compat-component/packages/react-lib/index.js @@ -2,4 +2,4 @@ import { useState } from "react"; export function useSpecialState(initialState) { return useState(initialState); -} \ No newline at end of file +} diff --git a/packages/astro/test/fixtures/preact-compat-component/src/components/Counter.jsx b/packages/astro/test/fixtures/preact-compat-component/src/components/Counter.jsx index bfdf5bed15a8..7ee876f2ccd3 100644 --- a/packages/astro/test/fixtures/preact-compat-component/src/components/Counter.jsx +++ b/packages/astro/test/fixtures/preact-compat-component/src/components/Counter.jsx @@ -1,4 +1,3 @@ -/** @jsxImportSource preact */ import { useSpecialState } from '@test/react-lib' export default function Counter({ children }) { diff --git a/packages/astro/test/fixtures/tailwindcss/src/pages/markdown-page.md b/packages/astro/test/fixtures/tailwindcss/src/pages/markdown-page.md deleted file mode 100644 index e4c6b6bc9d66..000000000000 --- a/packages/astro/test/fixtures/tailwindcss/src/pages/markdown-page.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Markdown + Tailwind" -setup: | - import Button from '../components/Button.astro'; - import Complex from '../components/Complex.astro'; ---- - -
- - -
\ No newline at end of file diff --git a/packages/astro/test/jsx.test.js b/packages/astro/test/jsx.test.js index 41671699cf19..64c7a7609fcd 100644 --- a/packages/astro/test/jsx.test.js +++ b/packages/astro/test/jsx.test.js @@ -20,43 +20,51 @@ describe('jsx-runtime', () => { expect($('#named').text()).to.equal('Named'); }); - it('Can load Preact component inside Astro JSX', async () => { + it('Can load Preact component inside Astro', async () => { const html = await fixture.readFile('/frameworks/index.html'); const $ = cheerio.load(html); - expect($('#has-preact #preact').length).to.equal(1); + expect($('#has-preact #preact').length).to.equal(0); expect($('#preact').text()).to.include('Preact'); }); - it('Can load React component inside Astro JSX', async () => { + it('Can load React component inside Astro', async () => { const html = await fixture.readFile('/frameworks/index.html'); const $ = cheerio.load(html); - expect($('#has-react #react').length).to.equal(1); + expect($('#has-react #react').length).to.equal(0); expect($('#react').text()).to.include('React'); }); - it('Can load Solid component inside Astro JSX', async () => { + it('Can load Solid component inside Astro', async () => { const html = await fixture.readFile('/frameworks/index.html'); const $ = cheerio.load(html); - expect($('#has-solid #solid').length).to.equal(1); + expect($('#has-solid #solid').length).to.equal(0); expect($('#solid').text()).to.include('Solid'); }); - it('Can load Svelte component inside Astro JSX', async () => { + it('Can load Svelte component inside Astro', async () => { const html = await fixture.readFile('/frameworks/index.html'); const $ = cheerio.load(html); - expect($('#has-svelte #svelte').length).to.equal(1); + expect($('#has-svelte #svelte').length).to.equal(0); expect($('#svelte').text()).to.include('Svelte'); }); - it('Can load Vue component inside Astro JSX', async () => { + it('Can load Vue component inside Astro', async () => { const html = await fixture.readFile('/frameworks/index.html'); const $ = cheerio.load(html); - expect($('#has-vue #vue').length).to.equal(1); + expect($('#has-vue #vue').length).to.equal(0); expect($('#vue').text()).to.include('Vue'); }); + + it('Can load MDX component inside Astro', async () => { + const html = await fixture.readFile('/frameworks/index.html'); + const $ = cheerio.load(html); + + expect($('#mdx-wrapper #hello-world')).to.have.a.lengthOf(1, 'md content rendered'); + expect($('#mdx-wrapper #react')).to.have.a.lengthOf(1, 'React component rendered') + }); }); diff --git a/packages/astro/test/preact-compat-component.test.js b/packages/astro/test/preact-compat-component.test.js index f0cd9e45fec9..8937e9afa88e 100644 --- a/packages/astro/test/preact-compat-component.test.js +++ b/packages/astro/test/preact-compat-component.test.js @@ -3,18 +3,30 @@ import * as cheerio from 'cheerio'; import { loadFixture } from './test-utils.js'; describe('Preact compat component', () => { + /** @type {import('./test-utils.js').Fixture} */ + let fixture; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/preact-compat-component/', + }); + }); + describe('Development', () => { - let fixture; + /** @type {import('./test-utils.js').DevServer} */ + let devServer; before(async () => { - fixture = await loadFixture({ - root: './fixtures/preact-compat-component/', - }); - await fixture.startDevServer(); + devServer = await fixture.startDevServer(); }); + after(async() => { + await devServer.stop(); + }) + it('Can load Counter', async () => { - const html = await fixture.fetch('/').then((res) => res.text()); + const res = await fixture.fetch('/'); + const html = await res.text(); const $ = cheerio.load(html); expect($('#counter-text').text()).to.be.eq('0'); @@ -22,12 +34,7 @@ describe('Preact compat component', () => { }); describe('Build', () => { - let fixture; - before(async () => { - fixture = await loadFixture({ - root: './fixtures/preact-compat-component/', - }); await fixture.build(); }); diff --git a/packages/astro/test/tailwindcss.test.js b/packages/astro/test/tailwindcss.test.js index 2a37c6572e2b..3c249cc2cb85 100644 --- a/packages/astro/test/tailwindcss.test.js +++ b/packages/astro/test/tailwindcss.test.js @@ -3,6 +3,7 @@ import * as cheerio from 'cheerio'; import { loadFixture } from './test-utils.js'; describe('Tailwind', () => { + /** @type {import('./test-utils.js').Fixture} */ let fixture; before(async () => { @@ -58,14 +59,6 @@ describe('Tailwind', () => { expect(button.hasClass('2xl:w-[80%]'), 'complex class').to.be.true; }); - it('handles Markdown pages', async () => { - const html = await fixture.readFile('/markdown-page/index.html'); - const $md = cheerio.load(html); - const bundledCSSHREF = $md('link[rel=stylesheet][href^=/_astro/]').attr('href'); - const mdBundledCSS = await fixture.readFile(bundledCSSHREF.replace(/^\/?/, '/')); - expect(mdBundledCSS, 'includes used component classes').to.match(/\.bg-purple-600{/); - }); - it('handles MDX pages (with integration)', async () => { const html = await fixture.readFile('/mdx-page/index.html'); const $md = cheerio.load(html); diff --git a/packages/astro/test/test-utils.js b/packages/astro/test/test-utils.js index a58d417d79d9..0b336698f3db 100644 --- a/packages/astro/test/test-utils.js +++ b/packages/astro/test/test-utils.js @@ -20,7 +20,7 @@ import { sync } from '../dist/core/sync/index.js'; process.env.ASTRO_TELEMETRY_DISABLED = true; /** - * @typedef {import('../src/core/dev/dev').DedvServer} DevServer + * @typedef {import('../src/core/dev/dev').DevServer} DevServer * @typedef {import('../src/@types/astro').AstroInlineConfig & { root?: string | URL }} AstroInlineConfig * @typedef {import('../src/core/preview/index').PreviewServer} PreviewServer * @typedef {import('../src/core/app/index').App} App diff --git a/packages/integrations/mdx/src/index.ts b/packages/integrations/mdx/src/index.ts index ecf2a9a95950..4cce2392128a 100644 --- a/packages/integrations/mdx/src/index.ts +++ b/packages/integrations/mdx/src/index.ts @@ -13,6 +13,7 @@ import type { Plugin as VitePlugin } from 'vite'; import { getRehypePlugins, getRemarkPlugins, recmaInjectImportMetaEnvPlugin } from './plugins.js'; import type { OptimizeOptions } from './rehype-optimize-static.js'; import { getFileInfo, ignoreStringPlugins, parseFrontmatter } from './utils.js'; +import astroJSXRenderer from 'astro/jsx/renderer.js'; export type MdxOptions = Omit & { extendMarkdownConfig: boolean; @@ -37,9 +38,10 @@ export default function mdx(partialMdxOptions: Partial = {}): AstroI name: '@astrojs/mdx', hooks: { 'astro:config:setup': async (params) => { - const { updateConfig, config, addPageExtension, addContentEntryType, command } = + const { updateConfig, config, addPageExtension, addContentEntryType, command, addRenderer } = params as SetupHookParams; + addRenderer(astroJSXRenderer); addPageExtension('.mdx'); addContentEntryType({ extensions: ['.mdx'], diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json index f1a5f08f47f7..5fefa53ebe4d 100644 --- a/packages/integrations/preact/package.json +++ b/packages/integrations/preact/package.json @@ -35,10 +35,11 @@ "dev": "astro-scripts dev \"src/**/*.ts\"" }, "dependencies": { - "@babel/core": "^7.22.5", "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "babel-plugin-transform-hook-names": "^1.0.2", + "@preact/preset-vite": "^2.5.0", "@preact/signals": "^1.1.3", - "babel-plugin-module-resolver": "^5.0.0", "preact-render-to-string": "^5.2.6" }, "devDependencies": { diff --git a/packages/integrations/preact/src/index.ts b/packages/integrations/preact/src/index.ts index 98a2dd20564b..153b9e1c35eb 100644 --- a/packages/integrations/preact/src/index.ts +++ b/packages/integrations/preact/src/index.ts @@ -1,94 +1,68 @@ import type { AstroIntegration, AstroRenderer, ViteUserConfig } from 'astro'; +import preact, {type PreactPluginOptions as VitePreactPluginOptions} from '@preact/preset-vite'; +import { fileURLToPath } from 'node:url'; + +const babelCwd = new URL('../', import.meta.url); function getRenderer(development: boolean): AstroRenderer { return { name: '@astrojs/preact', clientEntrypoint: development ? '@astrojs/preact/client-dev.js' : '@astrojs/preact/client.js', serverEntrypoint: '@astrojs/preact/server.js', - jsxImportSource: 'preact', - jsxTransformOptions: async () => { - // @ts-expect-error types not found - const plugin = await import('@babel/plugin-transform-react-jsx'); - const jsx = plugin.default?.default ?? plugin.default; - return { - plugins: [jsx({}, { runtime: 'automatic', importSource: 'preact' })], - }; - }, }; } -function getCompatRenderer(development: boolean): AstroRenderer { +export type Options =Pick & { compat?: boolean }; + +export default function ({include, exclude, compat}: Options = {}): AstroIntegration { return { name: '@astrojs/preact', - clientEntrypoint: development ? '@astrojs/preact/client-dev.js' : '@astrojs/preact/client.js', - serverEntrypoint: '@astrojs/preact/server.js', - jsxImportSource: 'react', - jsxTransformOptions: async () => { - // @ts-expect-error types not found - const plugin = await import('@babel/plugin-transform-react-jsx'); - const jsx = plugin.default?.default ?? plugin.default; - return { - plugins: [ - jsx({}, { runtime: 'automatic', importSource: 'preact/compat' }), - [ - 'babel-plugin-module-resolver', - { - alias: { - react: 'preact/compat', - 'react-dom/test-utils': 'preact/test-utils', - 'react-dom': 'preact/compat', - 'react/jsx-runtime': 'preact/jsx-runtime', - }, - }, - ], - ], - }; - }, - }; -} + hooks: { + 'astro:config:setup': ({ addRenderer, updateConfig, command }) => { + const preactPlugin = preact({ + include, + exclude, + babel: { + cwd: fileURLToPath(babelCwd) + } + }); -function getViteConfiguration(compat?: boolean): ViteUserConfig { - const viteConfig: ViteUserConfig = { - optimizeDeps: { - include: ['@astrojs/preact/client.js', 'preact', 'preact/jsx-runtime'], - exclude: ['@astrojs/preact/server.js'], - }, - }; + const viteConfig: ViteUserConfig = { + optimizeDeps: { + include: ['@astrojs/preact/client.js', 'preact', 'preact/jsx-runtime'], + exclude: ['@astrojs/preact/server.js'], + }, + }; - if (compat) { - viteConfig.optimizeDeps!.include!.push( - 'preact/compat', - 'preact/test-utils', - 'preact/compat/jsx-runtime' - ); - viteConfig.resolve = { - alias: [ - { find: 'react', replacement: 'preact/compat' }, - { find: 'react-dom/test-utils', replacement: 'preact/test-utils' }, - { find: 'react-dom', replacement: 'preact/compat' }, - { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' }, - ], - dedupe: ['preact/compat', 'preact'], - }; - // noExternal React entrypoints to be bundled, resolved, and aliased by Vite - viteConfig.ssr = { - noExternal: ['react', 'react-dom', 'react-dom/test-utils', 'react/jsx-runtime'], - }; - } + // If not compat, delete the plugin that does it + if(!compat) { + const pIndex = preactPlugin.findIndex(p => p.name == 'preact:config'); + if (pIndex >= 0) { + preactPlugin.splice(pIndex, 1); + } + } else { + viteConfig.optimizeDeps!.include!.push( + 'preact/compat', + 'preact/test-utils', + 'preact/compat/jsx-runtime', + ); + viteConfig.resolve = { + alias: [ + { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' }, + ], + dedupe: ['preact/compat', 'preact'], + }; + // noExternal React entrypoints to be bundled, resolved, and aliased by Vite + viteConfig.ssr = { + noExternal: ['react', 'react-dom', 'react-dom/test-utils', 'react/jsx-runtime'], + }; + } - return viteConfig; -} + viteConfig.plugins = [preactPlugin]; -export default function ({ compat }: { compat?: boolean } = {}): AstroIntegration { - return { - name: '@astrojs/preact', - hooks: { - 'astro:config:setup': ({ addRenderer, updateConfig, command }) => { - const development = command === 'dev'; - if (compat) addRenderer(getCompatRenderer(development)); - addRenderer(getRenderer(development)); + addRenderer(getRenderer(command === 'dev')); updateConfig({ - vite: getViteConfiguration(compat), + vite: viteConfig, }); }, }, diff --git a/packages/integrations/preact/src/server.ts b/packages/integrations/preact/src/server.ts index 6a2ceb612c98..b9d063b627db 100644 --- a/packages/integrations/preact/src/server.ts +++ b/packages/integrations/preact/src/server.ts @@ -29,8 +29,8 @@ function check(this: RendererContext, Component: any, props: Record // There are edge cases (SolidJS) where Preact *might* render a string, // but components would be - - return !/\/.test(html); + // It also might render an empty sting. + return html == '' ? false : !/\/.test(html); } catch (err) { return false; } diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json index 958ee5ed7c9b..28dbf0891bbc 100644 --- a/packages/integrations/react/package.json +++ b/packages/integrations/react/package.json @@ -44,8 +44,8 @@ "dev": "astro-scripts dev \"src/**/*.ts\"" }, "dependencies": { - "@babel/core": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5" + "@astrojs/internal-helpers": "0.2.0-beta.0", + "@vitejs/plugin-react": "^4.0.3" }, "devDependencies": { "@types/react": "^17.0.62", diff --git a/packages/integrations/react/src/index.ts b/packages/integrations/react/src/index.ts index d7906fe4a493..da008a67016a 100644 --- a/packages/integrations/react/src/index.ts +++ b/packages/integrations/react/src/index.ts @@ -1,5 +1,10 @@ import type { AstroIntegration } from 'astro'; import { version as ReactVersion } from 'react-dom'; +import react, {type Options as ViteReactPluginOptions} from '@vitejs/plugin-react'; +import { appendForwardSlash } from '@astrojs/internal-helpers/path'; + + +const FAST_REFRESH_PREAMBLE = react.preambleCode; function getRenderer() { return { @@ -10,33 +15,10 @@ function getRenderer() { serverEntrypoint: ReactVersion.startsWith('18.') ? '@astrojs/react/server.js' : '@astrojs/react/server-v17.js', - jsxImportSource: 'react', - jsxTransformOptions: async () => { - // @ts-expect-error types not found - const babelPluginTransformReactJsxModule = await import('@babel/plugin-transform-react-jsx'); - const jsx = - babelPluginTransformReactJsxModule?.default?.default ?? - babelPluginTransformReactJsxModule?.default; - return { - plugins: [ - jsx( - {}, - { - runtime: 'automatic', - // This option tells the JSX transform how to construct the "*/jsx-runtime" import. - // In React v17, we had to shim this due to an export map issue in React. - // In React v18, this issue was fixed and we can import "react/jsx-runtime" directly. - // See `./jsx-runtime.js` for more details. - importSource: ReactVersion.startsWith('18.') ? 'react' : '@astrojs/react', - } - ), - ], - }; - }, }; } -function getViteConfiguration() { +function getViteConfiguration({include, exclude}: Options = {}) { return { optimizeDeps: { include: [ @@ -54,8 +36,9 @@ function getViteConfiguration() { : '@astrojs/react/server-v17.js', ], }, + plugins: [react({include, exclude})], resolve: { - dedupe: ['react', 'react-dom'], + dedupe: ['react', 'react-dom', 'react-dom/server'], }, ssr: { external: ReactVersion.startsWith('18.') @@ -73,13 +56,18 @@ function getViteConfiguration() { }; } -export default function (): AstroIntegration { +export type Options =Pick; +export default function ({include, exclude}: Pick = {}): AstroIntegration { return { name: '@astrojs/react', hooks: { - 'astro:config:setup': ({ addRenderer, updateConfig }) => { + 'astro:config:setup': ({ config, command, addRenderer, updateConfig, injectScript }) => { addRenderer(getRenderer()); - updateConfig({ vite: getViteConfiguration() }); + updateConfig({ vite: getViteConfiguration({include, exclude}) }); + if (command === 'dev') { + const preamble = FAST_REFRESH_PREAMBLE.replace(`__BASE__`, appendForwardSlash(config.base)) + injectScript('before-hydration', preamble); + } }, }, }; diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json index c962e025a21c..580545f442e9 100644 --- a/packages/integrations/solid/package.json +++ b/packages/integrations/solid/package.json @@ -35,8 +35,7 @@ "dev": "astro-scripts dev \"src/**/*.ts\"" }, "dependencies": { - "babel-preset-solid": "^1.7.4", - "vitefu": "^0.2.4" + "vite-plugin-solid": "^2.7.0" }, "devDependencies": { "astro": "workspace:*", diff --git a/packages/integrations/solid/src/dependencies.ts b/packages/integrations/solid/src/dependencies.ts deleted file mode 100644 index ac6e5c6556c0..000000000000 --- a/packages/integrations/solid/src/dependencies.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { AstroConfig } from 'astro'; -import { fileURLToPath } from 'node:url'; -import { crawlFrameworkPkgs } from 'vitefu'; - -export async function getSolidPkgsConfig(isBuild: boolean, astroConfig: AstroConfig) { - return await crawlFrameworkPkgs({ - root: fileURLToPath(astroConfig.root), - isBuild, - viteUserConfig: astroConfig.vite, - isFrameworkPkgByJson(pkgJson) { - return containsSolidField(pkgJson.exports || {}); - }, - }); -} - -// Reference vite-plugin-solid heuristic -// https://github.com/solidjs/vite-plugin-solid/blob/5558486b0c63788e1275244256918f80294a8338/src/index.ts#L251-L259 -// License: MIT (https://github.com/solidjs/vite-plugin-solid/blob/5558486b0c63788e1275244256918f80294a8338/package.json#L38) -function containsSolidField(fields: Record) { - const keys = Object.keys(fields); - for (const key of keys) { - if (key === 'solid') return true; - if (typeof fields[key] === 'object' && fields[key] != null && containsSolidField(fields[key])) - return true; - } - return false; -} diff --git a/packages/integrations/solid/src/index.ts b/packages/integrations/solid/src/index.ts index cfd38224cbbd..1385ffc212b9 100644 --- a/packages/integrations/solid/src/index.ts +++ b/packages/integrations/solid/src/index.ts @@ -1,63 +1,64 @@ -import type { AstroConfig, AstroIntegration, AstroRenderer } from 'astro'; -import { getSolidPkgsConfig } from './dependencies.js'; +import type { AstroIntegration, AstroRenderer } from 'astro'; +import solid, { type Options as ViteSolidPluginOptions } from 'vite-plugin-solid'; -function getRenderer(): AstroRenderer { - return { - name: '@astrojs/solid-js', - clientEntrypoint: '@astrojs/solid-js/client.js', - serverEntrypoint: '@astrojs/solid-js/server.js', - jsxImportSource: 'solid-js', - jsxTransformOptions: async ({ ssr }) => { - // @ts-expect-error types not found - const [{ default: solid }] = await Promise.all([import('babel-preset-solid')]); - const options = { - presets: [solid({}, { generate: ssr ? 'ssr' : 'dom', hydratable: true })], - plugins: [], - // Otherwise, babel will try to consume the source map generated by esbuild - // This causes unexpected issues with newline characters: https://github.com/withastro/astro/issues/3371 - // Note "vite-plugin-solid" does the same: https://github.com/solidjs/vite-plugin-solid/blob/master/src/index.ts#L344-L345 - inputSourceMap: false as any, - }; - - return options; - }, - }; -} - -async function getViteConfiguration(isDev: boolean, astroConfig: AstroConfig) { +async function getViteConfiguration( + isDev: boolean, + { include, exclude }: Options = {}, +) { // https://github.com/solidjs/vite-plugin-solid // We inject the dev mode only if the user explicitly wants it or if we are in dev (serve) mode const nestedDeps = ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']; - const solidPkgsConfig = await getSolidPkgsConfig(!isDev, astroConfig); return { - /** - * We only need esbuild on .ts or .js files. - * .tsx & .jsx files are handled by us - */ - esbuild: { include: /\.ts$/ }, resolve: { conditions: ['solid', ...(isDev ? ['development'] : [])], dedupe: nestedDeps, alias: [{ find: /^solid-refresh$/, replacement: '/@solid-refresh' }], }, optimizeDeps: { - include: [...nestedDeps, ...solidPkgsConfig.optimizeDeps.include], - exclude: ['@astrojs/solid-js/server.js', ...solidPkgsConfig.optimizeDeps.exclude], + include: [...nestedDeps], + exclude: ['@astrojs/solid-js/server.js'], }, + plugins: [ + solid({ include, exclude, dev: isDev, ssr: true }), + { + name: '@astrojs/solid:config-overrides', + enforce: 'post', + config() { + return { + esbuild: { + // To support using alongside other JSX frameworks, still let + // esbuild compile stuff. Solid goes first anyways. + include: /\.(m?ts|[jt]sx)$/ + }, + } + }, + } + ], ssr: { - external: ['babel-preset-solid', ...solidPkgsConfig.ssr.external], - noExternal: [...solidPkgsConfig.ssr.noExternal], + external: ['babel-preset-solid'], }, }; } -export default function (): AstroIntegration { +function getRenderer(): AstroRenderer { + return { + name: '@astrojs/solid-js', + clientEntrypoint: '@astrojs/solid-js/client.js', + serverEntrypoint: '@astrojs/solid-js/server.js', + }; +} + +export type Options = Pick; + +export default function (opts: Options = {}): AstroIntegration { return { name: '@astrojs/solid-js', hooks: { - 'astro:config:setup': async ({ command, addRenderer, updateConfig, config }) => { + 'astro:config:setup': async ({ command, addRenderer, updateConfig }) => { addRenderer(getRenderer()); - updateConfig({ vite: await getViteConfiguration(command === 'dev', config) }); + updateConfig({ + vite: await getViteConfiguration(command === 'dev', opts), + }); }, }, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af528d5ab8f2..baeea8504e8f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2761,6 +2761,9 @@ importers: specifier: ^3.3.4 version: 3.3.4 devDependencies: + '@astrojs/mdx': + specifier: workspace:* + version: link:../../../../integrations/mdx '@astrojs/preact': specifier: workspace:* version: link:../../../../integrations/preact @@ -4482,18 +4485,21 @@ importers: packages/integrations/preact: dependencies: - '@babel/core': - specifier: ^7.22.5 - version: 7.22.5 '@babel/plugin-transform-react-jsx': specifier: ^7.22.5 version: 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-react-jsx-development': + specifier: ^7.22.5 + version: 7.22.5 + '@preact/preset-vite': + specifier: ^2.5.0 + version: 2.5.0(preact@10.15.1) '@preact/signals': specifier: ^1.1.3 version: 1.1.3(preact@10.15.1) - babel-plugin-module-resolver: - specifier: ^5.0.0 - version: 5.0.0 + babel-plugin-transform-hook-names: + specifier: ^1.0.2 + version: 1.0.2 preact-render-to-string: specifier: ^5.2.6 version: 5.2.6(preact@10.15.1) @@ -4556,12 +4562,12 @@ importers: packages/integrations/react: dependencies: - '@babel/core': - specifier: ^7.22.5 - version: 7.22.5 - '@babel/plugin-transform-react-jsx': - specifier: ^7.22.5 - version: 7.22.5(@babel/core@7.22.5) + '@astrojs/internal-helpers': + specifier: 0.2.0-beta.0 + version: link:../../internal-helpers + '@vitejs/plugin-react': + specifier: ^4.0.3 + version: 4.0.3 devDependencies: '@types/react': specifier: ^17.0.62 @@ -4639,12 +4645,9 @@ importers: packages/integrations/solid: dependencies: - babel-preset-solid: - specifier: ^1.7.4 - version: 1.7.4 - vitefu: - specifier: ^0.2.4 - version: 0.2.4(vite@4.4.6) + vite-plugin-solid: + specifier: ^2.7.0 + version: 2.7.0(solid-js@1.7.6) devDependencies: astro: specifier: workspace:* @@ -5393,8 +5396,8 @@ packages: semver: 6.3.1 dev: false - /@babel/helper-create-class-features-plugin@7.21.8(@babel/core@7.22.5): - resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==} + /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.5): + resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -5406,14 +5409,12 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.21.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.21.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - transitivePeerDependencies: - - supports-color dev: false /@babel/helper-create-regexp-features-plugin@7.21.8(@babel/core@7.22.5): @@ -5470,8 +5471,8 @@ packages: '@babel/types': 7.22.5 dev: false - /@babel/helper-member-expression-to-functions@7.21.5: - resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==} + /@babel/helper-member-expression-to-functions@7.22.5: + resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 @@ -5514,8 +5515,8 @@ packages: - supports-color dev: false - /@babel/helper-optimise-call-expression@7.18.6: - resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 @@ -5544,18 +5545,19 @@ packages: - supports-color dev: false - /@babel/helper-replace-supers@7.21.5: - resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==} + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.5): + resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true dependencies: + '@babel/core': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.21.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 dev: false /@babel/helper-simple-access@7.22.5: @@ -5565,8 +5567,8 @@ packages: '@babel/types': 7.22.5 dev: false - /@babel/helper-skip-transparent-expression-wrappers@7.20.0: - resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.5 @@ -5579,6 +5581,13 @@ packages: '@babel/types': 7.22.5 dev: false + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} @@ -5587,11 +5596,6 @@ packages: resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.21.0: - resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} - engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-validator-option@7.22.5: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} @@ -5659,7 +5663,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.5) dev: false @@ -5691,10 +5695,8 @@ packages: optional: true dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.22.5): @@ -5707,11 +5709,9 @@ packages: optional: true dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.22.5): @@ -5840,7 +5840,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) dev: false @@ -5854,10 +5854,8 @@ packages: optional: true dependencies: '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-proposal-private-property-in-object@7.21.0(@babel/core@7.22.5): @@ -5871,11 +5869,9 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5): @@ -6114,8 +6110,8 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-typescript@7.21.4(@babel/core@7.22.5): - resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==} + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6197,13 +6193,11 @@ packages: '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 - '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.21.5 - '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.5) + '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - transitivePeerDependencies: - - supports-color dev: false /@babel/plugin-transform-computed-properties@7.21.5(@babel/core@7.22.5): @@ -6344,8 +6338,8 @@ packages: - supports-color dev: false - /@babel/plugin-transform-modules-commonjs@7.21.5(@babel/core@7.22.5): - resolution: {integrity: sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==} + /@babel/plugin-transform-modules-commonjs@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6433,9 +6427,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.21.5 - transitivePeerDependencies: - - supports-color + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.5) dev: false /@babel/plugin-transform-parameters@7.21.3(@babel/core@7.22.5): @@ -6464,6 +6456,44 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false + /@babel/plugin-transform-react-jsx-development@7.22.5: + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) + dev: false + + /@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-transform-react-jsx@7.22.5(@babel/core@7.22.5): resolution: {integrity: sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==} engines: {node: '>=6.9.0'} @@ -6532,7 +6562,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: false /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.22.5): @@ -6585,11 +6615,25 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.21.8(@babel/core@7.22.5) + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.21.4(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.5) + dev: false + + /@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.5): + resolution: {integrity: sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.5) dev: false /@babel/plugin-transform-unicode-escapes@7.21.5(@babel/core@7.22.5): @@ -6632,7 +6676,7 @@ packages: '@babel/core': 7.22.5 '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.21.0 + '@babel/helper-validator-option': 7.22.5 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6(@babel/core@7.22.5) '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7(@babel/core@7.22.5) '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.22.5) @@ -6681,7 +6725,7 @@ packages: '@babel/plugin-transform-literals': 7.18.9(@babel/core@7.22.5) '@babel/plugin-transform-member-expression-literals': 7.18.6(@babel/core@7.22.5) '@babel/plugin-transform-modules-amd': 7.20.11(@babel/core@7.22.5) - '@babel/plugin-transform-modules-commonjs': 7.21.5(@babel/core@7.22.5) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5) '@babel/plugin-transform-modules-systemjs': 7.20.11(@babel/core@7.22.5) '@babel/plugin-transform-modules-umd': 7.18.6(@babel/core@7.22.5) '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5(@babel/core@7.22.5) @@ -6725,6 +6769,25 @@ packages: esutils: 2.0.3 dev: false + /@babel/preset-typescript@7.22.5(@babel/core@7.22.5): + resolution: {integrity: sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.5) + transitivePeerDependencies: + - supports-color + dev: false + /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: false @@ -6900,7 +6963,7 @@ packages: resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} dependencies: dataloader: 1.4.0 - node-fetch: 2.6.12 + node-fetch: 2.6.11 transitivePeerDependencies: - encoding dev: true @@ -7759,11 +7822,11 @@ packages: detect-libc: 2.0.1 https-proxy-agent: 5.0.1 make-dir: 3.1.0 - node-fetch: 2.6.12 + node-fetch: 2.6.11 nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.5.3 tar: 6.1.15 transitivePeerDependencies: - encoding @@ -8138,7 +8201,7 @@ packages: '@octokit/request-error': 2.1.0 '@octokit/types': 6.41.0 is-plain-object: 5.0.0 - node-fetch: 2.6.12 + node-fetch: 2.6.11 universal-user-agent: 6.0.0 transitivePeerDependencies: - encoding @@ -8183,6 +8246,30 @@ packages: playwright-core: 1.29.2 dev: true + /@preact/preset-vite@2.5.0(preact@10.15.1): + resolution: {integrity: sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw==} + peerDependencies: + '@babel/core': 7.x + vite: 2.x || 3.x || 4.x + peerDependenciesMeta: + '@babel/core': + optional: true + vite: + optional: true + dependencies: + '@babel/plugin-transform-react-jsx': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-react-jsx-development': 7.22.5 + '@prefresh/vite': 2.4.1(preact@10.15.1) + '@rollup/pluginutils': 4.2.1 + babel-plugin-transform-hook-names: 1.0.2 + debug: 4.3.4 + kolorist: 1.8.0 + resolve: 1.22.2 + transitivePeerDependencies: + - preact + - supports-color + dev: false + /@preact/signals-core@1.3.0: resolution: {integrity: sha512-M+M3ZOtd1dtV/uasyk4SZu1vbfEJ4NeENv0F7F12nijZYedB5wSgbtZcuACyssnTznhF4ctUyrR0dZHuHfyWKA==} dev: false @@ -8205,6 +8292,41 @@ packages: preact: 10.15.1 dev: false + /@prefresh/babel-plugin@0.5.0: + resolution: {integrity: sha512-joAwpkUDwo7ZqJnufXRGzUb+udk20RBgfA8oLPBh5aJH2LeStmV1luBfeJTztPdyCscC2j2SmZ/tVxFRMIxAEw==} + dev: false + + /@prefresh/core@1.5.1(preact@10.15.1): + resolution: {integrity: sha512-e0mB0Oxtog6ZpKPDBYbzFniFJDIktuKMzOHp7sguntU+ot0yi6dbhJRE9Css1qf0u16wdSZjpL2W2ODWuU05Cw==} + peerDependencies: + preact: ^10.0.0 + dependencies: + preact: 10.15.1 + dev: false + + /@prefresh/utils@1.2.0: + resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} + dev: false + + /@prefresh/vite@2.4.1(preact@10.15.1): + resolution: {integrity: sha512-vthWmEqu8TZFeyrBNc9YE5SiC3DVSzPgsOCp/WQ7FqdHpOIJi7Z8XvCK06rBPOtG4914S52MjG9Ls22eVAiuqQ==} + peerDependencies: + preact: ^10.4.0 + vite: '>=2.0.0' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@babel/core': 7.22.5 + '@prefresh/babel-plugin': 0.5.0 + '@prefresh/core': 1.5.1(preact@10.15.1) + '@prefresh/utils': 1.2.0 + '@rollup/pluginutils': 4.2.1 + preact: 10.15.1 + transitivePeerDependencies: + - supports-color + dev: false + /@rollup/plugin-babel@5.3.1(@babel/core@7.22.5)(rollup@2.79.1): resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -8855,7 +8977,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 + semver: 7.5.3 ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: @@ -8876,7 +8998,7 @@ packages: '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6) eslint: 8.43.0 eslint-scope: 5.1.1 - semver: 7.5.4 + semver: 7.5.3 transitivePeerDependencies: - supports-color - typescript @@ -8953,6 +9075,23 @@ packages: - supports-color dev: false + /@vitejs/plugin-react@4.0.3: + resolution: {integrity: sha512-pwXDog5nwwvSIzwrvYYmA2Ljcd/ZNlcsSG2Q9CNDBwnsd55UGAyr2doXtB5j+2uymRCnCfExlznzzSFbBRcoCg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@babel/core': 7.22.5 + '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.5) + '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.5) + react-refresh: 0.14.0 + transitivePeerDependencies: + - supports-color + dev: false + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.4.6)(vue@3.3.4): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -9520,7 +9659,7 @@ packages: preferred-pm: 3.0.3 prompts: 2.4.2 rehype: 12.0.1 - semver: 7.5.4 + semver: 7.5.3 server-destroy: 1.0.1 shiki: 0.14.1 string-width: 5.1.2 @@ -9609,7 +9748,7 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - /babel-plugin-jsx-dom-expressions@0.36.10: + /babel-plugin-jsx-dom-expressions@0.36.10(@babel/core@7.22.5): resolution: {integrity: sha512-QA2k/14WGw+RgcGGnEuLWwnu4em6CGhjeXtjvgOYyFHYS2a+CzPeaVQHDOlfuiBcjq/3hWMspHMIMnPEOIzdBg==} peerDependencies: '@babel/core': ^7.20.12 @@ -9617,6 +9756,7 @@ packages: '@babel/core': optional: true dependencies: + '@babel/core': 7.22.5 '@babel/helper-module-imports': 7.18.6 '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.5) '@babel/types': 7.22.5 @@ -9624,17 +9764,6 @@ packages: validate-html-nesting: 1.2.2 dev: false - /babel-plugin-module-resolver@5.0.0: - resolution: {integrity: sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q==} - engines: {node: '>= 16'} - dependencies: - find-babel-config: 2.0.0 - glob: 8.1.0 - pkg-up: 3.1.0 - reselect: 4.1.8 - resolve: 1.22.2 - dev: false - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.22.5): resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -9680,7 +9809,16 @@ packages: - supports-color dev: false - /babel-preset-solid@1.7.4: + /babel-plugin-transform-hook-names@1.0.2: + resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} + peerDependencies: + '@babel/core': ^7.12.10 + peerDependenciesMeta: + '@babel/core': + optional: true + dev: false + + /babel-preset-solid@1.7.4(@babel/core@7.22.5): resolution: {integrity: sha512-0mbHNYkbOVYhH6L95VlHVkBEVQjOXSzUqLDiFxUcsg/tU4yTM/qx7FI8C+kmos9LHckQBSm3wtwoe1BZLNJR1w==} peerDependencies: '@babel/core': ^7.0.0 @@ -9688,7 +9826,8 @@ packages: '@babel/core': optional: true dependencies: - babel-plugin-jsx-dom-expressions: 0.36.10 + '@babel/core': 7.22.5 + babel-plugin-jsx-dom-expressions: 0.36.10(@babel/core@7.22.5) dev: false /bail@2.0.2: @@ -9858,7 +9997,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.4 + semver: 7.5.3 dev: true /bundle-name@3.0.0: @@ -10243,7 +10382,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.5.4 + semver: 7.5.3 well-known-symbols: 2.0.0 dev: false @@ -11801,21 +11940,6 @@ packages: dependencies: to-regex-range: 5.0.1 - /find-babel-config@2.0.0: - resolution: {integrity: sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw==} - engines: {node: '>=16.0.0'} - dependencies: - json5: 2.2.3 - path-exists: 4.0.0 - dev: false - - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - dependencies: - locate-path: 3.0.0 - dev: false - /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -12101,17 +12225,6 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: false - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -12139,7 +12252,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -12162,7 +12275,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -12905,6 +13018,11 @@ packages: dependencies: call-bind: 1.0.2 + /is-what@4.1.15: + resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==} + engines: {node: '>=12.13'} + dev: false + /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -13126,6 +13244,10 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: false + /leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -13215,14 +13337,6 @@ packages: engines: {node: '>=14'} dev: false - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - dev: false - /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -13659,6 +13773,13 @@ packages: yargs-parser: 18.1.3 dev: true + /merge-anything@5.1.7: + resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.15 + dev: false + /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: true @@ -14334,7 +14455,7 @@ packages: resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.5.3 dev: false /node-addon-api@6.1.0: @@ -14350,8 +14471,8 @@ packages: resolution: {integrity: sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==} dev: false - /node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + /node-fetch@2.6.11: + resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -14471,7 +14592,7 @@ packages: dependencies: execa: 6.1.0 parse-package-name: 1.0.0 - semver: 7.5.4 + semver: 7.5.3 validate-npm-package-name: 4.0.0 dev: true @@ -14640,13 +14761,6 @@ packages: yocto-queue: 1.0.0 dev: false - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - dependencies: - p-limit: 2.3.0 - dev: false - /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -14795,11 +14909,6 @@ packages: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false - /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -14897,13 +15006,6 @@ packages: pathe: 1.1.0 dev: false - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - dependencies: - find-up: 3.0.0 - dev: false - /playwright-core@1.29.2: resolution: {integrity: sha512-94QXm4PMgFoHAhlCuoWyaBYKb92yOcGVHdQLoxQ7Wjlc7Flg4aC/jbFW7xMR52OfXMVkWicue4WXE7QEegbIRA==} engines: {node: '>=14'} @@ -15557,6 +15659,11 @@ packages: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: false + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -15916,10 +16023,6 @@ packages: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} dev: true - /reselect@4.1.8: - resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} - dev: false - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -16054,8 +16157,8 @@ packages: optionalDependencies: fsevents: 2.3.2 - /rollup@3.26.3: - resolution: {integrity: sha512-7Tin0C8l86TkpcMtXvQu6saWH93nhG3dGQ1/+l5V2TDMceTxO7kDiK6GzbfLWNNxqJXm591PcEZUozZm51ogwQ==} + /rollup@3.27.0: + resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -16175,13 +16278,6 @@ 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'} @@ -16413,6 +16509,17 @@ packages: csstype: 3.1.2 seroval: 0.5.1 + /solid-refresh@0.5.3(solid-js@1.7.6): + resolution: {integrity: sha512-Otg5it5sjOdZbQZJnvo99TEBAr6J7PQ5AubZLNU6szZzg3RQQ5MX04oteBIIGDs0y2Qv8aXKm9e44V8z+UnFdw==} + peerDependencies: + solid-js: ^1.3 + dependencies: + '@babel/generator': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/types': 7.22.5 + solid-js: 1.7.6 + dev: false + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -17208,7 +17315,7 @@ packages: /typescript-auto-import-cache@0.3.0: resolution: {integrity: sha512-Rq6/q4O9iyqUdjvOoyas7x/Qf9nWUMeqpP3YeTaLA+uECgfy5wOhfOS+SW/+fZ/uI/ZcKaf+2/ZhFzXh8xfofQ==} dependencies: - semver: 7.5.4 + semver: 7.5.3 dev: true /typescript@5.1.6: @@ -17579,6 +17686,27 @@ packages: - supports-color dev: false + /vite-plugin-solid@2.7.0(solid-js@1.7.6): + resolution: {integrity: sha512-avp/Jl5zOp/Itfo67xtDB2O61U7idviaIp4mLsjhCa13PjKNasz+IID0jYTyqUp9SFx6/PmBr6v4KgDppqompg==} + peerDependencies: + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@babel/core': 7.22.5 + '@babel/preset-typescript': 7.22.5(@babel/core@7.22.5) + '@types/babel__core': 7.20.1 + babel-preset-solid: 1.7.4(@babel/core@7.22.5) + merge-anything: 5.1.7 + solid-js: 1.7.6 + solid-refresh: 0.5.3(solid-js@1.7.6) + vitefu: 0.2.4(vite@4.4.6) + transitivePeerDependencies: + - supports-color + dev: false + /vite@4.3.9(@types/node@18.16.18): resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -17643,7 +17771,7 @@ packages: '@types/node': 14.18.51 esbuild: 0.18.16 postcss: 8.4.27 - rollup: 3.26.3 + rollup: 3.27.0 optionalDependencies: fsevents: 2.3.2 dev: true @@ -17679,7 +17807,7 @@ packages: '@types/node': 18.16.18 esbuild: 0.18.16 postcss: 8.4.27 - rollup: 3.26.3 + rollup: 3.27.0 sass: 1.63.4 optionalDependencies: fsevents: 2.3.2 @@ -17846,7 +17974,7 @@ packages: dependencies: '@volar/language-service': 1.10.0 '@volar/typescript': 1.10.0 - semver: 7.5.4 + semver: 7.5.3 typescript-auto-import-cache: 0.3.0 vscode-languageserver-textdocument: 1.0.8 vscode-nls: 5.2.0 From 866ed4098edffb052239cdb26e076cf8db61b1d9 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Fri, 11 Aug 2023 15:57:29 +0100 Subject: [PATCH 2/4] feat: expose user astro error (#8012) --- .changeset/wild-bobcats-carry.md | 5 +++++ packages/astro/package.json | 1 + packages/astro/src/core/errors/errors.ts | 23 +++++++++++++++++++++ packages/astro/src/core/errors/index.ts | 1 + packages/astro/src/core/errors/userError.ts | 1 + packages/astro/src/core/messages.ts | 9 ++++++-- 6 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 .changeset/wild-bobcats-carry.md create mode 100644 packages/astro/src/core/errors/userError.ts diff --git a/.changeset/wild-bobcats-carry.md b/.changeset/wild-bobcats-carry.md new file mode 100644 index 000000000000..ef66ca95241b --- /dev/null +++ b/.changeset/wild-bobcats-carry.md @@ -0,0 +1,5 @@ +--- +'astro': minor +--- + +Add a new `astro/errors` module. Developers can import `AstroUserError`, and provide a `message` and an optional `hint` diff --git a/packages/astro/package.json b/packages/astro/package.json index 8e505e8b0991..c52c93ea3d47 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -69,6 +69,7 @@ "types": "./zod.d.ts", "default": "./zod.mjs" }, + "./errors": "./dist/core/errors/userError.js", "./middleware": { "types": "./dist/core/middleware/index.d.ts", "default": "./dist/core/middleware/index.js" diff --git a/packages/astro/src/core/errors/errors.ts b/packages/astro/src/core/errors/errors.ts index 1960bac4a85e..faf365686908 100644 --- a/packages/astro/src/core/errors/errors.ts +++ b/packages/astro/src/core/errors/errors.ts @@ -19,6 +19,7 @@ export interface ErrorLocation { type ErrorTypes = | 'AstroError' + | 'AstroUserError' | 'CompilerError' | 'CSSError' | 'MarkdownError' @@ -171,3 +172,25 @@ export interface ErrorWithMetadata { }; cause?: any; } + +/** + * Special error that is exposed to users. + * Compared to AstroError, it contains a subset of information. + */ +export class AstroUserError extends Error { + type: ErrorTypes = 'AstroUserError'; + /** + * A message that explains to the user how they can fix the error. + */ + hint: string | undefined; + name = 'AstroUserError'; + constructor(message: string, hint?: string) { + super(); + this.message = message; + this.hint = hint; + } + + static is(err: unknown): err is AstroUserError { + return (err as AstroUserError).type === 'AstroUserError'; + } +} diff --git a/packages/astro/src/core/errors/index.ts b/packages/astro/src/core/errors/index.ts index e09225af4237..5a796a0b3fff 100644 --- a/packages/astro/src/core/errors/index.ts +++ b/packages/astro/src/core/errors/index.ts @@ -7,6 +7,7 @@ export { CompilerError, MarkdownError, isAstroError, + AstroUserError, } from './errors.js'; export { codeFrame } from './printer.js'; export { createSafeError, positionAt } from './utils.js'; diff --git a/packages/astro/src/core/errors/userError.ts b/packages/astro/src/core/errors/userError.ts new file mode 100644 index 000000000000..6635493145f5 --- /dev/null +++ b/packages/astro/src/core/errors/userError.ts @@ -0,0 +1 @@ +export { AstroUserError as AstroError } from './errors.js'; diff --git a/packages/astro/src/core/messages.ts b/packages/astro/src/core/messages.ts index 51ec39ad9289..4fc3ca02a46e 100644 --- a/packages/astro/src/core/messages.ts +++ b/packages/astro/src/core/messages.ts @@ -17,7 +17,12 @@ import { import type { ResolvedServerUrls } from 'vite'; import type { ZodError } from 'zod'; import { renderErrorMarkdown } from './errors/dev/utils.js'; -import { AstroError, CompilerError, type ErrorWithMetadata } from './errors/index.js'; +import { + AstroError, + CompilerError, + type ErrorWithMetadata, + AstroUserError, +} from './errors/index.js'; import { emoji, padMultilineString } from './util.js'; const PREFIX_PADDING = 6; @@ -198,7 +203,7 @@ export function formatConfigErrorMessage(err: ZodError) { } export function formatErrorMessage(err: ErrorWithMetadata, args: string[] = []): string { - const isOurError = AstroError.is(err) || CompilerError.is(err); + const isOurError = AstroError.is(err) || CompilerError.is(err) || AstroUserError.is(err); args.push( `${bgRed(black(` error `))}${red( From 40efae65501fc79c281e34b5af912bf837b7105b Mon Sep 17 00:00:00 2001 From: "Houston (Bot)" <108291165+astrobot-houston@users.noreply.github.com> Date: Fri, 11 Aug 2023 08:14:20 -0700 Subject: [PATCH 3/4] [ci] release (beta) (#7952) Co-authored-by: github-actions[bot] --- .changeset/pre.json | 16 + examples/basics/package.json | 2 +- examples/blog/package.json | 2 +- .../src/content/blog/markdown-style-guide.md | 2 +- examples/component/package.json | 2 +- examples/deno/package.json | 2 +- examples/framework-alpine/package.json | 2 +- examples/framework-lit/package.json | 2 +- examples/framework-multiple/package.json | 8 +- examples/framework-preact/package.json | 4 +- examples/framework-react/package.json | 4 +- examples/framework-solid/package.json | 4 +- examples/framework-svelte/package.json | 2 +- examples/framework-vue/package.json | 2 +- examples/hackernews/package.json | 2 +- examples/integration/package.json | 2 +- examples/middleware/package.json | 2 +- examples/minimal/package.json | 2 +- examples/non-html-pages/package.json | 2 +- examples/portfolio/package.json | 2 +- examples/ssr/package.json | 2 +- examples/with-markdoc/package.json | 2 +- examples/with-markdown-plugins/package.json | 2 +- examples/with-markdown-shiki/package.json | 2 +- examples/with-mdx/package.json | 4 +- examples/with-nanostores/package.json | 4 +- examples/with-tailwindcss/package.json | 2 +- examples/with-vite-plugin-pwa/package.json | 2 +- examples/with-vitest/package.json | 2 +- packages/astro/CHANGELOG.md | 101 ++++ packages/astro/e2e/errors.test.js | 5 +- packages/astro/package.json | 2 +- .../astro/src/vite-plugin-markdown/index.ts | 4 +- packages/astro/src/vite-plugin-mdx/index.ts | 6 +- packages/astro/test/jsx.test.js | 2 +- .../test/preact-compat-component.test.js | 4 +- packages/integrations/cloudflare/CHANGELOG.md | 12 + packages/integrations/cloudflare/package.json | 4 +- packages/integrations/deno/package.json | 2 +- packages/integrations/markdoc/package.json | 2 +- packages/integrations/mdx/package.json | 2 +- packages/integrations/mdx/src/index.ts | 10 +- packages/integrations/netlify/CHANGELOG.md | 30 ++ packages/integrations/netlify/package.json | 4 +- packages/integrations/node/package.json | 2 +- packages/integrations/preact/CHANGELOG.md | 8 + packages/integrations/preact/package.json | 2 +- packages/integrations/preact/src/index.ts | 20 +- packages/integrations/react/CHANGELOG.md | 10 + packages/integrations/react/package.json | 2 +- packages/integrations/react/src/index.ts | 21 +- packages/integrations/solid/CHANGELOG.md | 8 + packages/integrations/solid/package.json | 2 +- packages/integrations/solid/src/index.ts | 11 +- packages/integrations/svelte/package.json | 2 +- packages/integrations/tailwind/package.json | 2 +- packages/integrations/vercel/CHANGELOG.md | 29 ++ packages/integrations/vercel/package.json | 4 +- packages/integrations/vue/package.json | 2 +- packages/telemetry/CHANGELOG.md | 6 + packages/telemetry/package.json | 2 +- pnpm-lock.yaml | 464 +++--------------- 62 files changed, 378 insertions(+), 497 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 686358d34721..eec3bbd90d4b 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -32,17 +32,30 @@ }, "changesets": [ "afraid-dots-whisper", + "breezy-frogs-learn", "chilled-ducks-grin", + "cool-feet-rest", "dirty-lies-cover", "fair-emus-divide", "famous-queens-itch", "four-houses-compete", + "gentle-deers-yawn", + "gentle-meals-crash", + "giant-plants-sip", "heavy-walls-arrive", + "large-countries-share", "loud-candles-admire", "mighty-dancers-lay", + "neat-suns-search", "odd-books-live", + "perfect-horses-tell", + "plenty-keys-add", + "purple-buses-prove", "rude-ears-play", + "six-grapes-look", + "slimy-carrots-sell", "spicy-eels-rush", + "tame-files-glow", "three-adults-exist", "three-onions-repeat", "tricky-candles-suffer", @@ -51,6 +64,9 @@ "unlucky-hotels-try", "unlucky-ravens-type", "unlucky-sheep-build", + "violet-peaches-invent", + "wild-bobcats-carry", + "wild-jobs-tan", "young-roses-teach" ] } diff --git a/examples/basics/package.json b/examples/basics/package.json index 1fd8bec2c905..b5509cdde570 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^2.10.4" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 48e354816881..96e0f0087ff1 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^1.0.0-beta.0", "@astrojs/rss": "^3.0.0-beta.0", "@astrojs/sitemap": "^3.0.0-beta.0", - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/blog/src/content/blog/markdown-style-guide.md b/examples/blog/src/content/blog/markdown-style-guide.md index 666559d2d8f4..fd402b87b459 100644 --- a/examples/blog/src/content/blog/markdown-style-guide.md +++ b/examples/blog/src/content/blog/markdown-style-guide.md @@ -99,7 +99,7 @@ we can use 3 backticks ``` in new line and write snippet and close with 3 backti ````markdown ```html - + diff --git a/examples/component/package.json b/examples/component/package.json index 7e670784d048..d940082b0c4a 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" }, "peerDependencies": { "astro": "^2.0.0-beta.0" diff --git a/examples/deno/package.json b/examples/deno/package.json index a9aa9ce8f7e5..4d53ea64d67a 100644 --- a/examples/deno/package.json +++ b/examples/deno/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" }, "devDependencies": { "@astrojs/deno": "^5.0.0-beta.0" diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index 3fcb2d879155..ad04dbdab77c 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.3.0-beta.0", "@types/alpinejs": "^3.7.1", "alpinejs": "^3.12.2", - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index b868a3010d7e..690654769ed9 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^3.0.0-beta.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "lit": "^2.7.5" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index 11400c309135..81d19794df0f 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -11,12 +11,12 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.0.0-beta.0", - "@astrojs/react": "^3.0.0-beta.0", - "@astrojs/solid-js": "^3.0.0-beta.0", + "@astrojs/preact": "^3.0.0-beta.1", + "@astrojs/react": "^3.0.0-beta.1", + "@astrojs/solid-js": "^3.0.0-beta.1", "@astrojs/svelte": "^4.0.0-beta.0", "@astrojs/vue": "^3.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "preact": "^10.15.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index 30ad40bda881..f42048ba65bc 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.0.0-beta.0", + "@astrojs/preact": "^3.0.0-beta.1", "@preact/signals": "^1.1.3", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "preact": "^10.15.1" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index a680274daef8..d27d9c64abb9 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -11,10 +11,10 @@ "astro": "astro" }, "dependencies": { - "@astrojs/react": "^3.0.0-beta.0", + "@astrojs/react": "^3.0.0-beta.1", "@types/react": "^18.2.13", "@types/react-dom": "^18.2.6", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "react": "^18.2.0", "react-dom": "^18.2.0" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index d8328ea07906..f15caf4ca7f1 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -11,8 +11,8 @@ "astro": "astro" }, "dependencies": { - "@astrojs/solid-js": "^3.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "@astrojs/solid-js": "^3.0.0-beta.1", + "astro": "^3.0.0-beta.1", "solid-js": "^1.7.6" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index b7a31c466725..3ac0d0dc42b8 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^4.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "svelte": "^3.59.1" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 87e1aa282b2b..604d056fbc66 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^3.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "vue": "^3.3.4" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index 63b4c492053e..481a0d2b725f 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^6.0.0-beta.0", - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index 7a6ed5eb2a8c..2ee2d966737f 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" }, "peerDependencies": { "astro": "^2.0.0-beta.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index ab37a8949d2b..5531e56369d5 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^6.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "html-minifier": "^4.0.0" } } diff --git a/examples/minimal/package.json b/examples/minimal/package.json index dde9ab90baba..9dd6096a3e96 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index dcf2c10c462d..63df2f83d2ae 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index b583855689e9..3629b74ec079 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/ssr/package.json b/examples/ssr/package.json index eb434e8fc653..c5307d857151 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^6.0.0-beta.0", "@astrojs/svelte": "^4.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "svelte": "^3.59.1" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index 5e8a2253743b..095e02631289 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/markdoc": "^1.0.0-beta.0", - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index 4b81aca1fa0d..2bcad705c5be 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^3.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "hast-util-select": "^5.0.5", "rehype-autolink-headings": "^6.1.1", "rehype-slug": "^5.1.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 47abed19cac8..15f69280ebc2 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.0.0-beta.0" + "astro": "^3.0.0-beta.1" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index 81205e3c8b8e..8000147faf45 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "@astrojs/mdx": "^1.0.0-beta.0", - "@astrojs/preact": "^3.0.0-beta.0", - "astro": "^3.0.0-beta.0", + "@astrojs/preact": "^3.0.0-beta.1", + "astro": "^3.0.0-beta.1", "preact": "^10.15.1" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index ea780053f969..dcfc7ee77fc4 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.0.0-beta.0", + "@astrojs/preact": "^3.0.0-beta.1", "@nanostores/preact": "^0.4.1", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "nanostores": "^0.8.1", "preact": "^10.15.1" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index da98bc64d92c..761d9d5065f4 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,7 +14,7 @@ "@astrojs/mdx": "^1.0.0-beta.0", "@astrojs/tailwind": "^5.0.0-beta.0", "@types/canvas-confetti": "^1.6.0", - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "autoprefixer": "^10.4.14", "canvas-confetti": "^1.6.0", "postcss": "^8.4.24", diff --git a/examples/with-vite-plugin-pwa/package.json b/examples/with-vite-plugin-pwa/package.json index 235600647954..67281464aae0 100644 --- a/examples/with-vite-plugin-pwa/package.json +++ b/examples/with-vite-plugin-pwa/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "vite-plugin-pwa": "0.14.7", "workbox-window": "^6.6.0" } diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 60151e1c9d2b..44e63e17aed2 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^3.0.0-beta.0", + "astro": "^3.0.0-beta.1", "vitest": "^0.31.4" } } diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 62fa23502e84..72520c0e380d 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,106 @@ # astro +## 3.0.0-beta.1 + +### Major Changes + +- [#7952](https://github.com/withastro/astro/pull/7952) [`3c3100851`](https://github.com/withastro/astro/commit/3c31008519ce68b5b1b1cb23b71fbe0a2d506882) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Remove support for `Astro.__renderMarkdown` which is used by `@astrojs/markdown-component`. + + The `` component was deprecated in Astro v1 and is completely removed in v3. This integration must now be removed from your project. + + As an alternative, you can use community packages that provide a similar component like https://github.com/natemoo-re/astro-remote instead. + +- [#8019](https://github.com/withastro/astro/pull/8019) [`34cb20021`](https://github.com/withastro/astro/commit/34cb2002161ba88df6bcb72fecfd12ed867c134b) Thanks [@bluwy](https://github.com/bluwy)! - Remove backwards-compatible kebab-case transform for camelCase CSS variable names passed to the `style` attribute. If you were relying on the kebab-case transform in your styles, make sure to use the camelCase version to prevent missing styles. For example: + + ```astro + --- + const myValue = 'red'; + --- + + +
+ + +
+ + +
+ ``` + + ```diff + + ``` + +- [#7893](https://github.com/withastro/astro/pull/7893) [`7bd1b86f8`](https://github.com/withastro/astro/commit/7bd1b86f85c06fdde0a1ed9146d01bac69990671) Thanks [@ematipico](https://github.com/ematipico)! - Implements a new scope style strategy called `"attribute"`. When enabled, styles are applied using `data-*` attributes. + + The **default** value of `scopedStyleStrategy` is `"attribute"`. + + If you want to use the previous behaviour, you have to use the `"where"` option: + + ```diff + import { defineConfig } from 'astro/config'; + + export default defineConfig({ + + scopedStyleStrategy: 'where', + }); + ``` + +- [#7924](https://github.com/withastro/astro/pull/7924) [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae) Thanks [@matthewp](https://github.com/matthewp)! - Astro's JSX handling has been refactored with better support for each framework. + + Previously, Astro automatically scanned your components to determine which framework-specific transformations should be used. In practice, supporting advanced features like Fast Refresh with this approach proved difficult. + + Now, Astro determines which framework to use with `include` and `exclude` config options where you can specify files and folders on a per-framework basis. When using multiple JSX frameworks in the same project, users should manually control which files belong to each framework using the `include` and `exclude` options. + + ```js + export default defineConfig({ + // The `include` config is only needed in projects that use multiple JSX frameworks; + // if only using one no extra config is needed. + integrations: [ + preact({ + include: ['**/preact/*'], + }), + react({ + include: ['**/react/*'], + }), + solid({ + include: ['**/solid/*'], + }), + ], + }); + ``` + +- [#7878](https://github.com/withastro/astro/pull/7878) [`0f637c71e`](https://github.com/withastro/astro/commit/0f637c71e511cb4c51712128d217a26c8eee4d40) Thanks [@bluwy](https://github.com/bluwy)! - The value of `import.meta.env.BASE_URL`, which is derived from the `base` option, will no longer have a trailing slash added by default or when `trailingSlash: "ignore"` is set. The existing behavior of `base` in combination with `trailingSlash: "always"` or `trailingSlash: "never"` is unchanged. + + If your `base` already has a trailing slash, no change is needed. + + If your `base` does not have a trailing slash, add one to preserve the previous behaviour: + + ```diff + // astro.config.mjs + - base: 'my-base', + + base: 'my-base/', + ``` + +### Minor Changes + +- [#8012](https://github.com/withastro/astro/pull/8012) [`866ed4098`](https://github.com/withastro/astro/commit/866ed4098edffb052239cdb26e076cf8db61b1d9) Thanks [@ematipico](https://github.com/ematipico)! - Add a new `astro/errors` module. Developers can import `AstroUserError`, and provide a `message` and an optional `hint` + +### Patch Changes + +- [#7998](https://github.com/withastro/astro/pull/7998) [`65c354969`](https://github.com/withastro/astro/commit/65c354969e6fe0ef6d622e8f4c545e2f717ce8c6) Thanks [@bluwy](https://github.com/bluwy)! - Call `astro sync` once before calling `astro check` + +- [#7952](https://github.com/withastro/astro/pull/7952) [`70f34f5a3`](https://github.com/withastro/astro/commit/70f34f5a355f42526ee9e5355f3de8e510002ea2) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Remove StreamingCompatibleResponse polyfill + +- [#8011](https://github.com/withastro/astro/pull/8011) [`5b1e39ef6`](https://github.com/withastro/astro/commit/5b1e39ef6ec6dcebea96584f95d9530bd9aa715d) Thanks [@bluwy](https://github.com/bluwy)! - Move hoisted script analysis optimization behind the `experimental.optimizeHoistedScript` option + +- Updated dependencies [[`b675acb2a`](https://github.com/withastro/astro/commit/b675acb2aa820448e9c0d363339a37fbac873215)]: + - @astrojs/telemetry@3.0.0-beta.1 + ## 3.0.0-beta.0 ### Major Changes diff --git a/packages/astro/e2e/errors.test.js b/packages/astro/e2e/errors.test.js index 2a5a83acecc4..4cb1b02fb5c3 100644 --- a/packages/astro/e2e/errors.test.js +++ b/packages/astro/e2e/errors.test.js @@ -105,7 +105,10 @@ test.describe('Error display', () => { // Wait for page reload page.waitForNavigation(), // Edit the component file - astro.editFile('./src/components/svelte/SvelteSyntaxError.svelte', () => `

No mismatch

`), + astro.editFile( + './src/components/svelte/SvelteSyntaxError.svelte', + () => `

No mismatch

` + ), ]); expect(await page.locator('vite-error-overlay').count()).toEqual(0); diff --git a/packages/astro/package.json b/packages/astro/package.json index c52c93ea3d47..909cbe813cf1 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", diff --git a/packages/astro/src/vite-plugin-markdown/index.ts b/packages/astro/src/vite-plugin-markdown/index.ts index aff27f7a6d4b..be77b3caadab 100644 --- a/packages/astro/src/vite-plugin-markdown/index.ts +++ b/packages/astro/src/vite-plugin-markdown/index.ts @@ -110,7 +110,9 @@ export default function markdown({ settings, logging }: AstroPluginOptions): Plu } const code = escapeViteEnvReferences(` - import { unescapeHTML, spreadAttributes, createComponent, render, renderComponent } from ${JSON.stringify(astroServerRuntimeModulePath)}; + import { unescapeHTML, spreadAttributes, createComponent, render, renderComponent } from ${JSON.stringify( + astroServerRuntimeModulePath + )}; import { AstroError, AstroErrorData } from ${JSON.stringify(astroErrorModulePath)}; ${layout ? `import Layout from ${JSON.stringify(layout)};` : ''} diff --git a/packages/astro/src/vite-plugin-mdx/index.ts b/packages/astro/src/vite-plugin-mdx/index.ts index 473c4a78e12b..f2b06806831a 100644 --- a/packages/astro/src/vite-plugin-mdx/index.ts +++ b/packages/astro/src/vite-plugin-mdx/index.ts @@ -1,9 +1,5 @@ import type { TransformResult } from 'rollup'; -import { - transformWithEsbuild, - type Plugin, - type ResolvedConfig, -} from 'vite'; +import { transformWithEsbuild, type Plugin, type ResolvedConfig } from 'vite'; import type { AstroRenderer, AstroSettings } from '../@types/astro'; import type { LogOptions } from '../core/logger/core.js'; import type { PluginMetadata } from '../vite-plugin-astro/types'; diff --git a/packages/astro/test/jsx.test.js b/packages/astro/test/jsx.test.js index 64c7a7609fcd..b1907481797f 100644 --- a/packages/astro/test/jsx.test.js +++ b/packages/astro/test/jsx.test.js @@ -65,6 +65,6 @@ describe('jsx-runtime', () => { const $ = cheerio.load(html); expect($('#mdx-wrapper #hello-world')).to.have.a.lengthOf(1, 'md content rendered'); - expect($('#mdx-wrapper #react')).to.have.a.lengthOf(1, 'React component rendered') + expect($('#mdx-wrapper #react')).to.have.a.lengthOf(1, 'React component rendered'); }); }); diff --git a/packages/astro/test/preact-compat-component.test.js b/packages/astro/test/preact-compat-component.test.js index 8937e9afa88e..0c1991f12986 100644 --- a/packages/astro/test/preact-compat-component.test.js +++ b/packages/astro/test/preact-compat-component.test.js @@ -20,9 +20,9 @@ describe('Preact compat component', () => { devServer = await fixture.startDevServer(); }); - after(async() => { + after(async () => { await devServer.stop(); - }) + }); it('Can load Counter', async () => { const res = await fixture.fetch('/'); diff --git a/packages/integrations/cloudflare/CHANGELOG.md b/packages/integrations/cloudflare/CHANGELOG.md index 2411aca3612a..74c6f8c43726 100644 --- a/packages/integrations/cloudflare/CHANGELOG.md +++ b/packages/integrations/cloudflare/CHANGELOG.md @@ -1,5 +1,17 @@ # @astrojs/cloudflare +## 7.0.0-beta.1 + +### Minor Changes + +- [#7846](https://github.com/withastro/astro/pull/7846) [`ea30a9d4f`](https://github.com/withastro/astro/commit/ea30a9d4f2d7a12345869e971f3051cf803dbe74) Thanks [@schummar](https://github.com/schummar)! - More efficient \_routes.json + +### Patch Changes + +- Updated dependencies [[`65c354969`](https://github.com/withastro/astro/commit/65c354969e6fe0ef6d622e8f4c545e2f717ce8c6), [`3c3100851`](https://github.com/withastro/astro/commit/3c31008519ce68b5b1b1cb23b71fbe0a2d506882), [`34cb20021`](https://github.com/withastro/astro/commit/34cb2002161ba88df6bcb72fecfd12ed867c134b), [`7bd1b86f8`](https://github.com/withastro/astro/commit/7bd1b86f85c06fdde0a1ed9146d01bac69990671), [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae), [`70f34f5a3`](https://github.com/withastro/astro/commit/70f34f5a355f42526ee9e5355f3de8e510002ea2), [`0f637c71e`](https://github.com/withastro/astro/commit/0f637c71e511cb4c51712128d217a26c8eee4d40), [`866ed4098`](https://github.com/withastro/astro/commit/866ed4098edffb052239cdb26e076cf8db61b1d9), [`5b1e39ef6`](https://github.com/withastro/astro/commit/5b1e39ef6ec6dcebea96584f95d9530bd9aa715d)]: + - astro@3.0.0-beta.1 + - @astrojs/underscore-redirects@0.3.0-beta.0 + ## 7.0.0-beta.0 ### Major Changes diff --git a/packages/integrations/cloudflare/package.json b/packages/integrations/cloudflare/package.json index c4f4ac54c5bd..09e34df36bf8 100644 --- a/packages/integrations/cloudflare/package.json +++ b/packages/integrations/cloudflare/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/cloudflare", "description": "Deploy your site to Cloudflare Workers/Pages", - "version": "7.0.0-beta.0", + "version": "7.0.0-beta.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -45,7 +45,7 @@ "tiny-glob": "^0.2.9" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "astro": "workspace:*", diff --git a/packages/integrations/deno/package.json b/packages/integrations/deno/package.json index 8079cbac5617..9472e9475e01 100644 --- a/packages/integrations/deno/package.json +++ b/packages/integrations/deno/package.json @@ -36,7 +36,7 @@ "esbuild": "^0.15.18" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "astro": "workspace:*", diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index 5426686af204..1a9736f3046b 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -75,7 +75,7 @@ "zod": "^3.17.3" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "@astrojs/markdown-remark": "workspace:*", diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index f5ed6fad8bd5..e231c479bafa 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -54,7 +54,7 @@ "vfile": "^5.3.7" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "@types/chai": "^4.3.5", diff --git a/packages/integrations/mdx/src/index.ts b/packages/integrations/mdx/src/index.ts index 4cce2392128a..e9cba005e45e 100644 --- a/packages/integrations/mdx/src/index.ts +++ b/packages/integrations/mdx/src/index.ts @@ -38,8 +38,14 @@ export default function mdx(partialMdxOptions: Partial = {}): AstroI name: '@astrojs/mdx', hooks: { 'astro:config:setup': async (params) => { - const { updateConfig, config, addPageExtension, addContentEntryType, command, addRenderer } = - params as SetupHookParams; + const { + updateConfig, + config, + addPageExtension, + addContentEntryType, + command, + addRenderer, + } = params as SetupHookParams; addRenderer(astroJSXRenderer); addPageExtension('.mdx'); diff --git a/packages/integrations/netlify/CHANGELOG.md b/packages/integrations/netlify/CHANGELOG.md index 108964c492ca..a3ec39ce2b25 100644 --- a/packages/integrations/netlify/CHANGELOG.md +++ b/packages/integrations/netlify/CHANGELOG.md @@ -1,5 +1,35 @@ # @astrojs/netlify +## 3.0.0-beta.1 + +### Major Changes + +- [#8029](https://github.com/withastro/astro/pull/8029) [`2ee418e06`](https://github.com/withastro/astro/commit/2ee418e06ab1f7855dee0078afbad0b06de3b183) Thanks [@matthewp](https://github.com/matthewp)! - Remove the Netlify Edge adapter + + `@astrojs/netlify/functions` now supports Edge middleware, so a separate adapter for Edge itself (deploying your entire app to the edge) is no longer necessary. Please update your Astro config to reflect this change: + + ```diff + // astro.config.mjs + import { defineConfig } from 'astro/config'; + - import netlify from '@astrojs/netlify/edge'; + + import netlify from '@astrojs/netlify/functions'; + + export default defineConfig({ + output: 'server', + adapter: netlify({ + + edgeMiddleware: true + }), + }); + ``` + + This adapter had several known limitations and compatibility issues that prevented many people from using it in production. To reduce maintenance costs and because we have a better story with Serveless + Edge Middleware, we are removing the Edge adapter. + +### Patch Changes + +- Updated dependencies [[`65c354969`](https://github.com/withastro/astro/commit/65c354969e6fe0ef6d622e8f4c545e2f717ce8c6), [`3c3100851`](https://github.com/withastro/astro/commit/3c31008519ce68b5b1b1cb23b71fbe0a2d506882), [`34cb20021`](https://github.com/withastro/astro/commit/34cb2002161ba88df6bcb72fecfd12ed867c134b), [`7bd1b86f8`](https://github.com/withastro/astro/commit/7bd1b86f85c06fdde0a1ed9146d01bac69990671), [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae), [`70f34f5a3`](https://github.com/withastro/astro/commit/70f34f5a355f42526ee9e5355f3de8e510002ea2), [`0f637c71e`](https://github.com/withastro/astro/commit/0f637c71e511cb4c51712128d217a26c8eee4d40), [`866ed4098`](https://github.com/withastro/astro/commit/866ed4098edffb052239cdb26e076cf8db61b1d9), [`5b1e39ef6`](https://github.com/withastro/astro/commit/5b1e39ef6ec6dcebea96584f95d9530bd9aa715d)]: + - astro@3.0.0-beta.1 + - @astrojs/underscore-redirects@0.3.0-beta.0 + ## 3.0.0-beta.0 ### Major Changes diff --git a/packages/integrations/netlify/package.json b/packages/integrations/netlify/package.json index 1214dc6f77a0..bf0a062c16e4 100644 --- a/packages/integrations/netlify/package.json +++ b/packages/integrations/netlify/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/netlify", "description": "Deploy your site to Netlify", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -43,7 +43,7 @@ "esbuild": "^0.18.16" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "@netlify/edge-functions": "^2.0.0", diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json index c01abae80280..239e5c087431 100644 --- a/packages/integrations/node/package.json +++ b/packages/integrations/node/package.json @@ -37,7 +37,7 @@ "server-destroy": "^1.0.1" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "@types/node": "^18.16.18", diff --git a/packages/integrations/preact/CHANGELOG.md b/packages/integrations/preact/CHANGELOG.md index 184d1914e94e..bd27174ada24 100644 --- a/packages/integrations/preact/CHANGELOG.md +++ b/packages/integrations/preact/CHANGELOG.md @@ -1,5 +1,13 @@ # @astrojs/preact +## 3.0.0-beta.1 + +### Major Changes + +- [#7924](https://github.com/withastro/astro/pull/7924) [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae) Thanks [@matthewp](https://github.com/matthewp)! - New `include` and `exclude` config options + + The Preact integration now has new `include` and `exclude` config options. Use these if you want to use Preact alongside another JSX framework; include specifies files to be compiled for Preact and `exclude` does the opposite. + ## 3.0.0-beta.0 ### Major Changes diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json index 5fefa53ebe4d..90d54ec2573b 100644 --- a/packages/integrations/preact/package.json +++ b/packages/integrations/preact/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/preact", "description": "Use Preact components within Astro", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", diff --git a/packages/integrations/preact/src/index.ts b/packages/integrations/preact/src/index.ts index 153b9e1c35eb..9551f97eb5fa 100644 --- a/packages/integrations/preact/src/index.ts +++ b/packages/integrations/preact/src/index.ts @@ -1,5 +1,5 @@ import type { AstroIntegration, AstroRenderer, ViteUserConfig } from 'astro'; -import preact, {type PreactPluginOptions as VitePreactPluginOptions} from '@preact/preset-vite'; +import preact, { type PreactPluginOptions as VitePreactPluginOptions } from '@preact/preset-vite'; import { fileURLToPath } from 'node:url'; const babelCwd = new URL('../', import.meta.url); @@ -12,9 +12,9 @@ function getRenderer(development: boolean): AstroRenderer { }; } -export type Options =Pick & { compat?: boolean }; +export type Options = Pick & { compat?: boolean }; -export default function ({include, exclude, compat}: Options = {}): AstroIntegration { +export default function ({ include, exclude, compat }: Options = {}): AstroIntegration { return { name: '@astrojs/preact', hooks: { @@ -23,8 +23,8 @@ export default function ({include, exclude, compat}: Options = {}): AstroIntegra include, exclude, babel: { - cwd: fileURLToPath(babelCwd) - } + cwd: fileURLToPath(babelCwd), + }, }); const viteConfig: ViteUserConfig = { @@ -35,8 +35,8 @@ export default function ({include, exclude, compat}: Options = {}): AstroIntegra }; // If not compat, delete the plugin that does it - if(!compat) { - const pIndex = preactPlugin.findIndex(p => p.name == 'preact:config'); + if (!compat) { + const pIndex = preactPlugin.findIndex((p) => p.name == 'preact:config'); if (pIndex >= 0) { preactPlugin.splice(pIndex, 1); } @@ -44,12 +44,10 @@ export default function ({include, exclude, compat}: Options = {}): AstroIntegra viteConfig.optimizeDeps!.include!.push( 'preact/compat', 'preact/test-utils', - 'preact/compat/jsx-runtime', + 'preact/compat/jsx-runtime' ); viteConfig.resolve = { - alias: [ - { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' }, - ], + alias: [{ find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' }], dedupe: ['preact/compat', 'preact'], }; // noExternal React entrypoints to be bundled, resolved, and aliased by Vite diff --git a/packages/integrations/react/CHANGELOG.md b/packages/integrations/react/CHANGELOG.md index 9b5173098db9..c95bd40faa2f 100644 --- a/packages/integrations/react/CHANGELOG.md +++ b/packages/integrations/react/CHANGELOG.md @@ -1,5 +1,15 @@ # @astrojs/react +## 3.0.0-beta.1 + +### Major Changes + +- [#7924](https://github.com/withastro/astro/pull/7924) [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae) Thanks [@matthewp](https://github.com/matthewp)! - Support for React Refresh + + The React integration now fully supports React Refresh and is backed by `@vitejs/plugin-react`. + + Also included in this change are new `include` and `exclude` config options. Use these if you want to use React alongside another JSX framework; include specifies files to be compiled for React and `exclude` does the opposite. + ## 3.0.0-beta.0 ### Major Changes diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json index 28dbf0891bbc..889d115648ff 100644 --- a/packages/integrations/react/package.json +++ b/packages/integrations/react/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/react", "description": "Use React components within Astro", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", diff --git a/packages/integrations/react/src/index.ts b/packages/integrations/react/src/index.ts index da008a67016a..f5332e2ed972 100644 --- a/packages/integrations/react/src/index.ts +++ b/packages/integrations/react/src/index.ts @@ -1,9 +1,8 @@ import type { AstroIntegration } from 'astro'; import { version as ReactVersion } from 'react-dom'; -import react, {type Options as ViteReactPluginOptions} from '@vitejs/plugin-react'; +import react, { type Options as ViteReactPluginOptions } from '@vitejs/plugin-react'; import { appendForwardSlash } from '@astrojs/internal-helpers/path'; - const FAST_REFRESH_PREAMBLE = react.preambleCode; function getRenderer() { @@ -18,7 +17,7 @@ function getRenderer() { }; } -function getViteConfiguration({include, exclude}: Options = {}) { +function getViteConfiguration({ include, exclude }: Options = {}) { return { optimizeDeps: { include: [ @@ -36,7 +35,7 @@ function getViteConfiguration({include, exclude}: Options = {}) { : '@astrojs/react/server-v17.js', ], }, - plugins: [react({include, exclude})], + plugins: [react({ include, exclude })], resolve: { dedupe: ['react', 'react-dom', 'react-dom/server'], }, @@ -56,16 +55,22 @@ function getViteConfiguration({include, exclude}: Options = {}) { }; } -export type Options =Pick; -export default function ({include, exclude}: Pick = {}): AstroIntegration { +export type Options = Pick; +export default function ({ + include, + exclude, +}: Pick = {}): AstroIntegration { return { name: '@astrojs/react', hooks: { 'astro:config:setup': ({ config, command, addRenderer, updateConfig, injectScript }) => { addRenderer(getRenderer()); - updateConfig({ vite: getViteConfiguration({include, exclude}) }); + updateConfig({ vite: getViteConfiguration({ include, exclude }) }); if (command === 'dev') { - const preamble = FAST_REFRESH_PREAMBLE.replace(`__BASE__`, appendForwardSlash(config.base)) + const preamble = FAST_REFRESH_PREAMBLE.replace( + `__BASE__`, + appendForwardSlash(config.base) + ); injectScript('before-hydration', preamble); } }, diff --git a/packages/integrations/solid/CHANGELOG.md b/packages/integrations/solid/CHANGELOG.md index 197286f769ab..6b1e4b012534 100644 --- a/packages/integrations/solid/CHANGELOG.md +++ b/packages/integrations/solid/CHANGELOG.md @@ -1,5 +1,13 @@ # @astrojs/solid-js +## 3.0.0-beta.1 + +### Major Changes + +- [#7924](https://github.com/withastro/astro/pull/7924) [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae) Thanks [@matthewp](https://github.com/matthewp)! - New `include` and `exclude` config options + + The Solid integration now has new `include` and `exclude` config options. Use these if you want to use Solid alongside another JSX framework; include specifies files to be compiled for Solid and `exclude` does the opposite. + ## 3.0.0-beta.0 ### Major Changes diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json index 580545f442e9..5dc00a86efe1 100644 --- a/packages/integrations/solid/package.json +++ b/packages/integrations/solid/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/solid-js", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "description": "Use Solid components within Astro", "type": "module", "types": "./dist/index.d.ts", diff --git a/packages/integrations/solid/src/index.ts b/packages/integrations/solid/src/index.ts index 1385ffc212b9..127d9ddb668a 100644 --- a/packages/integrations/solid/src/index.ts +++ b/packages/integrations/solid/src/index.ts @@ -1,10 +1,7 @@ import type { AstroIntegration, AstroRenderer } from 'astro'; import solid, { type Options as ViteSolidPluginOptions } from 'vite-plugin-solid'; -async function getViteConfiguration( - isDev: boolean, - { include, exclude }: Options = {}, -) { +async function getViteConfiguration(isDev: boolean, { include, exclude }: Options = {}) { // https://github.com/solidjs/vite-plugin-solid // We inject the dev mode only if the user explicitly wants it or if we are in dev (serve) mode const nestedDeps = ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h']; @@ -28,11 +25,11 @@ async function getViteConfiguration( esbuild: { // To support using alongside other JSX frameworks, still let // esbuild compile stuff. Solid goes first anyways. - include: /\.(m?ts|[jt]sx)$/ + include: /\.(m?ts|[jt]sx)$/, }, - } + }; }, - } + }, ], ssr: { external: ['babel-preset-solid'], diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index 7b03b9413c77..425cd12b5652 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -48,7 +48,7 @@ "vite": "^4.4.6" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0", + "astro": "workspace:^3.0.0-beta.1", "svelte": "^3.55.0 || ^4.0.0" }, "engines": { diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index 7e678bb80181..11bf76a5299c 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -43,7 +43,7 @@ "vite": "^4.4.6" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0", + "astro": "workspace:^3.0.0-beta.1", "tailwindcss": "^3.0.24" } } diff --git a/packages/integrations/vercel/CHANGELOG.md b/packages/integrations/vercel/CHANGELOG.md index ebc411bcd9a6..70a1ba43e1ee 100644 --- a/packages/integrations/vercel/CHANGELOG.md +++ b/packages/integrations/vercel/CHANGELOG.md @@ -1,5 +1,34 @@ # @astrojs/vercel +## 4.0.0-beta.1 + +### Major Changes + +- [#8015](https://github.com/withastro/astro/pull/8015) [`9cc4e48e6`](https://github.com/withastro/astro/commit/9cc4e48e6a858d3a12e6373a5e287b32d24a1c5a) Thanks [@matthewp](https://github.com/matthewp)! - Remove the Vercel Edge adapter + + `@astrojs/vercel/serverless` now supports Edge middleware, so a separate adapter for Edge itself (deploying your entire app to the edge) is no longer necessary. Please update your Astro config to reflect this change: + + ```diff + // astro.config.mjs + import { defineConfig } from 'astro/config'; + - import vercel from '@astrojs/vercel/edge'; + + import vercel from '@astrojs/vercel/serverless'; + + export default defineConfig({ + output: 'server', + adapter: vercel({ + + edgeMiddleware: true + }), + }); + ``` + + This adapter had several known limitations and compatibility issues that prevented many people from using it in production. To reduce maintenance costs and because we have a better story with Serveless + Edge Middleware, we are removing the Edge adapter. + +### Patch Changes + +- Updated dependencies [[`65c354969`](https://github.com/withastro/astro/commit/65c354969e6fe0ef6d622e8f4c545e2f717ce8c6), [`3c3100851`](https://github.com/withastro/astro/commit/3c31008519ce68b5b1b1cb23b71fbe0a2d506882), [`34cb20021`](https://github.com/withastro/astro/commit/34cb2002161ba88df6bcb72fecfd12ed867c134b), [`7bd1b86f8`](https://github.com/withastro/astro/commit/7bd1b86f85c06fdde0a1ed9146d01bac69990671), [`519a1c4e8`](https://github.com/withastro/astro/commit/519a1c4e8407c7abcb8d879b67a9f4b960652cae), [`70f34f5a3`](https://github.com/withastro/astro/commit/70f34f5a355f42526ee9e5355f3de8e510002ea2), [`0f637c71e`](https://github.com/withastro/astro/commit/0f637c71e511cb4c51712128d217a26c8eee4d40), [`866ed4098`](https://github.com/withastro/astro/commit/866ed4098edffb052239cdb26e076cf8db61b1d9), [`5b1e39ef6`](https://github.com/withastro/astro/commit/5b1e39ef6ec6dcebea96584f95d9530bd9aa715d)]: + - astro@3.0.0-beta.1 + ## 4.0.0-beta.0 ### Major Changes diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index 3c13c8a98ec1..46d8366ad09d 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/vercel", "description": "Deploy your site to Vercel", - "version": "4.0.0-beta.0", + "version": "4.0.0-beta.1", "type": "module", "author": "withastro", "license": "MIT", @@ -60,7 +60,7 @@ "web-vitals": "^3.3.2" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0" + "astro": "workspace:^3.0.0-beta.1" }, "devDependencies": { "@types/set-cookie-parser": "^2.4.2", diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 716d4a7437bf..b010028dd21a 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -56,7 +56,7 @@ "vue": "^3.3.4" }, "peerDependencies": { - "astro": "workspace:^3.0.0-beta.0", + "astro": "workspace:^3.0.0-beta.1", "vue": "^3.2.30" }, "engines": { diff --git a/packages/telemetry/CHANGELOG.md b/packages/telemetry/CHANGELOG.md index 33590cf2a71e..b56b1129b4e6 100644 --- a/packages/telemetry/CHANGELOG.md +++ b/packages/telemetry/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/telemetry +## 3.0.0-beta.1 + +### Patch Changes + +- [#7952](https://github.com/withastro/astro/pull/7952) [`b675acb2a`](https://github.com/withastro/astro/commit/b675acb2aa820448e9c0d363339a37fbac873215) Thanks [@astrobot-houston](https://github.com/astrobot-houston)! - Remove undici dependency + ## 3.0.0-beta.0 ### Major Changes diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index b739e13e2c7e..6e54d1d3740b 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/telemetry", - "version": "3.0.0-beta.0", + "version": "3.0.0-beta.1", "type": "module", "types": "./dist/types/index.d.ts", "author": "withastro", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index baeea8504e8f..a45afb8b2b3a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -125,8 +125,8 @@ importers: examples/basics: dependencies: astro: - specifier: ^2.10.4 - version: 2.10.4(@types/node@18.16.18) + specifier: ^3.0.0-beta.1 + version: link:../../packages/astro examples/blog: dependencies: @@ -140,19 +140,19 @@ importers: specifier: ^3.0.0-beta.0 version: link:../../packages/integrations/sitemap astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/deno: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro devDependencies: '@astrojs/deno': @@ -171,7 +171,7 @@ importers: specifier: ^3.12.2 version: 3.12.2 astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/framework-lit: @@ -183,7 +183,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro lit: specifier: ^2.7.5 @@ -192,13 +192,13 @@ importers: examples/framework-multiple: dependencies: '@astrojs/preact': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/preact '@astrojs/react': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/react '@astrojs/solid-js': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/solid '@astrojs/svelte': specifier: ^4.0.0-beta.0 @@ -207,7 +207,7 @@ importers: specifier: ^3.0.0-beta.0 version: link:../../packages/integrations/vue astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro preact: specifier: ^10.15.1 @@ -231,13 +231,13 @@ importers: examples/framework-preact: dependencies: '@astrojs/preact': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/preact '@preact/signals': specifier: ^1.1.3 version: 1.1.3(preact@10.15.1) astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro preact: specifier: ^10.15.1 @@ -246,7 +246,7 @@ importers: examples/framework-react: dependencies: '@astrojs/react': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/react '@types/react': specifier: ^18.2.13 @@ -255,7 +255,7 @@ importers: specifier: ^18.2.6 version: 18.2.6 astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -267,10 +267,10 @@ importers: examples/framework-solid: dependencies: '@astrojs/solid-js': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/solid astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro solid-js: specifier: ^1.7.6 @@ -282,7 +282,7 @@ importers: specifier: ^4.0.0-beta.0 version: link:../../packages/integrations/svelte astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro svelte: specifier: ^3.59.1 @@ -294,7 +294,7 @@ importers: specifier: ^3.0.0-beta.0 version: link:../../packages/integrations/vue astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro vue: specifier: ^3.3.4 @@ -306,13 +306,13 @@ importers: specifier: ^6.0.0-beta.0 version: link:../../packages/integrations/node astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/middleware: @@ -321,7 +321,7 @@ importers: specifier: ^6.0.0-beta.0 version: link:../../packages/integrations/node astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -330,19 +330,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/ssr: @@ -354,7 +354,7 @@ importers: specifier: ^4.0.0-beta.0 version: link:../../packages/integrations/svelte astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro svelte: specifier: ^3.59.1 @@ -366,7 +366,7 @@ importers: specifier: ^1.0.0-beta.0 version: link:../../packages/integrations/markdoc astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/with-markdown-plugins: @@ -375,7 +375,7 @@ importers: specifier: ^3.0.0-beta.0 version: link:../../packages/markdown/remark astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro hast-util-select: specifier: ^5.0.5 @@ -396,7 +396,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro examples/with-mdx: @@ -405,10 +405,10 @@ importers: specifier: ^1.0.0-beta.0 version: link:../../packages/integrations/mdx '@astrojs/preact': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/preact astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro preact: specifier: ^10.15.1 @@ -417,13 +417,13 @@ importers: examples/with-nanostores: dependencies: '@astrojs/preact': - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/integrations/preact '@nanostores/preact': specifier: ^0.4.1 version: 0.4.1(nanostores@0.8.1)(preact@10.15.1) astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro nanostores: specifier: ^0.8.1 @@ -444,7 +444,7 @@ importers: specifier: ^1.6.0 version: 1.6.0 astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro autoprefixer: specifier: ^10.4.14 @@ -462,7 +462,7 @@ importers: examples/with-vite-plugin-pwa: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro vite-plugin-pwa: specifier: 0.14.7 @@ -474,7 +474,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^3.0.0-beta.0 + specifier: ^3.0.0-beta.1 version: link:../../packages/astro vitest: specifier: ^0.31.4 @@ -4274,45 +4274,6 @@ importers: specifier: ^4.4.6 version: 4.4.6(@types/node@14.18.51) - packages/integrations/netlify/test/edge-functions/fixtures/dynimport: - dependencies: - '@astrojs/netlify': - specifier: workspace:* - version: link:../../../.. - astro: - specifier: workspace:* - version: link:../../../../../../astro - - packages/integrations/netlify/test/edge-functions/fixtures/edge-basic: - dependencies: - '@astrojs/netlify': - specifier: workspace:* - version: link:../../../.. - '@astrojs/react': - specifier: workspace:* - version: link:../../../../../react - astro: - specifier: workspace:* - version: link:../../../../../../astro - - packages/integrations/netlify/test/edge-functions/fixtures/prerender: - dependencies: - '@astrojs/netlify': - specifier: workspace:* - version: link:../../../.. - astro: - specifier: workspace:* - version: link:../../../../../../astro - - packages/integrations/netlify/test/edge-functions/fixtures/root-dynamic: - dependencies: - '@astrojs/netlify': - specifier: workspace:* - version: link:../../../.. - astro: - specifier: workspace:* - version: link:../../../../../../astro - packages/integrations/netlify/test/hosted/hosted-astro-project: dependencies: '@astrojs/netlify': @@ -5204,30 +5165,6 @@ packages: /@astrojs/compiler@1.8.1: resolution: {integrity: sha512-C28qplQzgIJ+JU9S+1wNx+ue2KCBUp0TTAd10EWAEkk4RsL3Tzlw0BYvLDDb4KP9jS48lXmR4/1TtZ4aavYJ8Q==} - /@astrojs/internal-helpers@0.1.2: - resolution: {integrity: sha512-YXLk1CUDdC9P5bjFZcGjz+cE/ZDceXObDTXn/GCID4r8LjThuexxi+dlJqukmUpkSItzQqgzfWnrPLxSFPejdA==} - dev: false - - /@astrojs/language-server@1.0.0: - resolution: {integrity: sha512-oEw7AwJmzjgy6HC9f5IdrphZ1GVgfV/+7xQuyf52cpTiRWd/tJISK3MsKP0cDkVlfodmNABNFnAaAWuLZEiiiA==} - hasBin: true - dependencies: - '@astrojs/compiler': 1.8.1 - '@jridgewell/trace-mapping': 0.3.18 - '@vscode/emmet-helper': 2.8.8 - events: 3.3.0 - prettier: 2.8.8 - prettier-plugin-astro: 0.8.1 - synckit: 0.8.5 - vscode-css-languageservice: 6.2.6 - vscode-html-languageservice: 5.0.6 - vscode-languageserver: 8.1.0 - vscode-languageserver-protocol: 3.17.3 - vscode-languageserver-textdocument: 1.0.8 - vscode-languageserver-types: 3.17.3 - vscode-uri: 3.0.7 - dev: false - /@astrojs/language-server@2.2.0(prettier-plugin-astro@0.11.0)(prettier@3.0.1)(typescript@5.1.6): resolution: {integrity: sha512-zyEumkwcep3pGyMpcEJFEn96jV6pEg3CUtjehnT9KseDFqf+gPYTbw5nwOpN9uXIJ/E5bAxhqpkr3J2LCQHRrg==} hasBin: true @@ -5264,58 +5201,6 @@ packages: - typescript dev: true - /@astrojs/markdown-remark@2.2.1(astro@2.10.4): - resolution: {integrity: sha512-VF0HRv4GpC1XEMLnsKf6jth7JSmlt9qpqP0josQgA2eSpCIAC/Et+y94mgdBIZVBYH/yFnMoIxgKVe93xfO2GA==} - peerDependencies: - astro: '*' - dependencies: - '@astrojs/prism': 2.1.2 - astro: 2.10.4(@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/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'} @@ -7235,14 +7120,17 @@ packages: resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} dependencies: '@emmetio/scanner': 1.0.4 + dev: true /@emmetio/css-abbreviation@2.1.8: resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} dependencies: '@emmetio/scanner': 1.0.4 + dev: true /@emmetio/scanner@1.0.4: resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + dev: true /@esbuild-plugins/node-globals-polyfill@0.1.1(esbuild@0.14.47): resolution: {integrity: sha512-MR0oAA+mlnJWrt1RQVQ+4VYuRJW/P2YmRTv1AsplObyvuBMnPHiizUF95HHYiSsMGLhyGtWufaq2XQg6+iurBg==} @@ -8225,18 +8113,6 @@ packages: parse5: 7.1.2 dev: false - /@pkgr/utils@2.4.0: - resolution: {integrity: sha512-2OCURAmRtdlL8iUDTypMrrxfwe8frXTeXaxGsVOaYtc/wrUyk8Z/0OBetM7cdlsy7ZFWlMX72VogKeh+A4Xcjw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.1 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.5.3 - dev: false - /@playwright/test@1.29.2: resolution: {integrity: sha512-+3/GPwOgcoF0xLz/opTnahel1/y42PdcgZ4hs+BZGIUjtmEFSXGg+nFoaH3NSmuc7a6GSFwXDJ5L7VXpqzigNg==} engines: {node: '>=14'} @@ -9227,6 +9103,7 @@ packages: vscode-languageserver-textdocument: 1.0.8 vscode-languageserver-types: 3.17.3 vscode-uri: 2.1.2 + dev: true /@vscode/l10n@0.0.11: resolution: {integrity: sha512-ukOMWnCg1tCvT7WnDfsUKQOFDQGsyR5tNgRpwmqi+5/vzU3ghdDXzvIM4IOPdSb3OeSsBNvmSL8nxIVOqi2WXA==} @@ -9234,6 +9111,7 @@ packages: /@vscode/l10n@0.0.14: resolution: {integrity: sha512-/yrv59IEnmh655z1oeDnGcvMYwnEzNzHLgeYcQCkhYX0xBvYWrAuefoiLcPBUkMpJsb46bqQ6Yv4pwTTQ4d3Qg==} + dev: true /@vue/babel-helper-vue-transform-on@1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} @@ -9605,85 +9483,6 @@ packages: ultrahtml: 0.1.3 dev: false - /astro@2.10.4(@types/node@18.16.18): - resolution: {integrity: sha512-6MQ2E25tvHFNVgZ2uaNm33w2DKTyurlDLU0UUcdnAxVQwldDD8Qq8KDHm+nBx1CAWycjdbjJi9VQVvX2TOCMeQ==} - engines: {node: '>=16.12.0', npm: '>=6.14.0'} - hasBin: true - peerDependencies: - sharp: '>=0.31.0' - peerDependenciesMeta: - sharp: - optional: true - dependencies: - '@astrojs/compiler': 1.8.1 - '@astrojs/internal-helpers': 0.1.2 - '@astrojs/language-server': 1.0.0 - '@astrojs/markdown-remark': 2.2.1(astro@2.10.4) - '@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.3.1 - 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.30.2 - mime: 3.0.0 - network-information-types: 0.1.1(typescript@5.1.6) - 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.3 - 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.1.6 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - vite: 4.4.6(@types/node@18.16.18)(sass@1.63.4) - vitefu: 0.2.4(vite@4.4.6) - which-pm: 2.0.0 - yargs-parser: 21.1.1 - zod: 3.20.6 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: false - /async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: false @@ -9855,11 +9654,6 @@ packages: is-windows: 1.0.2 dev: true - /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} - dev: false - /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -9925,13 +9719,6 @@ packages: wrap-ansi: 8.1.0 dev: false - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.51 - dev: false - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -10000,18 +9787,12 @@ packages: semver: 7.5.3 dev: true - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 - dev: false - /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 + dev: true /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} @@ -10695,34 +10476,11 @@ packages: engines: {node: '>=0.10.0'} dev: false - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - dev: false - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.1.1 - titleize: 3.0.0 - dev: false - /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: false - /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -10917,6 +10675,7 @@ packages: dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 + dev: true /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -11752,10 +11511,6 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /estree-walker@3.0.0: - resolution: {integrity: sha512-s6ceX0NFiU/vKPiKvFdR83U1Zffu7upwZsGwpoqfg5rbbq1l50WQ5hCeIvM6E6oD4shUHCYMsiFPns4Jk0YfMQ==} - dev: false - /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -11771,26 +11526,6 @@ packages: engines: {node: '>= 0.6'} dev: false - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: false - - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: false - /execa@6.1.0: resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -11805,21 +11540,6 @@ packages: signal-exit: 3.0.7 strip-final-newline: 3.0.0 - /execa@7.1.1: - resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: false - /expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -11873,6 +11593,7 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: true /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -12646,20 +12367,10 @@ packages: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: false - /human-signals@3.0.1: resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} engines: {node: '>=12.20.0'} - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: false - /hyperid@3.1.1: resolution: {integrity: sha512-RveV33kIksycSf7HLkq1sHB5wW0OwuX8ot8MYnY++gaaPXGFfKpBncHrAWxdpuEeRlazUMGWefwP1w6o6GaumA==} dependencies: @@ -12866,14 +12577,6 @@ packages: /is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: false - /is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} @@ -13203,6 +12906,7 @@ packages: /jsonc-parser@2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + dev: true /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -14565,13 +14269,6 @@ packages: string.prototype.padend: 3.1.4 dev: true - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: false - /npm-run-path@5.1.0: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -14667,16 +14364,6 @@ packages: which-pm-runs: 1.1.0 dev: true - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: false - /optionator@0.8.3: resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} engines: {node: '>= 0.8.0'} @@ -15491,20 +15178,11 @@ packages: sass-formatter: 0.7.6 dev: true - /prettier-plugin-astro@0.8.1: - resolution: {integrity: sha512-lJ/mG/Lz/ccSwNtwqpFS126mtMVzFVyYv0ddTF9wqwrEG4seECjKDAyw/oGv915rAcJi8jr89990nqfpmG+qdg==} - engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'} - dependencies: - '@astrojs/compiler': 1.8.1 - prettier: 2.8.8 - sass-formatter: 0.7.6 - synckit: 0.8.5 - dev: false - /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true + dev: true /prettier@3.0.1: resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} @@ -16164,13 +15842,6 @@ packages: optionalDependencies: fsevents: 2.3.2 - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: false - /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -16178,6 +15849,7 @@ packages: /s.color@0.0.15: resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} + dev: true /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} @@ -16203,6 +15875,7 @@ packages: resolution: {integrity: sha512-hXdxU6PCkiV3XAiSnX+XLqz2ohHoEnVUlrd8LEVMAI80uB1+OTScIkH9n6qQwImZpTye1r1WG1rbGUteHNhoHg==} dependencies: suf-log: 2.5.3 + dev: true /sass@1.63.4: resolution: {integrity: sha512-Sx/+weUmK+oiIlI+9sdD0wZHsqpbgQg8wSwSnGBjwb5GwqFhYNwwnI+UWZtLjKvKyFlKkatRK235qQ3mokyPoQ==} @@ -16630,6 +16303,7 @@ packages: /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + dev: true /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -16747,11 +16421,6 @@ packages: engines: {node: '>=10'} dev: false - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: false - /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -16815,6 +16484,7 @@ packages: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} dependencies: s.color: 0.0.15 + dev: true /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -16874,14 +16544,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.4.0 - tslib: 2.5.3 - dev: false - /tailwindcss@3.3.2: resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} engines: {node: '>=14.0.0'} @@ -17043,11 +16705,6 @@ packages: engines: {node: '>=14.0.0'} dev: false - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: false - /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -17356,13 +17013,6 @@ packages: busboy: 1.6.0 dev: true - /undici@5.22.1: - resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} - engines: {node: '>=14.0'} - dependencies: - busboy: 1.6.0 - dev: false - /unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} dev: false @@ -17542,11 +17192,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - dev: false - /upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -17988,6 +17633,7 @@ packages: vscode-languageserver-textdocument: 1.0.8 vscode-languageserver-types: 3.17.3 vscode-uri: 3.0.7 + dev: true /vscode-html-languageservice@5.0.6: resolution: {integrity: sha512-gCixNg6fjPO7+kwSMBAVXcwDRHdjz1WOyNfI0n5Wx0J7dfHG8ggb3zD1FI8E2daTZrwS1cooOiSoc1Xxph4qRQ==} @@ -17996,28 +17642,34 @@ packages: vscode-languageserver-textdocument: 1.0.8 vscode-languageserver-types: 3.17.3 vscode-uri: 3.0.7 + dev: true /vscode-jsonrpc@8.1.0: resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} engines: {node: '>=14.0.0'} + dev: true /vscode-languageserver-protocol@3.17.3: resolution: {integrity: sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==} dependencies: vscode-jsonrpc: 8.1.0 vscode-languageserver-types: 3.17.3 + dev: true /vscode-languageserver-textdocument@1.0.8: resolution: {integrity: sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==} + dev: true /vscode-languageserver-types@3.17.3: resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} + dev: true /vscode-languageserver@8.1.0: resolution: {integrity: sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==} hasBin: true dependencies: vscode-languageserver-protocol: 3.17.3 + dev: true /vscode-nls@5.2.0: resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} @@ -18035,9 +17687,11 @@ packages: /vscode-uri@2.1.2: resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: true /vscode-uri@3.0.7: resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} + dev: true /vue@3.3.4: resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} From 2aa6d8ace398a41c2dec5473521d758816b08191 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Mon, 14 Aug 2023 21:22:44 +0800 Subject: [PATCH 4/4] Add changeset for internal helper package (#8062) --- .changeset/big-tips-whisper.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/big-tips-whisper.md diff --git a/.changeset/big-tips-whisper.md b/.changeset/big-tips-whisper.md new file mode 100644 index 000000000000..ad532760f617 --- /dev/null +++ b/.changeset/big-tips-whisper.md @@ -0,0 +1,5 @@ +--- +'@astrojs/internal-helpers': patch +--- + +Trigger re-release to fix `collapseDuplicateSlashes` export