From 330620e1b3932d43b9efea6cbbbb75d48df99baa Mon Sep 17 00:00:00 2001
From: Drew Powers <1369770+drwpow@users.noreply.github.com>
Date: Fri, 22 Oct 2021 09:22:55 -0600
Subject: [PATCH] Update renderer API for Vite (#1623)
* Update renderer API for Vite
* Fix lit-element tests
* Clean up comments
* Throw friendly error if renderer provides viteConfig in a bad format
---
examples/blog-multiple-authors/package.json | 3 -
examples/blog/package.json | 3 -
examples/docs/package.json | 10 -
examples/framework-lit/package.json | 3 -
examples/framework-lit/src/pages/index.astro | 18 +-
examples/framework-multiple/package.json | 3 -
examples/framework-preact/package.json | 3 -
.../framework-preact/src/pages/index.astro | 18 +-
examples/framework-react/package.json | 3 -
.../framework-react/src/pages/index.astro | 17 +-
examples/framework-solid/package.json | 3 -
.../src/components/Counter.jsx | 3 +-
.../framework-solid/src/pages/index.astro | 5 +-
examples/framework-svelte/package.json | 3 -
.../framework-svelte/src/pages/index.astro | 17 +-
examples/framework-vue/package.json | 3 -
examples/framework-vue/src/pages/index.astro | 17 +-
examples/minimal/package.json | 3 -
examples/portfolio/package.json | 3 -
examples/starter/package.json | 3 -
examples/with-markdown-plugins/package.json | 3 -
examples/with-markdown/package.json | 3 -
examples/with-nanostores/package.json | 3 -
examples/with-tailwindcss/package.json | 3 -
packages/astro/src/@types/astro-core.ts | 18 +-
packages/astro/src/core/create-vite.ts | 175 ++++------
packages/astro/src/core/dev/index.ts | 2 +-
packages/astro/src/runtime/server/index.ts | 10 +-
packages/astro/src/vite-plugin-astro/index.ts | 6 +-
packages/astro/src/vite-plugin-fetch/index.ts | 6 +
packages/astro/src/vite-plugin-jsx/index.ts | 7 +-
packages/astro/test/custom-elements.test.js | 1 -
.../my-component-lib/hydration-polyfill.js | 3 +-
.../custom-elements/my-component-lib/index.js | 9 +-
.../my-component-lib/package.json | 2 +-
.../my-component-lib/polyfill.js | 2 +-
.../my-component-lib/server.js | 2 +-
.../custom-elements/my-component-lib/shim.js | 2 +-
.../fixtures/custom-elements/package.json | 2 +-
.../src/components/my-element.js | 2 +-
.../custom-elements/src/pages/load.astro | 2 +-
.../lit-element/src/components/my-element.js | 2 +-
.../src/{pages => skipped-pages}/ctr.astro | 2 +-
.../components/PragmaCommentTypeScript.tsx | 2 +-
.../react-component/src/pages/index.astro | 2 +-
.../forgot-import.astro | 0
.../src/{pages => skipped-pages}/window.astro | 0
packages/astro/test/lit-element.test.js | 15 +-
packages/astro/test/preact-component.test.js | 19 +-
packages/astro/test/react-component.test.js | 30 +-
packages/astro/test/vue-component.test.js | 5 +-
packages/renderers/renderer-lit/index.js | 30 +-
packages/renderers/renderer-lit/server.js | 2 +-
packages/renderers/renderer-preact/index.js | 11 +-
.../renderers/renderer-preact/package.json | 4 +-
packages/renderers/renderer-react/index.js | 14 +-
.../renderers/renderer-react/package.json | 2 +-
packages/renderers/renderer-react/server.js | 18 +-
packages/renderers/renderer-solid/index.js | 31 +-
.../renderers/renderer-solid/package.json | 4 +-
packages/renderers/renderer-solid/server.js | 1 -
packages/renderers/renderer-svelte/index.js | 19 +-
.../renderers/renderer-svelte/package.json | 4 +-
packages/renderers/renderer-vue/index.js | 13 +-
packages/renderers/renderer-vue/package.json | 8 +-
packages/renderers/renderer-vue/server.js | 2 +-
yarn.lock | 326 ++++++------------
67 files changed, 421 insertions(+), 549 deletions(-)
rename packages/astro/test/fixtures/lit-element/src/{pages => skipped-pages}/ctr.astro (95%)
rename packages/astro/test/fixtures/react-component/src/{pages => skipped-pages}/forgot-import.astro (100%)
rename packages/astro/test/fixtures/react-component/src/{pages => skipped-pages}/window.astro (100%)
diff --git a/examples/blog-multiple-authors/package.json b/examples/blog-multiple-authors/package.json
index 05de3e6d1..9964ef6e4 100644
--- a/examples/blog-multiple-authors/package.json
+++ b/examples/blog-multiple-authors/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/blog/package.json b/examples/blog/package.json
index 2d2a048f0..3deb4aca0 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/docs/package.json b/examples/docs/package.json
index bd1a861c0..acba905ee 100644
--- a/examples/docs/package.json
+++ b/examples/docs/package.json
@@ -14,15 +14,5 @@
"devDependencies": {
"astro": "^0.20.12",
"@snowpack/plugin-dotenv": "^2.1.0"
- },
- "snowpack": {
- "alias": {
- "components": "./src/components",
- "~": "./src"
- },
- "plugins": [
- "@snowpack/plugin-dotenv"
- ],
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json
index b6552b8f4..bc0606cda 100644
--- a/examples/framework-lit/package.json
+++ b/examples/framework-lit/package.json
@@ -11,8 +11,5 @@
"devDependencies": {
"@astrojs/renderer-lit": "^0.1.2",
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-lit/src/pages/index.astro b/examples/framework-lit/src/pages/index.astro
index 4c4ac5c10..ec4a7f73d 100644
--- a/examples/framework-lit/src/pages/index.astro
+++ b/examples/framework-lit/src/pages/index.astro
@@ -6,18 +6,14 @@ import '../components/Counter.js';
-
-
-
- Demo
-
-
+
+
+ Demo
+
+
Test app
-
-
-
-
+
-
+
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index 2c228a076..60dc949ef 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -11,8 +11,5 @@
"devDependencies": {
"astro": "^0.20.12",
"@astrojs/renderer-solid": "^0.1.1"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json
index 493f037a8..fa472f48a 100644
--- a/examples/framework-preact/package.json
+++ b/examples/framework-preact/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-preact/src/pages/index.astro b/examples/framework-preact/src/pages/index.astro
index 00ac11e14..eefc24414 100644
--- a/examples/framework-preact/src/pages/index.astro
+++ b/examples/framework-preact/src/pages/index.astro
@@ -2,20 +2,14 @@
// Component Imports
import Counter from '../components/Counter.tsx'
-
// Full Astro Component Syntax:
// https://docs.astro.build/core-concepts/astro-components/
---
-
-
-
-
+
+
- Hello Preact!
+ Hello, Preact!
diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json
index 548557cb5..d83a8526d 100644
--- a/examples/framework-react/package.json
+++ b/examples/framework-react/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-react/src/pages/index.astro b/examples/framework-react/src/pages/index.astro
index b14489440..ba30fed6f 100644
--- a/examples/framework-react/src/pages/index.astro
+++ b/examples/framework-react/src/pages/index.astro
@@ -11,13 +11,8 @@ const someProps = {
-
-
-
-
+
+
- Hello React!
+ Hello, React!
diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json
index 1d6b9a5b1..bfc6af996 100644
--- a/examples/framework-solid/package.json
+++ b/examples/framework-solid/package.json
@@ -11,8 +11,5 @@
"devDependencies": {
"astro": "^0.20.12",
"@astrojs/renderer-solid": "0.1.1"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-solid/src/components/Counter.jsx b/examples/framework-solid/src/components/Counter.jsx
index 3d0b7e757..a008a709f 100644
--- a/examples/framework-solid/src/components/Counter.jsx
+++ b/examples/framework-solid/src/components/Counter.jsx
@@ -1,7 +1,6 @@
import { createSignal } from 'solid-js';
-/** */
-export default function SolidCounter({ children }) {
+export default function Counter({ children }) {
const [count, setCount] = createSignal(0);
const add = () => setCount(count() + 1);
const subtract = () => setCount(count() - 1);
diff --git a/examples/framework-solid/src/pages/index.astro b/examples/framework-solid/src/pages/index.astro
index 747385394..57369c320 100644
--- a/examples/framework-solid/src/pages/index.astro
+++ b/examples/framework-solid/src/pages/index.astro
@@ -1,7 +1,6 @@
---
import Counter from '../components/Counter.jsx';
---
-
@@ -13,10 +12,10 @@ import Counter from '../components/Counter.jsx';
}
.counter {
display: grid;
- grid-template-columns: repeat(3, minmax(0, 1fr));
- place-items: center;
font-size: 2em;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
margin-top: 3em;
+ place-items: center;
}
.counter-message {
text-align: center;
diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json
index eae4ab4ab..b74b8416b 100644
--- a/examples/framework-svelte/package.json
+++ b/examples/framework-svelte/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-svelte/src/pages/index.astro b/examples/framework-svelte/src/pages/index.astro
index fa45d05e8..8cf84ef53 100644
--- a/examples/framework-svelte/src/pages/index.astro
+++ b/examples/framework-svelte/src/pages/index.astro
@@ -9,13 +9,8 @@ import Counter from '../components/Counter.svelte'
-
-
-
-
+
+
- Hello Svelte!
+ Hello, Svelte!
diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json
index 0e6732635..343f0a712 100644
--- a/examples/framework-vue/package.json
+++ b/examples/framework-vue/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/framework-vue/src/pages/index.astro b/examples/framework-vue/src/pages/index.astro
index dbb1831b2..c7679c46e 100644
--- a/examples/framework-vue/src/pages/index.astro
+++ b/examples/framework-vue/src/pages/index.astro
@@ -9,13 +9,8 @@ import Counter from '../components/Counter.vue'
-
-
-
-
+
+
- Hello Vue!
+ Hello, Vue!
diff --git a/examples/minimal/package.json b/examples/minimal/package.json
index c3a8588b6..f6d10c8af 100644
--- a/examples/minimal/package.json
+++ b/examples/minimal/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json
index 49b222b20..8e3c39940 100644
--- a/examples/portfolio/package.json
+++ b/examples/portfolio/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/starter/package.json b/examples/starter/package.json
index aceb6e548..95b369a27 100644
--- a/examples/starter/package.json
+++ b/examples/starter/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json
index 21dd7ad8e..cec212962 100644
--- a/examples/with-markdown-plugins/package.json
+++ b/examples/with-markdown-plugins/package.json
@@ -15,8 +15,5 @@
"rehype-toc": "^3.0.2",
"remark-code-titles": "^0.1.2",
"remark-slug": "^6.0.0"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/with-markdown/package.json b/examples/with-markdown/package.json
index 934f91436..2b83fe6e3 100644
--- a/examples/with-markdown/package.json
+++ b/examples/with-markdown/package.json
@@ -10,8 +10,5 @@
},
"devDependencies": {
"astro": "^0.20.12"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json
index 79db2295b..daa4cba67 100644
--- a/examples/with-nanostores/package.json
+++ b/examples/with-nanostores/package.json
@@ -13,8 +13,5 @@
},
"dependencies": {
"nanostores": "^0.3.3"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json
index 51c2c470e..0af749c58 100644
--- a/examples/with-tailwindcss/package.json
+++ b/examples/with-tailwindcss/package.json
@@ -12,8 +12,5 @@
"astro": "^0.20.12",
"autoprefixer": "^10.3.7",
"tailwindcss": "^2.2.17"
- },
- "snowpack": {
- "workspaceRoot": "../.."
}
}
diff --git a/packages/astro/src/@types/astro-core.ts b/packages/astro/src/@types/astro-core.ts
index 889aa4688..65489b825 100644
--- a/packages/astro/src/@types/astro-core.ts
+++ b/packages/astro/src/@types/astro-core.ts
@@ -240,14 +240,12 @@ export interface RenderPageOptions {
export interface Renderer {
/** Name of the renderer (required) */
name: string;
- hydrationPolyfills?: string[];
- /** Don’t try and build these dependencies for client */
- external?: string[];
- /** Clientside requirements */
- knownEntrypoints?: string[];
- polyfills?: string[];
/** Import statement for renderer */
source?: string;
+ /** Scripts to be injected before component */
+ polyfills?: string[];
+ /** Polyfills that need to run before hydration ever occurs */
+ hydrationPolyfills?: string[];
/** JSX identifier (e.g. 'react' or 'solid-js') */
jsxImportSource?: string;
/** Babel transform options */
@@ -259,8 +257,12 @@ export interface Renderer {
html: string;
}>;
};
- /** Add plugins to Vite, if any */
- vitePlugins?: vite.Plugin[];
+ /** Return configuration object for Vite ("options" should match https://vitejs.dev/guide/api-plugin.html#config) */
+ viteConfig?: (options: { mode: 'string'; command: 'build' | 'serve' }) => Promise;
+ /** @deprecated Don’t try and build these dependencies for client (deprecated in 0.21) */
+ external?: string[];
+ /** @deprecated Clientside requirements (deprecated in 0.21) */
+ knownEntrypoints?: string[];
}
export interface RouteData {
diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts
index 82cd203e8..d34fdfa2a 100644
--- a/packages/astro/src/core/create-vite.ts
+++ b/packages/astro/src/core/create-vite.ts
@@ -2,7 +2,6 @@ import type { AstroConfig } from '../@types/astro-core';
import type { AstroDevServer } from './dev';
import type { LogOptions } from './logger';
-import fs from 'fs';
import slash from 'slash';
import { fileURLToPath } from 'url';
import { createRequire } from 'module';
@@ -16,7 +15,10 @@ import { getPackageJSON, parseNpmName } from './util.js';
const require = createRequire(import.meta.url);
-/**
+// Some packages are just external, and that’s the way it goes.
+const ALWAYS_EXTERNAL = new Set(['@sveltejs/vite-plugin-svelte', 'micromark-util-events-to-acorn', 'estree-util-value-to-estree', 'shorthash', 'unified']);
+
+/*
* Tailwind fixes
* These fix Tailwind HMR in dev, and must be declared before Vite initiates.
* These are Tailwind-specific, so they’re safe to add.
@@ -26,100 +28,74 @@ const require = createRequire(import.meta.url);
// note: ssr is still an experimental API hence the type omission
type ViteConfigWithSSR = vite.InlineConfig & { ssr?: { external?: string[]; noExternal?: string[] } };
-/** Return a common starting point for all Vite actions */
-export async function createVite(
- viteConfig: ViteConfigWithSSR,
- { astroConfig, logging, devServer }: { astroConfig: AstroConfig; logging: LogOptions; devServer?: AstroDevServer }
-): Promise {
- const optimizedDeps = new Set(); // dependencies that must be bundled for the client (Vite may not detect all of these)
- const dedupe = new Set(); // dependencies that can’t be duplicated (e.g. React & SolidJS)
- const plugins: Plugin[] = []; // Vite plugins
+interface CreateViteOptions {
+ astroConfig: AstroConfig;
+ devServer?: AstroDevServer;
+ logging: LogOptions;
+}
- // load project deps
+/** Return a common starting point for all Vite actions */
+export async function createVite(inlineConfig: ViteConfigWithSSR, { astroConfig, logging, devServer }: CreateViteOptions): Promise {
const packageJSON = (await getPackageJSON(astroConfig.projectRoot)) || {};
const userDeps = Object.keys(packageJSON?.dependencies || {});
- userDeps.forEach((dep) => {
- optimizedDeps.add(dep); // prepare all user deps for client ahead of time
- });
const userDevDeps = Object.keys(packageJSON?.devDependencies || {});
- const { external, noExternal } = await viteSSRDeps([...userDeps, ...userDevDeps]);
- // console.log(external.has('tiny-glob'), noExternal.has('tiny-glob'));
+ const { external, noExternal } = await viteSSRDeps([...userDeps, ...userDevDeps]); // TODO: improve this?
- // load Astro renderers
- await Promise.all(
- astroConfig.renderers.map(async (name) => {
- const { default: renderer } = await import(name);
- // prepare client-side hydration code for browser
- if (renderer.client) {
- optimizedDeps.add(name + renderer.client.substr(1));
- }
- // knownEntrypoints and polyfills need to be added to the client
- for (let dep of [...(renderer.knownEntrypoints || []), ...(renderer.polyfills || [])]) {
- if (dep[0] === '.') dep = name + dep.substr(1); // if local polyfill, use full path
- optimizedDeps.add(dep);
- dedupe.add(dep); // we can try and dedupe renderers by default
- }
- // let renderer inject Vite plugins
- if (renderer.vitePlugins) {
- plugins.push(...renderer.vitePlugins);
- }
- // mark external packages as external to Vite
- if (renderer.external) {
- for (const dep of renderer.external) {
- external.add(dep);
- noExternal.delete(dep);
- }
- }
- })
- );
-
- // load client-side hydrations
- fs.readdirSync(new URL('../runtime/client', import.meta.url)).forEach((hydrator) => {
- optimizedDeps.add(`astro/client/${hydrator}`); // always prepare these for client
- });
-
- return vite.mergeConfig(
- {
- cacheDir: fileURLToPath(new URL('./node_modules/.vite/', astroConfig.projectRoot)), // using local caches allows Astro to be used in monorepos, etc.
- clearScreen: false,
- logLevel: 'error',
- optimizeDeps: {
- /** Try and scan a user’s project (won’t catch everything) */
- entries: ['src/**/*'],
- /** Always include these dependencies for optimization */
- include: [...optimizedDeps],
- },
- plugins: [
- astroVitePlugin({ config: astroConfig, devServer }),
- markdownVitePlugin({ config: astroConfig, devServer }),
- jsxVitePlugin({ config: astroConfig, logging }),
- astroPostprocessVitePlugin({ config: astroConfig, devServer }),
- fetchVitePlugin(),
- ...plugins,
- ],
- publicDir: fileURLToPath(astroConfig.public),
- resolve: {
- dedupe: [...dedupe],
- },
- root: fileURLToPath(astroConfig.projectRoot),
- server: {
- /** prevent serving outside of project root (will become new default soon) */
- fs: { strict: true },
- /** disable HMR for test */
- hmr: process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'production' ? false : undefined,
- /** handle Vite URLs */
- proxy: {
- // add proxies here
- },
- },
- /** Note: SSR API is in beta (https://vitejs.dev/guide/ssr.html) */
- ssr: {
- external: [...external],
- noExternal: [...noExternal],
+ // First, start with the Vite configuration that Astro core needs
+ let viteConfig: ViteConfigWithSSR = {
+ cacheDir: fileURLToPath(new URL('./node_modules/.vite/', astroConfig.projectRoot)), // using local caches allows Astro to be used in monorepos, etc.
+ clearScreen: false, // we want to control the output, not Vite
+ logLevel: 'error', // log errors only
+ optimizeDeps: {
+ entries: ['src/**/*'], // Try and scan a user’s project (won’t catch everything),
+ include: [...userDeps], // tell Vite to prebuild everything in a user’s package.json dependencies
+ },
+ plugins: [
+ astroVitePlugin({ config: astroConfig, devServer }),
+ markdownVitePlugin({ config: astroConfig, devServer }),
+ jsxVitePlugin({ config: astroConfig, logging }),
+ astroPostprocessVitePlugin({ config: astroConfig, devServer }),
+ fetchVitePlugin(),
+ ],
+ publicDir: fileURLToPath(astroConfig.public),
+ root: fileURLToPath(astroConfig.projectRoot),
+ server: {
+ /** disable HMR for test */
+ hmr: process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'production' ? false : undefined,
+ /** handle Vite URLs */
+ proxy: {
+ // add proxies here
},
},
- vite.mergeConfig(viteConfig, astroConfig.vite || {}) // merge in user vite settings
- );
+ /** Note: SSR API is in beta (https://vitejs.dev/guide/ssr.html) */
+ ssr: {
+ external: [...external, ...ALWAYS_EXTERNAL],
+ noExternal: [...noExternal],
+ },
+ };
+
+ // Add in Astro renderers, which will extend the base config
+ for (const name of astroConfig.renderers) {
+ try {
+ const { default: renderer } = await import(name);
+ if (!renderer) continue;
+ // if a renderer provides viteConfig(), call it and pass in results
+ if (renderer.viteConfig) {
+ if (typeof renderer.viteConfig !== 'function') {
+ throw new Error(`${name}: viteConfig(options) must be a function! Got ${typeof renderer.viteConfig}.`);
+ }
+ const rendererConfig = await renderer.viteConfig({ mode: inlineConfig.mode, command: inlineConfig.mode === 'production' ? 'build' : 'serve' }); // is this command true?
+ viteConfig = vite.mergeConfig(viteConfig, rendererConfig) as vite.InlineConfig;
+ }
+ } catch (err) {
+ throw new Error(`${name}: ${err}`);
+ }
+ }
+
+ // Add in user settings last, followed by any Vite configuration passed in from the parent function (overrides)
+ viteConfig = vite.mergeConfig(viteConfig, astroConfig.vite || {}); // merge in Vite config from astro.config.mjs
+ viteConfig = vite.mergeConfig(viteConfig, inlineConfig); // merge in inline Vite config
+ return viteConfig;
}
/** Try and automatically figure out Vite external & noExternal */
@@ -165,23 +141,14 @@ async function viteSSRDeps(deps: string[]): Promise<{ external: Set; noE
return;
}
- // sort this package
- let isExternal = true; // external by default
-
- // ESM gets noExternal
- if (packageJSON.type === 'module') isExternal = false;
- // TODO: manual bugfixes for Vite
- if (pkg.name === '@sveltejs/vite-plugin-svelte') isExternal = true;
- if (pkg.name === 'micromark-util-events-to-acorn') isExternal = true;
- if (pkg.name === 'unified') isExternal = true;
- // TODO: add more checks here if needed
-
- // add to list
- if (isExternal === true) {
- external.add(spec);
- } else {
+ // if ESM, try noExternal
+ if (packageJSON.type === 'module') {
noExternal.add(spec);
}
+ // otherwise, assume external by default
+ else {
+ external.add(spec);
+ }
// recursively load dependencies for package (but not devDeps)
await Promise.all(Object.keys(packageJSON.dependencies || {}).map(sortPkg));
diff --git a/packages/astro/src/core/dev/index.ts b/packages/astro/src/core/dev/index.ts
index 71c14cbd8..1346823c1 100644
--- a/packages/astro/src/core/dev/index.ts
+++ b/packages/astro/src/core/dev/index.ts
@@ -5,7 +5,7 @@ import type { LogOptions } from '../logger';
import type { HmrContext, ModuleNode } from '../vite';
import { fileURLToPath } from 'url';
-import {promisify} from 'util';
+import { promisify } from 'util';
import connect from 'connect';
import mime from 'mime';
import { performance } from 'perf_hooks';
diff --git a/packages/astro/src/runtime/server/index.ts b/packages/astro/src/runtime/server/index.ts
index c5654587c..aa3433a20 100644
--- a/packages/astro/src/runtime/server/index.ts
+++ b/packages/astro/src/runtime/server/index.ts
@@ -1,8 +1,7 @@
-import type { AstroComponentMetadata } from '../../@types/astro-core';
+import type { AstroComponentMetadata, Renderer } from '../../@types/astro-core';
import type { SSRResult } from '../../@types/astro-runtime';
import type { TopLevelAstro } from '../../@types/astro-runtime';
-import { pathToFileURL } from 'url';
import { valueToEstree } from 'estree-util-value-to-estree';
import * as astring from 'astring';
import shorthash from 'shorthash';
@@ -210,14 +209,15 @@ export async function renderComponent(result: SSRResult, displayName: string, Co
metadata.componentUrl = hydration.componentUrl;
}
- let renderer = null;
+ let renderer: Renderer | undefined;
for (const r of renderers) {
if (await r.ssr.check(Component, props, children)) {
renderer = r;
+ break;
}
}
- if (renderer === null) {
+ if (!renderer) {
if (typeof Component === 'string') {
html = await renderAstroComponent(await render`<${Component}${spreadAttributes(props)}>${children}${Component}>`);
} else {
@@ -261,7 +261,7 @@ function createFetchContentFn(url: URL) {
...mod.frontmatter,
content: mod.metadata,
file: new URL(spec, url),
- url: urlSpec.includes('/pages/') && urlSpec.replace(/^.*\/pages\//, '/').replace(/\.md$/, '')
+ url: urlSpec.includes('/pages/') && urlSpec.replace(/^.*\/pages\//, '/').replace(/\.md$/, ''),
};
})
.filter(Boolean);
diff --git a/packages/astro/src/vite-plugin-astro/index.ts b/packages/astro/src/vite-plugin-astro/index.ts
index 4bcb26eae..597f61fa7 100644
--- a/packages/astro/src/vite-plugin-astro/index.ts
+++ b/packages/astro/src/vite-plugin-astro/index.ts
@@ -40,7 +40,7 @@ export default function astro({ config, devServer }: AstroPluginOptions): vite.P
// use `sourcemap: "both"` so that sourcemap is included in the code
// result passed to esbuild, but also available in the catch handler.
tsResult = await transform(source, {
- as: isPage ? "document" : "fragment",
+ as: isPage ? 'document' : 'fragment',
site: config.buildOptions.site,
sourcefile: id,
sourcemap: 'both',
@@ -50,9 +50,9 @@ export default function astro({ config, devServer }: AstroPluginOptions): vite.P
const result = await transformWithVite(value, attrs, id, viteTransform);
if (!result) {
// TODO: compiler supports `null`, but types don't yet
- return (result as any);
+ return result as any;
}
- return { code: result.code, map: result.map?.toString() }
+ return { code: result.code, map: result.map?.toString() };
},
});
// Compile `.ts` to `.js`
diff --git a/packages/astro/src/vite-plugin-fetch/index.ts b/packages/astro/src/vite-plugin-fetch/index.ts
index 58936e79d..7530ae0d7 100644
--- a/packages/astro/src/vite-plugin-fetch/index.ts
+++ b/packages/astro/src/vite-plugin-fetch/index.ts
@@ -18,6 +18,7 @@ function isSSR(options: undefined | boolean | { ssr: boolean }): boolean {
// This matches any JS-like file (that we know of)
// See https://regex101.com/r/Cgofir/1
const SUPPORTED_FILES = /\.(astro|svelte|vue|[cm]?js|jsx|[cm]?ts|tsx)$/;
+const IGNORED_FILES = new Set(['astro/dist/runtime/server/index.js']);
const DEFINE_FETCH = `import fetch from 'node-fetch';\n`;
export default function pluginFetch(): Plugin {
@@ -25,6 +26,11 @@ export default function pluginFetch(): Plugin {
name: '@astrojs/vite-plugin-fetch',
enforce: 'post',
async transform(code, id, opts) {
+ // Ignore internal files, etc.
+ for (const ignored of IGNORED_FILES) {
+ if (id.endsWith(ignored)) return null;
+ }
+
const ssr = isSSR(opts);
// If this isn't an SSR pass, `fetch` will already be available!
if (!ssr) {
diff --git a/packages/astro/src/vite-plugin-jsx/index.ts b/packages/astro/src/vite-plugin-jsx/index.ts
index 059e1edb6..dfba64f7e 100644
--- a/packages/astro/src/vite-plugin-jsx/index.ts
+++ b/packages/astro/src/vite-plugin-jsx/index.ts
@@ -41,7 +41,6 @@ function isSSR(options: undefined | boolean | { ssr: boolean }): boolean {
return false;
}
-
/** Use Astro config to allow for alternate or multiple JSX renderers (by default Vite will assume React) */
export default function jsx({ config, logging }: AstroPluginJSXOptions): Plugin {
return {
@@ -69,13 +68,13 @@ export default function jsx({ config, logging }: AstroPluginJSXOptions): Plugin
}
}
- // Attempt: Single JSX renderer
+ // Attempt: Single JSX renderer
// If we only have one renderer, we can skip a bunch of work!
if (JSX_RENDERERS.size === 1) {
// downlevel any non-standard syntax, but preserve JSX
const { code: jsxCode } = await esbuild.transform(code, {
loader: getLoader(path.extname(id)),
- jsx: 'preserve'
+ jsx: 'preserve',
});
return transformJSX({ code: jsxCode, id, renderer: [...JSX_RENDERERS.values()][0], ssr });
}
@@ -129,7 +128,7 @@ export default function jsx({ config, logging }: AstroPluginJSXOptions): Plugin
// downlevel any non-standard syntax, but preserve JSX
const { code: jsxCode } = await esbuild.transform(code, {
loader: getLoader(path.extname(id)),
- jsx: 'preserve'
+ jsx: 'preserve',
});
return transformJSX({ code: jsxCode, id, renderer: JSX_RENDERERS.get(importSource) as Renderer, ssr });
}
diff --git a/packages/astro/test/custom-elements.test.js b/packages/astro/test/custom-elements.test.js
index 255592070..4f442883b 100644
--- a/packages/astro/test/custom-elements.test.js
+++ b/packages/astro/test/custom-elements.test.js
@@ -1,7 +1,6 @@
import { expect } from 'chai';
import cheerio from 'cheerio';
import { loadFixture } from './test-utils.js';
-import path from 'path';
describe('Custom Elements', () => {
let fixture;
diff --git a/packages/astro/test/fixtures/custom-elements/my-component-lib/hydration-polyfill.js b/packages/astro/test/fixtures/custom-elements/my-component-lib/hydration-polyfill.js
index f3ae60285..665844481 100644
--- a/packages/astro/test/fixtures/custom-elements/my-component-lib/hydration-polyfill.js
+++ b/packages/astro/test/fixtures/custom-elements/my-component-lib/hydration-polyfill.js
@@ -1,2 +1 @@
-
-globalThis.somePolyfillHere = '';
\ No newline at end of file
+globalThis.somePolyfillHere = '';
diff --git a/packages/astro/test/fixtures/custom-elements/my-component-lib/index.js b/packages/astro/test/fixtures/custom-elements/my-component-lib/index.js
index e0c1442f2..7054d0219 100644
--- a/packages/astro/test/fixtures/custom-elements/my-component-lib/index.js
+++ b/packages/astro/test/fixtures/custom-elements/my-component-lib/index.js
@@ -6,5 +6,12 @@ export default {
],
hydrationPolyfills: [
'./hydration-polyfill.js'
- ]
+ ],
+ viteConfig() {
+ return {
+ optimizeDeps: {
+ include: ['@astrojs/test-custom-element-renderer/polyfill.js', '@astrojs/test-custom-element-renderer/hydration-polyfill.js']
+ }
+ }
+ }
};
diff --git a/packages/astro/test/fixtures/custom-elements/my-component-lib/package.json b/packages/astro/test/fixtures/custom-elements/my-component-lib/package.json
index bfa0bf3dc..61f761210 100644
--- a/packages/astro/test/fixtures/custom-elements/my-component-lib/package.json
+++ b/packages/astro/test/fixtures/custom-elements/my-component-lib/package.json
@@ -10,4 +10,4 @@
"./polyfill.js": "./polyfill.js",
"./hydration-polyfill.js": "./hydration-polyfill.js"
}
-}
\ No newline at end of file
+}
diff --git a/packages/astro/test/fixtures/custom-elements/my-component-lib/polyfill.js b/packages/astro/test/fixtures/custom-elements/my-component-lib/polyfill.js
index 27fdef8d3..92788352b 100644
--- a/packages/astro/test/fixtures/custom-elements/my-component-lib/polyfill.js
+++ b/packages/astro/test/fixtures/custom-elements/my-component-lib/polyfill.js
@@ -1,2 +1,2 @@
console.log('this is a polyfill');
-export default {};
\ No newline at end of file
+export default {};
diff --git a/packages/astro/test/fixtures/custom-elements/my-component-lib/server.js b/packages/astro/test/fixtures/custom-elements/my-component-lib/server.js
index cf62023c7..9970c2fbf 100644
--- a/packages/astro/test/fixtures/custom-elements/my-component-lib/server.js
+++ b/packages/astro/test/fixtures/custom-elements/my-component-lib/server.js
@@ -29,4 +29,4 @@ function renderToStaticMarkup(component) {
export default {
check,
renderToStaticMarkup
-};
\ No newline at end of file
+};
diff --git a/packages/astro/test/fixtures/custom-elements/my-component-lib/shim.js b/packages/astro/test/fixtures/custom-elements/my-component-lib/shim.js
index cc2517147..eb969e528 100644
--- a/packages/astro/test/fixtures/custom-elements/my-component-lib/shim.js
+++ b/packages/astro/test/fixtures/custom-elements/my-component-lib/shim.js
@@ -25,4 +25,4 @@ globalThis.HTMLElement = class {
set innerHTML(val) {
this._innerHTML = val;
}
-};
\ No newline at end of file
+};
diff --git a/packages/astro/test/fixtures/custom-elements/package.json b/packages/astro/test/fixtures/custom-elements/package.json
index f7bfe012a..c04a465bf 100644
--- a/packages/astro/test/fixtures/custom-elements/package.json
+++ b/packages/astro/test/fixtures/custom-elements/package.json
@@ -5,4 +5,4 @@
"dependencies": {
"@astrojs/test-custom-element-renderer": "0.0.1"
}
-}
\ No newline at end of file
+}
diff --git a/packages/astro/test/fixtures/custom-elements/src/components/my-element.js b/packages/astro/test/fixtures/custom-elements/src/components/my-element.js
index 652478086..ffc5e6ffb 100644
--- a/packages/astro/test/fixtures/custom-elements/src/components/my-element.js
+++ b/packages/astro/test/fixtures/custom-elements/src/components/my-element.js
@@ -10,4 +10,4 @@ class MyElement extends HTMLElement {
customElements.define(tagName, MyElement);
-export default MyElement;
\ No newline at end of file
+export default MyElement;
diff --git a/packages/astro/test/fixtures/custom-elements/src/pages/load.astro b/packages/astro/test/fixtures/custom-elements/src/pages/load.astro
index 0f55e246e..c67750bc5 100644
--- a/packages/astro/test/fixtures/custom-elements/src/pages/load.astro
+++ b/packages/astro/test/fixtures/custom-elements/src/pages/load.astro
@@ -12,4 +12,4 @@ const title = 'My App';
-
\ No newline at end of file
+
diff --git a/packages/astro/test/fixtures/lit-element/src/components/my-element.js b/packages/astro/test/fixtures/lit-element/src/components/my-element.js
index e390bb1ec..7b7eed71c 100644
--- a/packages/astro/test/fixtures/lit-element/src/components/my-element.js
+++ b/packages/astro/test/fixtures/lit-element/src/components/my-element.js
@@ -10,4 +10,4 @@ export class MyElement extends LitElement {
}
}
-customElements.define('my-element', MyElement);
\ No newline at end of file
+customElements.define('my-element', MyElement);
diff --git a/packages/astro/test/fixtures/lit-element/src/pages/ctr.astro b/packages/astro/test/fixtures/lit-element/src/skipped-pages/ctr.astro
similarity index 95%
rename from packages/astro/test/fixtures/lit-element/src/pages/ctr.astro
rename to packages/astro/test/fixtures/lit-element/src/skipped-pages/ctr.astro
index e03e5d73a..d41e9645f 100644
--- a/packages/astro/test/fixtures/lit-element/src/pages/ctr.astro
+++ b/packages/astro/test/fixtures/lit-element/src/skipped-pages/ctr.astro
@@ -9,4 +9,4 @@ import { MyElement } from '../components/my-element.js';
-
\ No newline at end of file
+
diff --git a/packages/astro/test/fixtures/preact-component/src/components/PragmaCommentTypeScript.tsx b/packages/astro/test/fixtures/preact-component/src/components/PragmaCommentTypeScript.tsx
index 7bfe65ada..050acd4a6 100644
--- a/packages/astro/test/fixtures/preact-component/src/components/PragmaCommentTypeScript.tsx
+++ b/packages/astro/test/fixtures/preact-component/src/components/PragmaCommentTypeScript.tsx
@@ -1,5 +1,5 @@
/** @jsxImportSource preact */
export default function({}: object) {
- return ;
+ return ;
}
diff --git a/packages/astro/test/fixtures/react-component/src/pages/index.astro b/packages/astro/test/fixtures/react-component/src/pages/index.astro
index 5ebbd6e60..597a4a546 100644
--- a/packages/astro/test/fixtures/react-component/src/pages/index.astro
+++ b/packages/astro/test/fixtures/react-component/src/pages/index.astro
@@ -1,6 +1,6 @@
---
import Hello from '../components/Hello.jsx';
-import Later from '../components/Goodbye.vue'; // use different specifier
+import Later from '../components/Goodbye.vue';
import ArrowFunction from '../components/ArrowFunction.jsx';
import PropsSpread from '../components/PropsSpread.jsx';
import {Research2} from '../components/Research.jsx';
diff --git a/packages/astro/test/fixtures/react-component/src/pages/forgot-import.astro b/packages/astro/test/fixtures/react-component/src/skipped-pages/forgot-import.astro
similarity index 100%
rename from packages/astro/test/fixtures/react-component/src/pages/forgot-import.astro
rename to packages/astro/test/fixtures/react-component/src/skipped-pages/forgot-import.astro
diff --git a/packages/astro/test/fixtures/react-component/src/pages/window.astro b/packages/astro/test/fixtures/react-component/src/skipped-pages/window.astro
similarity index 100%
rename from packages/astro/test/fixtures/react-component/src/pages/window.astro
rename to packages/astro/test/fixtures/react-component/src/skipped-pages/window.astro
diff --git a/packages/astro/test/lit-element.test.js b/packages/astro/test/lit-element.test.js
index 178f94f95..f87f1f924 100644
--- a/packages/astro/test/lit-element.test.js
+++ b/packages/astro/test/lit-element.test.js
@@ -1,12 +1,16 @@
-/**
- * UNCOMMENT: fix Vite SSR import of lit-element (TODO: update render API)
import { expect } from 'chai';
import cheerio from 'cheerio';
import { loadFixture } from './test-utils.js';
let fixture;
+const NODE_VERSION = parseFloat(process.versions.node);
+
before(async () => {
+ // @lit-labs/ssr/ requires Node 13.9 or higher
+ if (NODE_VERSION < 13.9) {
+ return;
+ }
fixture = await loadFixture({
projectRoot: './fixtures/lit-element/',
renderers: ['@astrojs/renderer-lit'],
@@ -16,8 +20,8 @@ before(async () => {
describe('LitElement test', () => {
it('Renders a custom element by tag name', async () => {
- // lit SSR is not currently supported on Node.js < 13
- if (process.versions.node <= '13') {
+ // @lit-labs/ssr/ requires Node 13.9 or higher
+ if (NODE_VERSION < 13.9) {
return;
}
const html = await fixture.readFile('/index.html');
@@ -51,6 +55,3 @@ describe('LitElement test', () => {
}
});
});
-*/
-
-it.skip('is skipped', () => {});
diff --git a/packages/astro/test/preact-component.test.js b/packages/astro/test/preact-component.test.js
index 700956909..ea12054e6 100644
--- a/packages/astro/test/preact-component.test.js
+++ b/packages/astro/test/preact-component.test.js
@@ -1,5 +1,3 @@
-/**
- * UNCOMMENT: ???? (this is a really weird transform bug)
import { expect } from 'chai';
import cheerio from 'cheerio';
import { loadFixture } from './test-utils.js';
@@ -7,7 +5,10 @@ import { loadFixture } from './test-utils.js';
let fixture;
before(async () => {
- fixture = await loadFixture({ projectRoot: './fixtures/preact-component/' });
+ fixture = await loadFixture({
+ projectRoot: './fixtures/preact-component/',
+ renderers: ['@astrojs/renderer-preact'],
+ });
await fixture.build();
});
@@ -20,7 +21,8 @@ describe('Preact component', () => {
expect($('#class-component')).to.have.lengthOf(1);
});
- it('Can load function component', async () => {
+ // TODO: fix compiler bug (not interpreting as a component)
+ it.skip('Can load function component', async () => {
const html = await fixture.readFile('/fn/index.html');
const $ = cheerio.load(html);
@@ -57,10 +59,12 @@ describe('Preact component', () => {
const $ = cheerio.load(html);
// test 1: rendered the PragmaComment component
- expect($('.pragma-comment')).to.have.lengthOf(2);
+ expect($('.pragma-comment')).to.have.lengthOf(1);
+ expect($('.pragma-comment-tsx')).to.have.lengthOf(1);
});
- it('Uses the new JSX transform', async () => {
+ // In moving over to Vite, the jsx-runtime import is now obscured. TODO: update the method of finding this.
+ it.skip('Uses the new JSX transform', async () => {
const html = await fixture.readFile('/pragma-comment/index.html');
// Grab the imports
@@ -79,6 +83,3 @@ describe('Preact component', () => {
expect(jsxRuntime).to.be.ok;
});
});
-*/
-
-it.skip('is skipped', () => {});
diff --git a/packages/astro/test/react-component.test.js b/packages/astro/test/react-component.test.js
index 5017d1bd6..f7908e0d4 100644
--- a/packages/astro/test/react-component.test.js
+++ b/packages/astro/test/react-component.test.js
@@ -1,5 +1,3 @@
-/**
- * UNCOMMENT: improve Vite automatic React support
import { expect } from 'chai';
import cheerio from 'cheerio';
import { loadFixture } from './test-utils.js';
@@ -7,7 +5,10 @@ import { loadFixture } from './test-utils.js';
let fixture;
before(async () => {
- fixture = await loadFixture({ projectRoot: './fixtures/react-component/' });
+ fixture = await loadFixture({
+ projectRoot: './fixtures/react-component/',
+ renderers: ['@astrojs/renderer-react', '@astrojs/renderer-vue'],
+ });
await fixture.build();
});
@@ -22,8 +23,9 @@ describe('React Components', () => {
// test 2: no reactroot
expect($('#react-h2').attr('data-reactroot')).to.equal(undefined);
+ // TODO: fix compiler bug with arrow components
// test 3: Can use function components
- expect($('#arrow-fn-component')).to.have.lengthOf(1);
+ // expect($('#arrow-fn-component')).to.have.lengthOf(1);
// test 4: Can use spread for components
expect($('#component-spread-props')).to.have.lengthOf(1);
@@ -32,13 +34,14 @@ describe('React Components', () => {
expect($('#component-spread-props').text(), 'Hello world!');
// test 6: Can use TS components
- expect($('.ts-component')).toHaveLength(1);
+ expect($('.ts-component')).to.have.lengthOf(1);
// test 7: Can use Pure components
- expect($('#pure')).toHaveLength(1);
+ expect($('#pure')).to.have.lengthOf(1);
});
- it('Includes reactroot on hydrating components', async () => {
+ // TODO: fix ocmpiler bug
+ it.skip('Includes reactroot on hydrating components', async () => {
const html = await fixture.readFile('/index.html');
const $ = cheerio.load(html);
@@ -51,10 +54,11 @@ describe('React Components', () => {
expect(div.html()).to.equal('foo bar 1');
});
- it('Throws helpful error message on window SSR', async () => {
+ // TODO: Vite does not throw a helpful error message on window SSR
+ it.skip('Throws helpful error message on window SSR', async () => {
const html = await fixture.readFile('/window/index.html');
expect(html).to.include(
- `[/window]
+ `[/window]
The window object is not available during server-side rendering (SSR).
Try using \`import.meta.env.SSR\` to write SSR-friendly code.
https://docs.astro.build/reference/api-reference/#importmeta`
@@ -67,15 +71,16 @@ describe('React Components', () => {
expect($('#vue-h2').text()).to.equal('Hasta la vista, baby');
});
+ // TODO: fix
it('Can use a pragma comment', async () => {
- const html = await fixture.fetch('/pragma-comment/index.html');
+ const html = await fixture.readFile('/pragma-comment/index.html');
const $ = cheerio.load(html);
// test 1: rendered the PragmaComment component
expect($('.pragma-comment')).to.have.lengthOf(2);
});
- // note(drew): unsure how to update this test?
+ // In moving over to Vite, the jsx-runtime import is now obscured. TODO: update the method of finding this.
it.skip('uses the new JSX transform', async () => {
const html = await fixture.fetch('/index.html');
@@ -95,6 +100,3 @@ describe('React Components', () => {
expect(jsxRuntime).to.be.ok;
});
});
-*/
-
-it.skip('is skipped', () => {});
diff --git a/packages/astro/test/vue-component.test.js b/packages/astro/test/vue-component.test.js
index d76b08bd0..8899782af 100644
--- a/packages/astro/test/vue-component.test.js
+++ b/packages/astro/test/vue-component.test.js
@@ -6,7 +6,10 @@ describe('Vue component', () => {
let fixture;
before(async () => {
- fixture = await loadFixture({ projectRoot: './fixtures/vue-component/' });
+ fixture = await loadFixture({
+ projectRoot: './fixtures/vue-component/',
+ renderers: ['@astrojs/renderer-vue'],
+ });
await fixture.build();
});
diff --git a/packages/renderers/renderer-lit/index.js b/packages/renderers/renderer-lit/index.js
index e6092305c..28ccac1a9 100644
--- a/packages/renderers/renderer-lit/index.js
+++ b/packages/renderers/renderer-lit/index.js
@@ -1,8 +1,34 @@
+// NOTE: @lit-labs/ssr uses syntax incompatible with anything < Node v13.9.0.
+// Throw an error if using that Node version.
+
+const NODE_VERSION = parseFloat(process.versions.node);
+if (NODE_VERSION < 13.9) {
+ throw new Error(`Package @lit-labs/ssr requires Node version v13.9 or higher. Please update Node to use @astrojs/renderer-lit`);
+}
+
export default {
name: '@astrojs/renderer-lit',
server: './server.js',
- external: ['lit', '@lit-labs/ssr/lib/install-global-dom-shim.js', '@lit-labs/ssr/lib/render-lit-html.js', '@lit-labs/ssr/lib/lit-element-renderer.js'],
polyfills: ['./client-shim.js'],
hydrationPolyfills: ['./hydration-support.js'],
- knownEntrypoints: ['@astrojs/renderer-lit/client-shim.js', '@astrojs/renderer-lit/hydration-support.js', '@webcomponents/template-shadowroot/template-shadowroot.js'],
+ viteConfig() {
+ return {
+ optimizeDeps: {
+ include: [
+ '@astrojs/renderer-lit/client-shim.js',
+ '@astrojs/renderer-lit/hydration-support.js',
+ '@webcomponents/template-shadowroot/template-shadowroot.js',
+ 'lit/experimental-hydrate-support.js',
+ ],
+ },
+ ssr: {
+ external: [
+ 'lit-element/lit-element.js',
+ '@lit-labs/ssr/lib/install-global-dom-shim.js',
+ '@lit-labs/ssr/lib/render-lit-html.js',
+ '@lit-labs/ssr/lib/lit-element-renderer.js',
+ ],
+ },
+ };
+ },
};
diff --git a/packages/renderers/renderer-lit/server.js b/packages/renderers/renderer-lit/server.js
index 6ccb2da9b..c827f1ad1 100644
--- a/packages/renderers/renderer-lit/server.js
+++ b/packages/renderers/renderer-lit/server.js
@@ -41,7 +41,7 @@ function* render(tagName, attrs, children) {
yield* shadowContents;
yield '';
}
- yield children;
+ yield children || ''; // don’t print “undefined” as string
yield `${tagName}>`;
}
diff --git a/packages/renderers/renderer-preact/index.js b/packages/renderers/renderer-preact/index.js
index 8158660be..afd34210c 100644
--- a/packages/renderers/renderer-preact/index.js
+++ b/packages/renderers/renderer-preact/index.js
@@ -2,7 +2,6 @@ export default {
name: '@astrojs/renderer-preact',
client: './client.js',
server: './server.js',
- knownEntrypoints: ['preact', 'preact/jsx-runtime', 'preact-render-to-string'],
jsxImportSource: 'preact',
jsxTransformOptions: async () => {
const {
@@ -12,4 +11,14 @@ export default {
plugins: [jsx({}, { runtime: 'automatic', importSource: 'preact' })],
};
},
+ viteConfig() {
+ return {
+ optimizeDeps: {
+ include: ['@astrojs/renderer-preact/client.js', 'preact', 'preact/jsx-runtime', 'preact-render-to-string'],
+ },
+ ssr: {
+ external: ['preact-render-to-string'],
+ },
+ };
+ },
};
diff --git a/packages/renderers/renderer-preact/package.json b/packages/renderers/renderer-preact/package.json
index f8aa55aa6..898b77359 100644
--- a/packages/renderers/renderer-preact/package.json
+++ b/packages/renderers/renderer-preact/package.json
@@ -10,8 +10,8 @@
"./package.json": "./package.json"
},
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.14.5",
- "preact": "^10.5.14",
+ "@babel/plugin-transform-react-jsx": "^7.14.9",
+ "preact": "^10.5.15",
"preact-render-to-string": "^5.1.19"
},
"engines": {
diff --git a/packages/renderers/renderer-react/index.js b/packages/renderers/renderer-react/index.js
index cc624f2be..2fa830f79 100644
--- a/packages/renderers/renderer-react/index.js
+++ b/packages/renderers/renderer-react/index.js
@@ -2,7 +2,6 @@ export default {
name: '@astrojs/renderer-react',
client: './client.js',
server: './server.js',
- knownEntrypoints: ['react', 'react/jsx-runtime', 'react-dom', 'react-dom/server.js'],
jsxImportSource: 'react',
jsxTransformOptions: async () => {
const {
@@ -12,4 +11,17 @@ export default {
plugins: [jsx({}, { runtime: 'automatic', importSource: 'react' })],
};
},
+ viteConfig() {
+ return {
+ optimizeDeps: {
+ include: ['@astrojs/renderer-react/client.js', 'react', 'react/jsx-runtime', 'react/jsx-dev-runtime', 'react-dom'],
+ },
+ resolve: {
+ dedupe: ['react', 'react-dom'],
+ },
+ ssr: {
+ external: ['react-dom/server.js'],
+ },
+ };
+ },
};
diff --git a/packages/renderers/renderer-react/package.json b/packages/renderers/renderer-react/package.json
index 377bc9aa8..de7a41892 100644
--- a/packages/renderers/renderer-react/package.json
+++ b/packages/renderers/renderer-react/package.json
@@ -10,7 +10,7 @@
"./package.json": "./package.json"
},
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.14.5",
+ "@babel/plugin-transform-react-jsx": "^7.14.9",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
diff --git a/packages/renderers/renderer-react/server.js b/packages/renderers/renderer-react/server.js
index f97569616..aed324368 100644
--- a/packages/renderers/renderer-react/server.js
+++ b/packages/renderers/renderer-react/server.js
@@ -1,5 +1,5 @@
-import { Component as BaseComponent, createElement as h, PureComponent } from 'react';
-import { renderToStaticMarkup as reactRenderToStaticMarkup, renderToString } from 'react-dom/server.js';
+import React from 'react';
+import ReactDOM from 'react-dom/server.js';
import StaticHtml from './static-html.js';
const reactTypeof = Symbol.for('react.element');
@@ -8,7 +8,7 @@ function check(Component, props, children) {
if (typeof Component !== 'function') return false;
if (Component.prototype != null && typeof Component.prototype.render === 'function') {
- return BaseComponent.isPrototypeOf(Component) || PureComponent.isPrototypeOf(Component);
+ return React.Component.isPrototypeOf(Component) || React.PureComponent.isPrototypeOf(Component);
}
let error = null;
@@ -23,7 +23,7 @@ function check(Component, props, children) {
error = err;
}
- return h('div');
+ return React.createElement('div');
}
renderToStaticMarkup(Tester, props, children, {});
@@ -35,12 +35,16 @@ function check(Component, props, children) {
}
function renderToStaticMarkup(Component, props, children, metadata) {
- const vnode = h(Component, { ...props, children: h(StaticHtml, { value: children }), innerHTML: children });
+ const vnode = React.createElement(Component, {
+ ...props,
+ children: React.createElement(StaticHtml, { value: children }),
+ innerHTML: children,
+ });
let html;
if (metadata && metadata.hydrate) {
- html = renderToString(vnode);
+ html = ReactDOM.renderToString(vnode);
} else {
- html = reactRenderToStaticMarkup(vnode);
+ html = ReactDOM.renderToStaticMarkup(vnode);
}
return { html };
}
diff --git a/packages/renderers/renderer-solid/index.js b/packages/renderers/renderer-solid/index.js
index caaeb995b..c6471a75d 100644
--- a/packages/renderers/renderer-solid/index.js
+++ b/packages/renderers/renderer-solid/index.js
@@ -2,8 +2,6 @@ export default {
name: '@astrojs/renderer-solid',
client: './client.js',
server: './server.js',
- external: ['solid-js/web/dist/server.js', 'solid-js/store/dist/server.js', 'solid-js/dist/server.js', 'babel-preset-solid'],
- knownEntrypoints: ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h'],
jsxImportSource: 'solid-js',
jsxTransformOptions: async ({ isSSR }) => {
const [{ default: solid }] = await Promise.all([import('babel-preset-solid')]);
@@ -18,9 +16,9 @@ export default {
{
cwd: process.cwd(),
alias: {
- 'solid-js': 'solid-js/dist/server.js',
'solid-js/store': 'solid-js/store/dist/server.js',
'solid-js/web': 'solid-js/web/dist/server.js',
+ 'solid-js': 'solid-js/dist/server.js',
},
},
]);
@@ -28,4 +26,31 @@ export default {
return options;
},
+ viteConfig(options) {
+ // https://github.com/solidjs/vite-plugin-solid
+
+ // We inject the dev mode only if the user explicitely wants it or if we are in dev (serve) mode
+ const replaceDev = options.mode === 'development' || options.command === 'serve';
+
+ const nestedDeps = ['solid-js', 'solid-js/web', 'solid-js/store', 'solid-js/html', 'solid-js/h'];
+
+ return {
+ /**
+ * We only need esbuild on .ts or .js files.
+ * .tsx & .jsx files are handled by us
+ */
+ esbuild: { include: /\.ts$/ },
+ resolve: {
+ conditions: ['solid', ...(replaceDev ? ['development'] : [])],
+ dedupe: nestedDeps,
+ alias: [{ find: /^solid-refresh$/, replacement: '/@solid-refresh' }],
+ },
+ optimizeDeps: {
+ include: nestedDeps,
+ },
+ ssr: {
+ external: ['solid-js/web/dist/server.js', 'solid-js/store/dist/server.js', 'solid-js/dist/server.js', 'babel-preset-solid'],
+ },
+ };
+ },
};
diff --git a/packages/renderers/renderer-solid/package.json b/packages/renderers/renderer-solid/package.json
index a8c7a0d33..c24b24bc6 100644
--- a/packages/renderers/renderer-solid/package.json
+++ b/packages/renderers/renderer-solid/package.json
@@ -11,8 +11,8 @@
},
"dependencies": {
"babel-plugin-module-resolver": "^4.1.0",
- "babel-preset-solid": "^1.1.1",
- "solid-js": "^1.1.1"
+ "babel-preset-solid": "^1.1.7",
+ "solid-js": "^1.1.7"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
diff --git a/packages/renderers/renderer-solid/server.js b/packages/renderers/renderer-solid/server.js
index 65a4e8d22..5730ff89e 100644
--- a/packages/renderers/renderer-solid/server.js
+++ b/packages/renderers/renderer-solid/server.js
@@ -1,4 +1,3 @@
-import { createComponent } from 'solid-js';
import { renderToString, ssr, createComponent } from 'solid-js/web/dist/server.js';
function check(Component, props, children) {
diff --git a/packages/renderers/renderer-svelte/index.js b/packages/renderers/renderer-svelte/index.js
index deeb9119e..ce7290d9b 100644
--- a/packages/renderers/renderer-svelte/index.js
+++ b/packages/renderers/renderer-svelte/index.js
@@ -4,10 +4,17 @@ export default {
name: '@astrojs/renderer-svelte',
client: './client.js',
server: './server.js',
- vitePlugins: [
- svelte({
- emitCss: true,
- compilerOptions: { hydratable: true },
- }),
- ],
+ viteConfig() {
+ return {
+ optimizeDeps: {
+ include: ['@astrojs/renderer-svelte/client.js', 'svelte', 'svelte/internal'],
+ },
+ plugins: [
+ svelte({
+ emitCss: true,
+ compilerOptions: { hydratable: true },
+ }),
+ ],
+ };
+ },
};
diff --git a/packages/renderers/renderer-svelte/package.json b/packages/renderers/renderer-svelte/package.json
index 50d849ef1..c573cb911 100644
--- a/packages/renderers/renderer-svelte/package.json
+++ b/packages/renderers/renderer-svelte/package.json
@@ -10,8 +10,8 @@
"./package.json": "./package.json"
},
"dependencies": {
- "@sveltejs/vite-plugin-svelte": "^1.0.0-next.19",
- "svelte": "^3.42.3"
+ "@sveltejs/vite-plugin-svelte": "^1.0.0-next.29",
+ "svelte": "^3.44.0"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
diff --git a/packages/renderers/renderer-vue/index.js b/packages/renderers/renderer-vue/index.js
index 733154103..5e39c5a00 100644
--- a/packages/renderers/renderer-vue/index.js
+++ b/packages/renderers/renderer-vue/index.js
@@ -4,6 +4,15 @@ export default {
name: '@astrojs/renderer-vue',
client: './client.js',
server: './server.js',
- knownEntrypoints: ['vue', '@vue/server-renderer'],
- vitePlugins: [vue()],
+ viteConfig() {
+ return {
+ optimizeDeps: {
+ include: ['@astrojs/renderer-vue/client.js', 'vue'],
+ },
+ plugins: [vue()],
+ ssr: {
+ external: ['@vue/server-renderer'],
+ },
+ };
+ },
};
diff --git a/packages/renderers/renderer-vue/package.json b/packages/renderers/renderer-vue/package.json
index 7cdab4428..68c99b39d 100644
--- a/packages/renderers/renderer-vue/package.json
+++ b/packages/renderers/renderer-vue/package.json
@@ -10,10 +10,10 @@
"./package.json": "./package.json"
},
"dependencies": {
- "@vitejs/plugin-vue": "^1.6.0",
- "@vue/compiler-sfc": "^3.2.6",
- "@vue/server-renderer": "^3.2.6",
- "vue": "^3.2.6"
+ "@vitejs/plugin-vue": "^1.9.3",
+ "@vue/compiler-sfc": "^3.2.20",
+ "@vue/server-renderer": "^3.2.20",
+ "vue": "^3.2.20"
},
"engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
diff --git a/packages/renderers/renderer-vue/server.js b/packages/renderers/renderer-vue/server.js
index 3d3159634..fb48e6299 100644
--- a/packages/renderers/renderer-vue/server.js
+++ b/packages/renderers/renderer-vue/server.js
@@ -3,7 +3,7 @@ import { h, createSSRApp } from 'vue';
import StaticHtml from './static-html.js';
function check(Component) {
- return Component['ssrRender'];
+ return !!Component['ssrRender'];
}
async function renderToStaticMarkup(Component, props, children) {
diff --git a/yarn.lock b/yarn.lock
index dc5a8cd3f..a5971aa2c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -428,7 +428,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-react-jsx@^7.14.5":
+"@babel/plugin-transform-react-jsx@^7.14.9":
version "7.14.9"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c"
integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw==
@@ -470,7 +470,7 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.7", "@babel/types@^7.14.9", "@babel/types@^7.15.0", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0":
+"@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.7", "@babel/types@^7.14.9", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0":
version "7.15.6"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==
@@ -1750,10 +1750,10 @@
dotenv "^8.2.0"
dotenv-expand "^5.1.0"
-"@sveltejs/vite-plugin-svelte@^1.0.0-next.19":
- version "1.0.0-next.24"
- resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.24.tgz#55033c27b5f428e804ff64f410a640baacff0333"
- integrity sha512-b+n3jcLpk2j/25APQbk5ejCyd0faYTB2bOxR3gY0LX3MFGgdiL8zdf3/aawcPSxLdbL73YVlxNBIATGuvq03uQ==
+"@sveltejs/vite-plugin-svelte@^1.0.0-next.29":
+ version "1.0.0-next.29"
+ resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.29.tgz#862fadcac164d8e90a45f3248289fbc65382c7df"
+ integrity sha512-awbeIB34ma/ytoVsG0lxKfFaJ4rjPaAsiepJ5I+dKe9jVjWmGoIMJ9sKD77/xvNdwgO+3v/vkwvIbEG4XRdmtg==
dependencies:
"@rollup/pluginutils" "^4.1.1"
debug "^4.3.2"
@@ -2086,109 +2086,100 @@
resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
-"@vitejs/plugin-vue@^1.6.0":
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.6.2.tgz#40dfe314cff610d4dd027a0b4ea2a93a257f3fc9"
- integrity sha512-Pf+dqkT4pWPfziPm51VtDXsPwE74CEGRiK6Vgm5EDBewHw1EgcxG7V2ZI/Yqj5gcDy5nVtjgx0AbsTL+F3gddg==
+"@vitejs/plugin-vue@^1.9.3":
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.9.3.tgz#93d61893ce6c723d0209af0483ec8b91a2cd811f"
+ integrity sha512-yW6H/q+4Mc2PcVjSOelcsMrg/k15DnMUz8jyCFsI04emc3aLwo4AoofUfGnjHUkgirrDxSJLVqQVGhonQ3yykA==
-"@vue/compiler-core@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.12.tgz#23998d6986a45e1ab0424130cc0ad00e33da1101"
- integrity sha512-IGJ0JmrAaAl5KBBegPAKkoXvsfDFgN/h7K1t/+0MxqpZF1fTDVUOp3tG7q9gWa7fwzGEaIsPhjtT5C3qztdLKg==
+"@vue/compiler-core@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.20.tgz#af5a3c5237818835b0d0be837eb5885a8d21c160"
+ integrity sha512-vcEXlKXoPwBXFP5aUTHN9GTZaDfwCofa9Yu9bbW2C5O/QSa9Esdt7OG4+0RRd3EHEMxUvEdj4RZrd/KpQeiJbA==
dependencies:
"@babel/parser" "^7.15.0"
- "@babel/types" "^7.15.0"
- "@vue/shared" "3.2.12"
+ "@vue/shared" "3.2.20"
estree-walker "^2.0.2"
source-map "^0.6.1"
-"@vue/compiler-dom@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.12.tgz#d6ba00114e73adb8b18940c3ff18797cc2b0514f"
- integrity sha512-MulvKilA2USm8ubPfvXvNY55HVTn+zHERsXeNg437TXrmM4FRCis6zjWW47QZ3ZyxEkCdqOmuiFCtXbpnuthyw==
+"@vue/compiler-dom@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.20.tgz#8e0ef354449c0faf41519b00bfc2045eae01dcb5"
+ integrity sha512-QnI77ec/JtV7R0YBbcVayYTDCRcI9OCbxiUQK6izVyqQO0658n0zQuoNwe+bYgtqnvGAIqTR3FShTd5y4oOjdg==
dependencies:
- "@vue/compiler-core" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/compiler-core" "3.2.20"
+ "@vue/shared" "3.2.20"
-"@vue/compiler-sfc@^3.2.6":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.12.tgz#39555550d96051508753ba934f7260dc5ee5211e"
- integrity sha512-EjzeMQ7H2ICj+JRw2buSFXTocdCg8e5yWQTlNM/6h/u68sTwMbIfiOJBFEwBhG/wCG7Nb6Nnz888AfHTU3hdrA==
+"@vue/compiler-sfc@3.2.20", "@vue/compiler-sfc@^3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.20.tgz#2d7668e76f066c566dd7c09c15c9acce4e876e0a"
+ integrity sha512-03aZo+6tQKiFLfunHKSPZvdK4Jsn/ftRCyaro8AQIWkuxJbvSosbKK6HTTn+D2c3nPScG155akJoxKENw7rftQ==
dependencies:
"@babel/parser" "^7.15.0"
- "@babel/types" "^7.15.0"
- "@types/estree" "^0.0.48"
- "@vue/compiler-core" "3.2.12"
- "@vue/compiler-dom" "3.2.12"
- "@vue/compiler-ssr" "3.2.12"
- "@vue/ref-transform" "3.2.12"
- "@vue/shared" "3.2.12"
- consolidate "^0.16.0"
+ "@vue/compiler-core" "3.2.20"
+ "@vue/compiler-dom" "3.2.20"
+ "@vue/compiler-ssr" "3.2.20"
+ "@vue/ref-transform" "3.2.20"
+ "@vue/shared" "3.2.20"
estree-walker "^2.0.2"
- hash-sum "^2.0.0"
- lru-cache "^5.1.1"
magic-string "^0.25.7"
- merge-source-map "^1.1.0"
postcss "^8.1.10"
- postcss-modules "^4.0.0"
- postcss-selector-parser "^6.0.4"
source-map "^0.6.1"
-"@vue/compiler-ssr@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.12.tgz#32e5d4bc31c371c125b43e9d07b8a8f70442b080"
- integrity sha512-sY+VbLQ17FPr1CgirnqEgY+jbC7wI5c2Ma6u8le0+b4UKMYF9urI2pybAZc1nKz6O78FWA3OSnQFxTTLppe+9Q==
+"@vue/compiler-ssr@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.20.tgz#9cceb6261d9932cb5568202610c1c28f86c5e521"
+ integrity sha512-rzzVVYivm+EjbfiGQvNeyiYZWzr6Hkej97RZLZvcumacQlnKv9176Xo9rRyeWwFbBlxmtNdrVMslRXtipMXk2w==
dependencies:
- "@vue/compiler-dom" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/compiler-dom" "3.2.20"
+ "@vue/shared" "3.2.20"
-"@vue/reactivity@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.12.tgz#b482a737cbdc891f9b1ec3100f3c1804b56d080b"
- integrity sha512-Lr5CTQjFm5mT/6DGnVNhptmba/Qg1DbD6eNWWmiHLMlpPt4q2ww9A2orEjVw0qNcdTJ04JLPEVAz5jhTZTCfIg==
+"@vue/reactivity@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.20.tgz#81fe1c368e7f20bc0ec1dec1045bbee253582de8"
+ integrity sha512-nSmoLojUTk+H8HNTAkrUduB4+yIUBK2HPihJo2uXVSH4Spry6oqN6lFzE5zpLK+F27Sja+UqR9R1+/kIOsHV5w==
dependencies:
- "@vue/shared" "3.2.12"
+ "@vue/shared" "3.2.20"
-"@vue/ref-transform@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.12.tgz#6f7fa46dd84447ddcf54adfb1b689b1cf4243de0"
- integrity sha512-lS7TDda61iSf3ljokXVfN0VbOsQdmpST6MZLjxzBydFCECCJaEAr6o+K8VZ7NhUCSrl+gKXHpdXxmcvwdk66aQ==
+"@vue/ref-transform@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.20.tgz#2a59ec90caf8e5c7336776a0900bff0a8b81c090"
+ integrity sha512-Y42d3PGlYZ1lXcF3dbd3+qU/C/a3wYEZ949fyOI5ptzkjDWlkfU6vn74fmOjsLjEcjs10BXK2qO99FqQIK2r1Q==
dependencies:
"@babel/parser" "^7.15.0"
- "@vue/compiler-core" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/compiler-core" "3.2.20"
+ "@vue/shared" "3.2.20"
estree-walker "^2.0.2"
magic-string "^0.25.7"
-"@vue/runtime-core@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.12.tgz#422662fd5b85f787222d2aea840264ba97e84a13"
- integrity sha512-LO+ztgcmsomavYUaSq7BTteh8pmnUmvUnXUFVYdlcg3VCdYRS0ImlclpYsNHqjAk2gU+H09dr2PP0kL961xUfQ==
+"@vue/runtime-core@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.20.tgz#8f63e956a3f88fb772541443c45a7701211012cb"
+ integrity sha512-d1xfUGhZPfiZzAN7SatStD4vRtT8deJSXib2+Cz3x0brjMWKxe32asQc154FF1E2fFgMCHtnfd4A90bQEzV4GQ==
dependencies:
- "@vue/reactivity" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/reactivity" "3.2.20"
+ "@vue/shared" "3.2.20"
-"@vue/runtime-dom@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.12.tgz#d9fe865dca36f9ca33ba327afdeb89ae2aa03f4c"
- integrity sha512-+NSDqivgihvoPYbKFDmzFu1tW7SOzwc7r0b7T8vsJtooVPGxwtfAFZ6wyLtteOXXrCpyTR3kpyTCIp31uY7aJg==
+"@vue/runtime-dom@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.20.tgz#8aa56ae6c30f9cd4a71ca0e9ec3c4bdc67148d15"
+ integrity sha512-4TCvZMLhESWCFHFYgqN4QmMA/onnINAlUovhopjlS8ST27G1A8Z0tyxPzLoXLa+b5JrOpbMPheEMPvdKExTJig==
dependencies:
- "@vue/runtime-core" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/runtime-core" "3.2.20"
+ "@vue/shared" "3.2.20"
csstype "^2.6.8"
-"@vue/server-renderer@^3.2.6":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.12.tgz#633160c02a1176687ee4a56d3d1d0dae0b613bb1"
- integrity sha512-UaCFshV/NfE0Z73+DuDMaHVBCipvitRo0myA3yO/nm4tyT7L6yz66qIwthR4m4HnBQh/vnEK/3c1v6sS3Q2auA==
+"@vue/server-renderer@3.2.20", "@vue/server-renderer@^3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.20.tgz#705e07ae9425132b2b6227d308a51a13f4d4ec81"
+ integrity sha512-viIbZGep9XabnrRcaxWIi00cOh1x21QYm2upIL5W0zqzTJ54VdTzpI+zi1osNp+VfRQDTHpV2U7H3Kn4ljYJvg==
dependencies:
- "@vue/compiler-ssr" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/compiler-ssr" "3.2.20"
+ "@vue/shared" "3.2.20"
-"@vue/shared@3.2.12":
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.12.tgz#304064a4b56fc6c7b9169d80e9ee62ecb4bf0a1c"
- integrity sha512-5CkaifUCJwcTuru7FDwKFacPJuEoGUTw0LKSa5bw40B23s0TS+MGlYR1285nbV/ju3QUGlA6d6PD+GJkWy7uFg==
+"@vue/shared@3.2.20":
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.20.tgz#53746961f731a8ea666e3316271e944238dc31db"
+ integrity sha512-FbpX+hD5BvXCQerEYO7jtAGHlhAkhTQ4KIV73kmLWNlawWhTiVuQxizgVb0BOkX5oG9cIRZ42EG++d/k/Efp0w==
"@web/parse5-utils@^1.3.0":
version "1.3.0"
@@ -2592,14 +2583,15 @@ axios@^0.21.1:
dependencies:
follow-redirects "^1.14.0"
-babel-plugin-jsx-dom-expressions@^0.29.16:
- version "0.29.16"
- resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.29.16.tgz#12715a418c593a409b1d21b19d1cc9a1bb490081"
- integrity sha512-09bLfsWh+J0U0z8QNwmlxvow0yGAACKcuxN6VvAESmVJNn0V4AS3mQA4II795rhCKK0yW7KfYDkUv9fQxUd3OQ==
+babel-plugin-jsx-dom-expressions@^0.29.19:
+ version "0.29.19"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.29.19.tgz#95a46f2aac0d4c297006b854519edcb7fcc6f813"
+ integrity sha512-qg1N4S6E3S7I6rgqQE1xWH6p3eZpeDxrr+Al1Ptov0NjM69fKQQfeeAtyq1Q9DjdUOIhe9MGoCVA1X+TzXZzMA==
dependencies:
"@babel/helper-module-imports" "^7.10.4"
"@babel/plugin-syntax-jsx" "^7.10.4"
"@babel/types" "^7.11.5"
+ html-entities "2.3.2"
babel-plugin-module-resolver@^4.1.0:
version "4.1.0"
@@ -2612,12 +2604,12 @@ babel-plugin-module-resolver@^4.1.0:
reselect "^4.0.0"
resolve "^1.13.1"
-babel-preset-solid@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.1.3.tgz#0d4a4d6855c93ab2775bf929f86f2ed1e97d79ae"
- integrity sha512-I27j40FJQ6T1Y4Is3E2XXXgW6uyl6EhOavon75eRuN8J0j5koSi7VhoslSjZffYCUixZLTIuM44/Bg2BJsT9hg==
+babel-preset-solid@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.1.7.tgz#61a699ebcea34a19adfdd9f637f03861f0c3f90e"
+ integrity sha512-OzteGVVg/3m3DC7Mo589m8KyyBZ6qO7JFhLHRusC0G/Xi6VukfKJZOpUkXGI4P7RDyLIANG3jqGVvzsjoLnihw==
dependencies:
- babel-plugin-jsx-dom-expressions "^0.29.16"
+ babel-plugin-jsx-dom-expressions "^0.29.19"
bail@^1.0.0:
version "1.0.5"
@@ -2682,17 +2674,12 @@ bhttp@^1.2.1:
through2-spy "^1.2.0"
tough-cookie "^2.3.1"
-big.js@^5.2.2:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
- integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
-
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
-bluebird@3.7.2, bluebird@^3.7.2:
+bluebird@3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -3399,13 +3386,6 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-consolidate@^0.16.0:
- version "0.16.0"
- resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16"
- integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==
- dependencies:
- bluebird "^3.7.2"
-
content-disposition@~0.5.2:
version "0.5.3"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
@@ -3990,11 +3970,6 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-emojis-list@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
- integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
-
encodeurl@^1.0.2, encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -5067,13 +5042,6 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
-generic-names@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872"
- integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==
- dependencies:
- loader-utils "^1.1.0"
-
gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
@@ -5397,11 +5365,6 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-hash-sum@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
- integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
-
hast-to-hyperscript@^10.0.0:
version "10.0.1"
resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-10.0.1.tgz#3decd7cb4654bca8883f6fcbd4fb3695628c4296"
@@ -5586,7 +5549,7 @@ hsla-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
-html-entities@^2.3.2:
+html-entities@2.3.2, html-entities@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488"
integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==
@@ -5749,16 +5712,6 @@ iconv-lite@^0.6.2:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
-icss-replace-symbols@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
- integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
-
-icss-utils@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
- integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
-
ignore-walk@^3.0.3:
version "3.0.4"
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335"
@@ -6357,13 +6310,6 @@ json5@^0.5.1:
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-json5@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
- integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
- dependencies:
- minimist "^1.2.0"
-
json5@^2.1.2:
version "2.2.0"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
@@ -6657,15 +6603,6 @@ load-yaml-file@^0.2.0:
pify "^4.0.1"
strip-bom "^3.0.0"
-loader-utils@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
- integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
- dependencies:
- big.js "^5.2.2"
- emojis-list "^3.0.0"
- json5 "^1.0.1"
-
locate-character@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-2.0.5.tgz#f2d2614d49820ecb3c92d80d193b8db755f74c0f"
@@ -6706,11 +6643,6 @@ lodash._reinterpolate@^3.0.0:
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-lodash.camelcase@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
- integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
-
lodash.clonedeep@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
@@ -7096,13 +7028,6 @@ meow@^8.0.0:
type-fest "^0.18.0"
yargs-parser "^20.2.3"
-merge-source-map@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
- integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
- dependencies:
- source-map "^0.6.1"
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -8691,48 +8616,6 @@ postcss-load-config@^3.1.0:
lilconfig "^2.0.3"
yaml "^1.10.2"
-postcss-modules-extract-imports@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
- integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
-
-postcss-modules-local-by-default@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
- integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
- dependencies:
- icss-utils "^5.0.0"
- postcss-selector-parser "^6.0.2"
- postcss-value-parser "^4.1.0"
-
-postcss-modules-scope@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
- integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
- dependencies:
- postcss-selector-parser "^6.0.4"
-
-postcss-modules-values@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
- integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
- dependencies:
- icss-utils "^5.0.0"
-
-postcss-modules@^4.0.0:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5"
- integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==
- dependencies:
- generic-names "^2.0.1"
- icss-replace-symbols "^1.1.0"
- lodash.camelcase "^4.3.0"
- postcss-modules-extract-imports "^3.0.0"
- postcss-modules-local-by-default "^4.0.0"
- postcss-modules-scope "^3.0.0"
- postcss-modules-values "^4.0.0"
- string-hash "^1.1.1"
-
postcss-nested@5.0.6:
version "5.0.6"
resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc"
@@ -8740,7 +8623,7 @@ postcss-nested@5.0.6:
dependencies:
postcss-selector-parser "^6.0.6"
-postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6:
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.6:
version "6.0.6"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
@@ -8783,10 +8666,10 @@ preact-render-to-string@^5.1.19:
dependencies:
pretty-format "^3.8.0"
-preact@^10.5.14:
- version "10.5.14"
- resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.14.tgz#0b14a2eefba3c10a57116b90d1a65f5f00cd2701"
- integrity sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==
+preact@^10.5.15:
+ version "10.5.15"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.15.tgz#6df94d8afecf3f9e10a742fd8c362ddab464225f"
+ integrity sha512-5chK29n6QcJc3m1lVrKQSQ+V7K1Gb8HeQY6FViQ5AxCAEGu3DaHffWNDkC9+miZgsLvbvU9rxbV1qinGHMHzqA==
preferred-pm@^3.0.0:
version "3.0.3"
@@ -9868,10 +9751,10 @@ socks@^2.3.3, socks@^2.6.1:
ip "^1.1.5"
smart-buffer "^4.1.0"
-solid-js@^1.1.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.1.4.tgz#ceba54d6b60f66692f8a072fb7419e94cfbcdd65"
- integrity sha512-u3rvemWTQQ1ab9YrrRR+bUi7Daq5ZRVlR6gEDsHrRYC5uYFkFGGRt/ibjo+OsBxjbPRxGzy7jel3mfTZiiuNzA==
+solid-js@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/solid-js/-/solid-js-1.1.7.tgz#e9518be0447678344e92e902cbca5311299b66b8"
+ integrity sha512-+zZOdR++hFJ/dEmAaHjyI5/tPqRdItOVKsnLuBOKajCqG0n/Bs3uc8xWf8CiYTI7OIwSt5A6ASM8KDoKehfs6w==
sort-keys@^2.0.0:
version "2.0.0"
@@ -10079,11 +9962,6 @@ strict-uri-encode@^2.0.0:
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY=
-string-hash@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b"
- integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=
-
string-width@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
@@ -10314,10 +10192,10 @@ svelte-hmr@^0.14.7:
resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.7.tgz#7fa8261c7b225d9409f0a86f3b9ea5c3ca6f6607"
integrity sha512-pDrzgcWSoMaK6AJkBWkmgIsecW0GChxYZSZieIYfCP0v2oPyx2CYU/zm7TBIcjLVUPP714WxmViE9Thht4etog==
-svelte@^3.42.3:
- version "3.42.6"
- resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.42.6.tgz#45a534d76fcdb551a2f23abf2cfee648fa248d03"
- integrity sha512-lAcryr9Do2PeGtbodspX5I4kWj4yWYAa2WGpDCwzNkP3y8WZTxigMd4/TMO1rBZEOkMYGn4ZXrbAlSEGhK6q3w==
+svelte@^3.44.0:
+ version "3.44.0"
+ resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.44.0.tgz#e6176cb3ad93846ddb4140e93f43098136b23f3b"
+ integrity sha512-zWACSJBSncGiDvFfYOMFGNV5zDLOlyhftmO5yOZ0lEtQMptpElaRtl39MWz1+lYCpwUq4F3Q2lTzI9TrTL+eMA==
tailwindcss@^2.2.17:
version "2.2.17"
@@ -11238,14 +11116,16 @@ vscode-uri@^3.0.2:
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0"
integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==
-vue@^3.2.6:
- version "3.2.12"
- resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.12.tgz#b44f55506fb6a7c4b65635e609deb5f9368aa2ce"
- integrity sha512-VV14HtubmB56uuQaSvLkJZgoocPiN8CJI3zZA9y8h7q/Z5hcknDIFkbq5d8ku0ukZ6AJPQqMsZWcq0qryF0jgg==
+vue@^3.2.20:
+ version "3.2.20"
+ resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.20.tgz#940f8aa8bf3e3be78243ca582bad41fcd45ae3e6"
+ integrity sha512-81JjEP4OGk9oO8+CU0h2nFPGgJBm9mNa3kdCX2k6FuRdrWrC+CNe+tOnuIeTg8EWwQuI+wwdra5Q7vSzp7p4Iw==
dependencies:
- "@vue/compiler-dom" "3.2.12"
- "@vue/runtime-dom" "3.2.12"
- "@vue/shared" "3.2.12"
+ "@vue/compiler-dom" "3.2.20"
+ "@vue/compiler-sfc" "3.2.20"
+ "@vue/runtime-dom" "3.2.20"
+ "@vue/server-renderer" "3.2.20"
+ "@vue/shared" "3.2.20"
wait-on@6.0.0:
version "6.0.0"