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
This commit is contained in:
parent
4b25d5592a
commit
330620e1b3
67 changed files with 421 additions and 549 deletions
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,8 +11,5 @@
|
|||
"devDependencies": {
|
||||
"@astrojs/renderer-lit": "^0.1.2",
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,18 +6,14 @@ import '../components/Counter.js';
|
|||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
|
||||
<title>Demo</title>
|
||||
</head>
|
||||
<body>
|
||||
<head>
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<title>Demo</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Test app</h1>
|
||||
|
||||
<my-counter client:load />
|
||||
|
||||
<Lorem />
|
||||
|
||||
<Lorem />
|
||||
<calc-add num={33} />
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -11,8 +11,5 @@
|
|||
"devDependencies": {
|
||||
"astro": "^0.20.12",
|
||||
"@astrojs/renderer-solid": "^0.1.1"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,20 +2,14 @@
|
|||
// Component Imports
|
||||
import Counter from '../components/Counter.tsx'
|
||||
|
||||
|
||||
// Full Astro Component Syntax:
|
||||
// https://docs.astro.build/core-concepts/astro-components/
|
||||
---
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width"
|
||||
/>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<style>
|
||||
:global(:root) {
|
||||
font-family: system-ui;
|
||||
|
@ -23,22 +17,22 @@ import Counter from '../components/Counter.tsx'
|
|||
}
|
||||
:global(.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: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
:global(.children) {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
margin-bottom: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<Counter client:visible>
|
||||
<h1>Hello Preact!</h1>
|
||||
<h1>Hello, Preact!</h1>
|
||||
</Counter>
|
||||
</main>
|
||||
</body>
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,13 +11,8 @@ const someProps = {
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width"
|
||||
/>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<style>
|
||||
:global(:root) {
|
||||
font-family: system-ui;
|
||||
|
@ -25,22 +20,22 @@ const someProps = {
|
|||
}
|
||||
:global(.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: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
:global(.children) {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
margin-bottom: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<Counter {...someProps} client:visible>
|
||||
<h1>Hello React!</h1>
|
||||
<h1>Hello, React!</h1>
|
||||
</Counter>
|
||||
</main>
|
||||
</body>
|
||||
|
|
|
@ -11,8 +11,5 @@
|
|||
"devDependencies": {
|
||||
"astro": "^0.20.12",
|
||||
"@astrojs/renderer-solid": "0.1.1"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
import Counter from '../components/Counter.jsx';
|
||||
---
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
@ -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;
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,13 +9,8 @@ import Counter from '../components/Counter.svelte'
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width"
|
||||
/>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<style>
|
||||
:global(:root) {
|
||||
font-family: system-ui;
|
||||
|
@ -23,22 +18,22 @@ import Counter from '../components/Counter.svelte'
|
|||
}
|
||||
:global(.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: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
:global(.children) {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
margin-bottom: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<Counter client:visible>
|
||||
<h1>Hello Svelte!</h1>
|
||||
<h1>Hello, Svelte!</h1>
|
||||
</Counter>
|
||||
</main>
|
||||
</body>
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,13 +9,8 @@ import Counter from '../components/Counter.vue'
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width"
|
||||
/>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<style>
|
||||
:global(:root) {
|
||||
font-family: system-ui;
|
||||
|
@ -23,22 +18,22 @@ import Counter from '../components/Counter.vue'
|
|||
}
|
||||
:global(.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: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
:global(.children) {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
margin-bottom: 2em;
|
||||
place-items: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<Counter client:visible>
|
||||
<h1>Hello Vue!</h1>
|
||||
<h1>Hello, Vue!</h1>
|
||||
</Counter>
|
||||
</main>
|
||||
</body>
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,8 +15,5 @@
|
|||
"rehype-toc": "^3.0.2",
|
||||
"remark-code-titles": "^0.1.2",
|
||||
"remark-slug": "^6.0.0"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,8 +10,5 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"astro": "^0.20.12"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,8 +13,5 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"nanostores": "^0.3.3"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,8 +12,5 @@
|
|||
"astro": "^0.20.12",
|
||||
"autoprefixer": "^10.3.7",
|
||||
"tailwindcss": "^2.2.17"
|
||||
},
|
||||
"snowpack": {
|
||||
"workspaceRoot": "../.."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<vite.InlineConfig>;
|
||||
/** @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 {
|
||||
|
|
|
@ -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<ViteConfigWithSSR> {
|
||||
const optimizedDeps = new Set<string>(); // dependencies that must be bundled for the client (Vite may not detect all of these)
|
||||
const dedupe = new Set<string>(); // 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<ViteConfigWithSSR> {
|
||||
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<string>; 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));
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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`
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1,2 +1 @@
|
|||
|
||||
globalThis.somePolyfillHere = '';
|
||||
globalThis.somePolyfillHere = '';
|
||||
|
|
|
@ -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']
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -10,4 +10,4 @@
|
|||
"./polyfill.js": "./polyfill.js",
|
||||
"./hydration-polyfill.js": "./hydration-polyfill.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
console.log('this is a polyfill');
|
||||
export default {};
|
||||
export default {};
|
||||
|
|
|
@ -29,4 +29,4 @@ function renderToStaticMarkup(component) {
|
|||
export default {
|
||||
check,
|
||||
renderToStaticMarkup
|
||||
};
|
||||
};
|
||||
|
|
|
@ -25,4 +25,4 @@ globalThis.HTMLElement = class {
|
|||
set innerHTML(val) {
|
||||
this._innerHTML = val;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
"dependencies": {
|
||||
"@astrojs/test-custom-element-renderer": "0.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,4 +10,4 @@ class MyElement extends HTMLElement {
|
|||
|
||||
customElements.define(tagName, MyElement);
|
||||
|
||||
export default MyElement;
|
||||
export default MyElement;
|
||||
|
|
|
@ -12,4 +12,4 @@ const title = 'My App';
|
|||
|
||||
<my-element client:load></my-element>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -10,4 +10,4 @@ export class MyElement extends LitElement {
|
|||
}
|
||||
}
|
||||
|
||||
customElements.define('my-element', MyElement);
|
||||
customElements.define('my-element', MyElement);
|
||||
|
|
|
@ -9,4 +9,4 @@ import { MyElement } from '../components/my-element.js';
|
|||
<body>
|
||||
<MyElement foo="bar" />
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -1,5 +1,5 @@
|
|||
/** @jsxImportSource preact */
|
||||
|
||||
export default function({}: object) {
|
||||
return <div class="pragma-comment">Hello world</div>;
|
||||
return <div class="pragma-comment-tsx">Hello world</div>;
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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', () => {});
|
||||
|
|
|
@ -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 <ArrowFunction /> 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', () => {});
|
||||
|
|
|
@ -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', () => {});
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
||||
|
|
|
@ -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',
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -41,7 +41,7 @@ function* render(tagName, attrs, children) {
|
|||
yield* shadowContents;
|
||||
yield '</template>';
|
||||
}
|
||||
yield children;
|
||||
yield children || ''; // don’t print “undefined” as string
|
||||
yield `</${tagName}>`;
|
||||
}
|
||||
|
||||
|
|
|
@ -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'],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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": {
|
||||
|
|
|
@ -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'],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
},
|
||||
|
|
|
@ -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 };
|
||||
}
|
||||
|
|
|
@ -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'],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 },
|
||||
}),
|
||||
],
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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'],
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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) {
|
||||
|
|
326
yarn.lock
326
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"
|
||||
|
|
Loading…
Reference in a new issue