diff --git a/npm/vite-dev-server/.eslintrc b/npm/vite-dev-server/.eslintrc
new file mode 100644
index 0000000000..fef43b39a0
--- /dev/null
+++ b/npm/vite-dev-server/.eslintrc
@@ -0,0 +1,52 @@
+{
+ "plugins": [
+ "cypress",
+ "@cypress/dev"
+ ],
+ "extends": [
+ "plugin:@cypress/dev/general",
+ "plugin:@cypress/dev/tests",
+ "plugin:@cypress/dev/react"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "env": {
+ "cypress/globals": true
+ },
+ "globals": {
+ "jest": "readonly"
+ },
+ "rules": {
+ "no-console": "off",
+ "mocha/no-global-tests": "off",
+ "@typescript-eslint/no-unused-vars": "off",
+ "react/jsx-filename-extension": [
+ "warn",
+ {
+ "extensions": [
+ ".js",
+ ".jsx",
+ ".tsx"
+ ]
+ }
+ ]
+ },
+ "overrides": [
+ {
+ "files": [
+ "lib/*"
+ ],
+ "rules": {
+ "no-console": 1
+ }
+ },
+ {
+ "files": [
+ "**/*.json"
+ ],
+ "rules": {
+ "quotes": "off",
+ "comma-dangle": "off"
+ }
+ }
+ ]
+}
diff --git a/npm/vite-dev-server/README.md b/npm/vite-dev-server/README.md
new file mode 100644
index 0000000000..91e2bf5da2
--- /dev/null
+++ b/npm/vite-dev-server/README.md
@@ -0,0 +1,3 @@
+# ⚡️ + 🌲 Cypress Component Testing w/ Vite
+
+> **Note** this package is not meant to be used outside of cypress component testing.
diff --git a/npm/vite-dev-server/cypress.json b/npm/vite-dev-server/cypress.json
new file mode 100644
index 0000000000..bf6f5c552c
--- /dev/null
+++ b/npm/vite-dev-server/cypress.json
@@ -0,0 +1,7 @@
+{
+ "experimentalComponentTesting": true,
+ "pluginsFile": "cypress/plugins.js",
+ "testFiles": "**/*.spec.*",
+ "componentFolder": "cypress/components",
+ "supportFile": "cypress/support/support.js"
+}
diff --git a/npm/vite-dev-server/cypress/components/large-third-party-dep-shaken.spec.ts b/npm/vite-dev-server/cypress/components/large-third-party-dep-shaken.spec.ts
new file mode 100644
index 0000000000..546ed3dadf
--- /dev/null
+++ b/npm/vite-dev-server/cypress/components/large-third-party-dep-shaken.spec.ts
@@ -0,0 +1,7 @@
+import { isBoolean } from 'lodash'
+
+describe('Large 3rd party library with tree-shaking', () => {
+ it('successfully imports isBoolean from lodash', () => {
+ expect(isBoolean(true)).to.be.true
+ })
+})
diff --git a/npm/vite-dev-server/cypress/components/large-third-party-dep.spec.ts b/npm/vite-dev-server/cypress/components/large-third-party-dep.spec.ts
new file mode 100644
index 0000000000..1c577b7201
--- /dev/null
+++ b/npm/vite-dev-server/cypress/components/large-third-party-dep.spec.ts
@@ -0,0 +1,7 @@
+import _ from 'lodash'
+
+describe('Large 3rd party library without tree-shaking', () => {
+ it('successfully imports lodash', () => {
+ expect(_.isBoolean(true)).to.be.true
+ })
+})
diff --git a/npm/vite-dev-server/cypress/components/smoke.spec.ts b/npm/vite-dev-server/cypress/components/smoke.spec.ts
new file mode 100644
index 0000000000..3a5aaeb6ee
--- /dev/null
+++ b/npm/vite-dev-server/cypress/components/smoke.spec.ts
@@ -0,0 +1,5 @@
+describe('With no imports', () => {
+ it('should be able to run this', () => {
+ expect(true).to.be.true
+ })
+})
diff --git a/npm/vite-dev-server/cypress/components/support.spec.ts b/npm/vite-dev-server/cypress/components/support.spec.ts
new file mode 100644
index 0000000000..a164718c3c
--- /dev/null
+++ b/npm/vite-dev-server/cypress/components/support.spec.ts
@@ -0,0 +1,14 @@
+describe('Support files', () => {
+ it('can load a support file', () => {
+ const $body = Cypress.$('body')
+
+ // Visual cue to help debug
+ const $supportNode = Cypress.$(`
Support file hasn't been loaded 😿
`)
+
+ $body.append($supportNode)
+
+ // @ts-ignore
+ expect(window.supportFileWasLoaded).to.be.true
+ $supportNode.text('Support file was loaded! ⚡️')
+ })
+})
diff --git a/npm/vite-dev-server/cypress/plugins.js b/npm/vite-dev-server/cypress/plugins.js
new file mode 100644
index 0000000000..9764b3ffaf
--- /dev/null
+++ b/npm/vite-dev-server/cypress/plugins.js
@@ -0,0 +1,9 @@
+import { startDevServer } from '@cypress/vite-dev-server'
+
+module.exports = (on, config) => {
+ on('dev-server:start', async (options) => {
+ return startDevServer({ options })
+ })
+
+ return config
+}
diff --git a/npm/vite-dev-server/cypress/support/support.js b/npm/vite-dev-server/cypress/support/support.js
new file mode 100644
index 0000000000..667b35a2c4
--- /dev/null
+++ b/npm/vite-dev-server/cypress/support/support.js
@@ -0,0 +1,3 @@
+before(() => {
+ window.supportFileWasLoaded = true
+})
diff --git a/npm/vite-dev-server/index-template.html b/npm/vite-dev-server/index-template.html
new file mode 100644
index 0000000000..0140f72559
--- /dev/null
+++ b/npm/vite-dev-server/index-template.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ Components App
+
+
+
+
+
+
diff --git a/npm/vite-dev-server/index.d.ts b/npm/vite-dev-server/index.d.ts
new file mode 100644
index 0000000000..bb6bb6c83a
--- /dev/null
+++ b/npm/vite-dev-server/index.d.ts
@@ -0,0 +1,2 @@
+// eslint-disable-next-line @typescript-eslint/triple-slash-reference
+///
diff --git a/npm/vite-dev-server/index.html b/npm/vite-dev-server/index.html
new file mode 100644
index 0000000000..f7f2aaf018
--- /dev/null
+++ b/npm/vite-dev-server/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ Document
+
+
+ Root HTML for my cool app -- in the real world, this would be the user's.
+ This is necessary to allow Vite to start up with yarn vite
+
+
diff --git a/npm/vite-dev-server/index.js b/npm/vite-dev-server/index.js
new file mode 100644
index 0000000000..2d2f3c0bcb
--- /dev/null
+++ b/npm/vite-dev-server/index.js
@@ -0,0 +1 @@
+module.exports = require('./dist')
diff --git a/npm/vite-dev-server/package.json b/npm/vite-dev-server/package.json
new file mode 100644
index 0000000000..e538a42c9b
--- /dev/null
+++ b/npm/vite-dev-server/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "@cypress/vite-dev-server",
+ "version": "0.0.0-development",
+ "description": "Launches Vite Dev Server for Component Testing",
+ "private": true,
+ "main": "index.js",
+ "scripts": {
+ "build": "tsc",
+ "build-prod": "tsc",
+ "cy:open": "node ../../scripts/start.js --component-testing --project ${PWD}",
+ "cy:run": "node ../../scripts/cypress.js open-ct --run-project ${PWD}",
+ "test": "yarn cy:run",
+ "watch": "tsc -w"
+ },
+ "dependencies": {
+ "debug": "4.3.2",
+ "mustache": "4.1.0"
+ },
+ "devDependencies": {
+ "@types/mustache": "4.1.1",
+ "vite": "2.0.0-beta.59"
+ },
+ "peerDependencies": {
+ "vite": ">= 2"
+ },
+ "files": [
+ "dist"
+ ],
+ "license": "MIT"
+}
diff --git a/npm/vite-dev-server/src/index.ts b/npm/vite-dev-server/src/index.ts
new file mode 100644
index 0000000000..b6da016910
--- /dev/null
+++ b/npm/vite-dev-server/src/index.ts
@@ -0,0 +1,37 @@
+import { EventEmitter } from 'events'
+import { debug as debugFn } from 'debug'
+import { start as createDevServer } from './startServer'
+import { UserConfig } from 'vite'
+import { Server } from 'http'
+const debug = debugFn('cypress:vite-dev-server:vite')
+
+interface Options {
+ specs: any[] // Cypress.Cypress['spec'][] // Why isn't this working? It works for webpack-dev-server
+ config: Record
+ devServerEvents: EventEmitter
+ [key: string]: unknown
+}
+
+export interface StartDevServer {
+ /* this is the Cypress options object */
+ options: Options
+ /* support passing a path to the user's webpack config */
+ viteConfig?: UserConfig // TODO: implement taking in the user's vite configuration. Right now we don't
+}
+
+export interface ResolvedDevServerConfig {
+ port: number
+ server: Server
+}
+
+export async function startDevServer (startDevServerArgs: StartDevServer): Promise {
+ const viteDevServer = await createDevServer(startDevServerArgs)
+
+ return new Promise(async (resolve) => {
+ const app = await viteDevServer.listen()
+ const port = app.config.server.port
+
+ debug('Component testing vite server started on port', port)
+ resolve({ port, server: app.httpServer })
+ })
+}
diff --git a/npm/vite-dev-server/src/makeCypressPlugin.ts b/npm/vite-dev-server/src/makeCypressPlugin.ts
new file mode 100644
index 0000000000..cb089183f0
--- /dev/null
+++ b/npm/vite-dev-server/src/makeCypressPlugin.ts
@@ -0,0 +1,41 @@
+import { EventEmitter } from 'events'
+import { relative, resolve } from 'path'
+import { readFileSync } from 'fs'
+import { Plugin, ViteDevServer } from 'vite'
+import { render } from 'mustache'
+
+const pluginName = 'cypress-transform-html'
+const indexHtmlPath = resolve(__dirname, '../index-template.html')
+const readIndexHtml = () => readFileSync(indexHtmlPath).toString()
+
+function handleIndex (indexHtml, projectRoot, supportFilePath, req, res) {
+ const specPath = `/${req.headers.__cypress_spec_path}`
+ const supportPath = supportFilePath ? `/${relative(projectRoot, supportFilePath)}` : null
+
+ res.end(render(indexHtml, { supportPath, specPath }))
+}
+
+export const makeCypressPlugin = (
+ projectRoot: string,
+ supportFilePath: string,
+ devServerEvents: EventEmitter,
+): Plugin => {
+ return {
+ name: pluginName,
+ enforce: 'pre',
+ configureServer: (server: ViteDevServer) => {
+ const indexHtml = readIndexHtml()
+
+ server.middlewares.use('/index.html', (req, res) => handleIndex(indexHtml, projectRoot, supportFilePath, req, res))
+ },
+ handleHotUpdate: () => {
+ console.log('HOT UPDATE')
+ devServerEvents.emit('dev-server:compile:success')
+
+ return []
+ },
+ // TODO subscribe on the compile error hook and call the
+ // devServerEvents.emit('dev-server:compile:error', err)
+ // it looks like for now (02.02.2021) there is no way to subscribe to an error
+ }
+}
diff --git a/npm/vite-dev-server/src/makeHtmlPlugin.ts b/npm/vite-dev-server/src/makeHtmlPlugin.ts
new file mode 100644
index 0000000000..2370a53c09
--- /dev/null
+++ b/npm/vite-dev-server/src/makeHtmlPlugin.ts
@@ -0,0 +1,27 @@
+import { relative, resolve } from 'path'
+import { readFileSync } from 'fs'
+import { Plugin, ViteDevServer } from 'vite'
+import { render } from 'mustache'
+
+const pluginName = 'cypress-transform-html'
+const indexHtmlPath = resolve(__dirname, '../index-template.html')
+const readIndexHtml = () => readFileSync(indexHtmlPath).toString()
+
+function handleIndex (indexHtml, projectRoot, supportFilePath, req, res) {
+ const specPath = `/${req.headers.__cypress_spec_path}`
+ const supportPath = supportFilePath ? `/${relative(projectRoot, supportFilePath)}` : null
+
+ res.end(render(indexHtml, { supportPath, specPath }))
+}
+
+export const makeHtmlPlugin = (projectRoot: string, supportFilePath: string): Plugin => {
+ return {
+ name: pluginName,
+ enforce: 'pre',
+ configureServer: (server: ViteDevServer) => {
+ const indexHtml = readIndexHtml()
+
+ server.middlewares.use('/index.html', (req, res) => handleIndex(indexHtml, projectRoot, supportFilePath, req, res))
+ },
+ }
+}
diff --git a/npm/vite-dev-server/src/startServer.ts b/npm/vite-dev-server/src/startServer.ts
new file mode 100644
index 0000000000..08737ff834
--- /dev/null
+++ b/npm/vite-dev-server/src/startServer.ts
@@ -0,0 +1,54 @@
+import Debug from 'debug'
+import { StartDevServer } from '.'
+import { createServer, ViteDevServer, InlineConfig } from 'vite'
+import { resolve } from 'path'
+import { makeCypressPlugin } from './makeCypressPlugin'
+import { EventEmitter } from 'events'
+
+const debug = Debug('cypress:vite-dev-server:start')
+
+// TODO: Pull in types for Options so we can infer these
+const serverConfig = (projectRoot: string, supportFilePath: string, devServerEvents: EventEmitter): InlineConfig => {
+ return {
+ root: resolve(__dirname, projectRoot),
+ base: '/__cypress/src/',
+ plugins: [makeCypressPlugin(projectRoot, supportFilePath, devServerEvents)],
+ server: {
+ port: 0,
+ },
+ }
+}
+
+const resolveServerConfig = ({ viteConfig, options }: StartDevServer) => {
+ const defaultServerConfig = serverConfig(
+ options.config.projectRoot,
+ options.config.supportFile,
+ options.devServerEvents,
+ )
+
+ const requiredOptions = {
+ base: defaultServerConfig.base,
+ root: defaultServerConfig.root,
+ }
+
+ const finalConfig = { ...defaultServerConfig, ...viteConfig, ...requiredOptions }
+
+ finalConfig.plugins = [...(viteConfig.plugins || []), defaultServerConfig.plugins[0]]
+ finalConfig.server.port = defaultServerConfig.server.port
+
+ debug(`the resolved server config is ${JSON.stringify(finalConfig, null, 2)}`)
+
+ return finalConfig
+}
+
+export async function start (devServerOptions: StartDevServer): Promise {
+ if (!devServerOptions.viteConfig) {
+ debug('User did not pass in any Vite dev server configuration')
+ devServerOptions.viteConfig = {}
+ }
+
+ debug('starting vite dev server')
+ const resolvedConfig = resolveServerConfig(devServerOptions)
+
+ return createServer(resolvedConfig)
+}
diff --git a/npm/vite-dev-server/tsconfig.json b/npm/vite-dev-server/tsconfig.json
new file mode 100644
index 0000000000..1e3fa42190
--- /dev/null
+++ b/npm/vite-dev-server/tsconfig.json
@@ -0,0 +1,52 @@
+{
+ "compilerOptions": {
+ /* Basic Options */
+ "target": "es2015" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */,
+ "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
+ "skipLibCheck": true,
+ "lib": [
+ "es2015",
+ "dom"
+ ] /* Specify library files to be included in the compilation: */,
+ "allowJs": true /* Allow javascript files to be compiled. */,
+ // "checkJs": true, /* Report errors in .js files. */
+ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
+ "declaration": true /* Generates corresponding '.d.ts' file. */,
+ // "sourceMap": true, /* Generates corresponding '.map' file. */
+ // "outFile": "./", /* Concatenate and emit output to single file. */
+ "outDir": "dist" /* Redirect output structure to the directory. */,
+ // "rootDir": "src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
+ // "removeComments": true, /* Do not emit comments to output. */
+// "noEmit": true, /* Do not emit outputs. */
+ // "importHelpers": true, /* Import emit helpers from 'tslib'. */
+ // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
+ // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
+
+ /* Strict Type-Checking Options */
+ "strict": false /* Enable all strict type-checking options. */,
+ "noImplicitAny": false,
+
+ /* Module Resolution Options */
+ // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
+ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
+ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
+ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
+ // "typeRoots": [], /* List of folders to include type definitions from. */
+ "types": ["cypress"] /* Type declaration files to be included in compilation. */,
+ "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
+ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
+
+ /* Source Map Options */
+ // "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
+ // "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */
+ // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
+ // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
+
+ /* Experimental Options */
+ // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
+ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
+ "esModuleInterop": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/server-ct/src/routes-ct.ts b/packages/server-ct/src/routes-ct.ts
index f380438e38..0e4e4c8073 100644
--- a/packages/server-ct/src/routes-ct.ts
+++ b/packages/server-ct/src/routes-ct.ts
@@ -40,6 +40,10 @@ export const createRoutes = ({
app.get('/__cypress/iframes/*', (req, res) => {
// always proxy to the index.html file
+ // attach header data for webservers
+ // to properly intercept and serve assets from the correct src root
+ // TODO: define a contract for dev-server plugins to configure this behavior
+ req.headers.__cypress_spec_path = req.params[0]
req.url = '/index.html'
// user the node proxy here instead of the network proxy
diff --git a/yarn.lock b/yarn.lock
index 181a5a8b80..34c6033b40 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -107,6 +107,13 @@
dependencies:
"@babel/highlight" "^7.10.4"
+"@babel/code-frame@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
+ integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==
+ dependencies:
+ "@babel/highlight" "^7.12.13"
+
"@babel/compat-data@^7.11.0", "@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7", "@babel/compat-data@^7.9.0":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
@@ -237,6 +244,27 @@
semver "^5.4.1"
source-map "^0.5.0"
+"@babel/core@^7.12.10":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz#b73a87a3a3e7d142a66248bf6ad88b9ceb093425"
+ integrity sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@babel/generator" "^7.12.13"
+ "@babel/helper-module-transforms" "^7.12.13"
+ "@babel/helpers" "^7.12.13"
+ "@babel/parser" "^7.12.13"
+ "@babel/template" "^7.12.13"
+ "@babel/traverse" "^7.12.13"
+ "@babel/types" "^7.12.13"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.19"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
"@babel/generator@^7.11.5", "@babel/generator@^7.4.0", "@babel/generator@^7.4.4", "@babel/generator@^7.6.0", "@babel/generator@^7.9.0":
version "7.11.6"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620"
@@ -255,6 +283,15 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.12.13":
+ version "7.12.15"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f"
+ integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==
+ dependencies:
+ "@babel/types" "^7.12.13"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.10":
version "7.12.10"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d"
@@ -324,6 +361,15 @@
"@babel/template" "^7.12.7"
"@babel/types" "^7.12.11"
+"@babel/helper-function-name@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a"
+ integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.12.13"
+ "@babel/template" "^7.12.13"
+ "@babel/types" "^7.12.13"
+
"@babel/helper-get-function-arity@^7.12.10":
version "7.12.10"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf"
@@ -331,6 +377,13 @@
dependencies:
"@babel/types" "^7.12.10"
+"@babel/helper-get-function-arity@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
+ integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-hoist-variables@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e"
@@ -345,6 +398,13 @@
dependencies:
"@babel/types" "^7.12.7"
+"@babel/helper-member-expression-to-functions@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz#c5715695b4f8bab32660dbdcdc2341dec7e3df40"
+ integrity sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5", "@babel/helper-module-imports@^7.8.3":
version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
@@ -352,6 +412,13 @@
dependencies:
"@babel/types" "^7.12.5"
+"@babel/helper-module-imports@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0"
+ integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-module-transforms@^7.10.1", "@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.11.0", "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.9.0":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
@@ -367,6 +434,21 @@
"@babel/types" "^7.12.1"
lodash "^4.17.19"
+"@babel/helper-module-transforms@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz#01afb052dcad2044289b7b20beb3fa8bd0265bea"
+ integrity sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.13"
+ "@babel/helper-replace-supers" "^7.12.13"
+ "@babel/helper-simple-access" "^7.12.13"
+ "@babel/helper-split-export-declaration" "^7.12.13"
+ "@babel/helper-validator-identifier" "^7.12.11"
+ "@babel/template" "^7.12.13"
+ "@babel/traverse" "^7.12.13"
+ "@babel/types" "^7.12.13"
+ lodash "^4.17.19"
+
"@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10":
version "7.12.10"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d"
@@ -374,11 +456,23 @@
dependencies:
"@babel/types" "^7.12.10"
+"@babel/helper-optimise-call-expression@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
+ integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.1", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
+"@babel/helper-plugin-utils@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb"
+ integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==
+
"@babel/helper-remap-async-to-generator@^7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd"
@@ -398,6 +492,16 @@
"@babel/traverse" "^7.12.10"
"@babel/types" "^7.12.11"
+"@babel/helper-replace-supers@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121"
+ integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.12.13"
+ "@babel/helper-optimise-call-expression" "^7.12.13"
+ "@babel/traverse" "^7.12.13"
+ "@babel/types" "^7.12.13"
+
"@babel/helper-simple-access@^7.10.1", "@babel/helper-simple-access@^7.10.4", "@babel/helper-simple-access@^7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
@@ -405,6 +509,13 @@
dependencies:
"@babel/types" "^7.12.1"
+"@babel/helper-simple-access@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4"
+ integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
@@ -419,6 +530,13 @@
dependencies:
"@babel/types" "^7.12.11"
+"@babel/helper-split-export-declaration@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
+ integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==
+ dependencies:
+ "@babel/types" "^7.12.13"
+
"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
@@ -448,6 +566,15 @@
"@babel/traverse" "^7.12.5"
"@babel/types" "^7.12.5"
+"@babel/helpers@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz#3c75e993632e4dadc0274eae219c73eb7645ba47"
+ integrity sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==
+ dependencies:
+ "@babel/template" "^7.12.13"
+ "@babel/traverse" "^7.12.13"
+ "@babel/types" "^7.12.13"
+
"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4", "@babel/highlight@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
@@ -457,6 +584,15 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
+"@babel/highlight@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c"
+ integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.12.11"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
"@babel/parser@7.12.11", "@babel/parser@^7.11.5", "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.7.7":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
@@ -467,6 +603,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037"
integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==
+"@babel/parser@^7.12.13":
+ version "7.12.15"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf"
+ integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==
+
"@babel/plugin-proposal-async-generator-functions@^7.10.4", "@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.2.0", "@babel/plugin-proposal-async-generator-functions@^7.8.3":
version "7.12.12"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566"
@@ -738,6 +879,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-syntax-import-meta@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-json-strings@^7.2.0", "@babel/plugin-syntax-json-strings@^7.8.0":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
@@ -1070,6 +1218,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-react-jsx-self@^7.12.10":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60"
+ integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.10.4", "@babel/plugin-transform-react-jsx-source@^7.9.0":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz#d07de6863f468da0809edcf79a1aa8ce2a82a26b"
@@ -1077,6 +1232,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-react-jsx-source@^7.12.10":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb"
+ integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.10.4", "@babel/plugin-transform-react-jsx@^7.12.10", "@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.3.0", "@babel/plugin-transform-react-jsx@^7.9.1", "@babel/plugin-transform-react-jsx@^7.9.4":
version "7.12.12"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz#b0da51ffe5f34b9a900e9f1f5fb814f9e512d25e"
@@ -1711,6 +1873,15 @@
"@babel/parser" "^7.12.7"
"@babel/types" "^7.12.7"
+"@babel/template@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327"
+ integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@babel/parser" "^7.12.13"
+ "@babel/types" "^7.12.13"
+
"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.9.0":
version "7.11.5"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3"
@@ -1756,6 +1927,21 @@
globals "^11.1.0"
lodash "^4.17.19"
+"@babel/traverse@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0"
+ integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@babel/generator" "^7.12.13"
+ "@babel/helper-function-name" "^7.12.13"
+ "@babel/helper-split-export-declaration" "^7.12.13"
+ "@babel/parser" "^7.12.13"
+ "@babel/types" "^7.12.13"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.19"
+
"@babel/traverse@^7.12.5", "@babel/traverse@^7.7.4":
version "7.12.7"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.7.tgz#572a722408681cef17d6b0bef69ef2e728ca69f1"
@@ -1798,6 +1984,15 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
+"@babel/types@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611"
+ integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.12.11"
+ lodash "^4.17.19"
+ to-fast-properties "^2.0.0"
+
"@bahmutov/all-paths@1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@bahmutov/all-paths/-/all-paths-1.0.2.tgz#9ae0dcdf9022dd6e5e14d7fda3479e6a330d035b"
@@ -5661,6 +5856,11 @@
dependencies:
"@types/node" "*"
+"@types/mustache@4.1.1":
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/@types/mustache/-/mustache-4.1.1.tgz#fcfa2db0cee6261e66f2437dc2fe71e26c7856b4"
+ integrity sha512-Sm0NWeLhS2QL7NNGsXvO+Fgp7e3JLHCO6RS3RCnfjAnkw6Y1bsji/AGfISdQZDIR/AeOyzkrxRk9jBkl55zdJw==
+
"@types/node@*", "@types/node@>= 8", "@types/node@^14.14.7":
version "14.14.20"
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340"
@@ -5753,6 +5953,13 @@
dependencies:
"@types/react" "*"
+"@types/react-dom@^17.0.0":
+ version "17.0.0"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.0.tgz#b3b691eb956c4b3401777ee67b900cb28415d95a"
+ integrity sha512-lUqY7OlkF/RbNtD5nIq7ot8NquXrdFrjSOR6+w9a9RFQevGi1oZO1dcJbXMeONAPKtZ2UrZOEJ5UOCVsxbLk/g==
+ dependencies:
+ "@types/react" "*"
+
"@types/react-transition-group@^4.2.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz#882839db465df1320e4753e6e9f70ca7e9b4d46d"
@@ -5760,7 +5967,7 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@16.9.50", "@types/react@^16.9.11", "@types/react@^16.9.23":
+"@types/react@*", "@types/react@16.9.50", "@types/react@^16.9.11", "@types/react@^16.9.23", "@types/react@^17.0.0":
version "16.9.50"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.50.tgz#cb5f2c22d42de33ca1f5efc6a0959feb784a3a2d"
integrity sha512-kPx5YsNnKDJejTk1P+lqThwxN2PczrocwsvqXnjvVvKpFescoY62ZiM3TV7dH1T8lFhlHZF+PE5xUyimUwqEGA==
@@ -6160,6 +6367,17 @@
resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
+"@vitejs/plugin-react-refresh@^1.1.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.0.tgz#d12fd79cb33f48ea9891c6eee8d6921cbe2caa26"
+ integrity sha512-6N4CqjzGFcbSTeiC90BPDm2QVo5qkIdqSJQNvuASB3U48+GTJTvUwBGaru46FgEni4eYKM9xBdqYoBhCAfkPLA==
+ dependencies:
+ "@babel/core" "^7.12.10"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-transform-react-jsx-self" "^7.12.10"
+ "@babel/plugin-transform-react-jsx-source" "^7.12.10"
+ react-refresh "^0.9.0"
+
"@vue/babel-helper-vue-jsx-merge-props@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81"
@@ -14509,6 +14727,11 @@ es6-weak-map@^2.0.1:
es6-iterator "^2.0.3"
es6-symbol "^3.1.1"
+esbuild@^0.8.34:
+ version "0.8.38"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.38.tgz#04dc395e15c77bbc9d6798e9b31275546bcf7b9a"
+ integrity sha512-wSunJl8ujgBs9eVGubc8Y6fn/DkDjNyfQBVOFTY1E7sRxr8KTjmqyLIiE0M3Z4CjMnCu/rttCugwnOzY+HiwIw==
+
escalade@^3.0.1, escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -23822,6 +24045,11 @@ multiparty@4.2.1:
safe-buffer "5.1.2"
uid-safe "2.1.5"
+mustache@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.1.0.tgz#8c1b042238a982d2eb2d30efc6c14296ae3f699d"
+ integrity sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==
+
mute-stdout@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331"
@@ -23856,7 +24084,7 @@ nanoid@3.1.12:
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654"
integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==
-nanoid@3.1.20:
+nanoid@3.1.20, nanoid@^3.1.20:
version "3.1.20"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788"
integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==
@@ -27003,6 +27231,15 @@ postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.14, po
source-map "^0.6.1"
supports-color "^6.1.0"
+postcss@^8.2.1:
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04"
+ integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==
+ dependencies:
+ colorette "^1.2.1"
+ nanoid "^3.1.20"
+ source-map "^0.6.1"
+
postinstall-postinstall@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.0.0.tgz#7ba6711b4420575c4f561638836a81faad47f43f"
@@ -27945,6 +28182,15 @@ react-dom@^16.0.0:
prop-types "^15.6.2"
scheduler "^0.19.1"
+react-dom@^17.0.0:
+ version "17.0.1"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6"
+ integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+ scheduler "^0.20.1"
+
react-error-overlay@^6.0.3, react-error-overlay@^6.0.7:
version "6.0.8"
resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.8.tgz#474ed11d04fc6bda3af643447d85e9127ed6b5de"
@@ -28070,6 +28316,11 @@ react-refresh@0.8.3:
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
+react-refresh@^0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.9.0.tgz#71863337adc3e5c2f8a6bfddd12ae3bfe32aafbf"
+ integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==
+
react-remove-scroll-bar@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.1.1.tgz#5876428dfd546f2f63a4d277aea2197925505c1e"
@@ -28342,6 +28593,14 @@ react@^16.0.0, react@^16.13.1:
object-assign "^4.1.1"
prop-types "^15.6.2"
+react@^17.0.0:
+ version "17.0.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
+ integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
read-all-stream@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa"
@@ -29266,7 +29525,7 @@ resolve@^0.6.3:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46"
integrity sha1-3ZV5gufnNt699TtYpN2RdUV13UY=
-resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1:
+resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1:
version "1.19.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
@@ -29456,6 +29715,20 @@ rollup@2.28.1:
optionalDependencies:
fsevents "~2.1.2"
+rollup@^2.35.1:
+ version "2.38.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.2.tgz#ac5feef9e3b5f1c4386a0578f3add52b8b66759f"
+ integrity sha512-3Sg65zfgqsnI2LUFsOmhJDvTWXwio+taySq/dsyvel8+GW+AxeW9V6YZG8BpVGQk/TS4uvGLARRH5T3ygDyyNQ==
+ optionalDependencies:
+ fsevents "~2.1.2"
+
+rollup@^2.38.5:
+ version "2.38.5"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.5.tgz#be41ad4fe0c103a8794377afceb5f22b8f603d6a"
+ integrity sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==
+ optionalDependencies:
+ fsevents "~2.3.1"
+
rst-selector-parser@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"
@@ -29702,6 +29975,14 @@ scheduler@^0.19.1:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+scheduler@^0.20.1:
+ version "0.20.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
+ integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
schema-utils@2.7.1, schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.2.0, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0, schema-utils@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
@@ -33019,6 +33300,11 @@ typescript@^3.0.3, typescript@^3.8.3, typescript@^3.9.7:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==
+typescript@^4.1.2:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.4.tgz#f058636e2f4f83f94ddaae07b20fd5e14598432f"
+ integrity sha512-+Uru0t8qIRgjuCpiSPpfGuhHecMllk5Zsazj5LZvVsEStEjmIRRBZe+jHjGQvsgS7M1wONy2PQXd67EMyV6acg==
+
typescript@next:
version "4.2.0-dev.20210111"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.0-dev.20210111.tgz#99ca27c711ea2e5901f0b2f8dc1c8c1cd322fe12"
@@ -34110,6 +34396,30 @@ vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0:
remove-trailing-separator "^1.0.1"
replace-ext "^1.0.0"
+vite@2.0.0-beta.59:
+ version "2.0.0-beta.59"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.0-beta.59.tgz#e01a795aebedc0cb44d653c33b72ab7b831057ae"
+ integrity sha512-tlxEPFpVI1wV+vk+t/ypwBZfNmxKcorok8YF82MrQIqCDeRXnHvp33oWPIsRrO0V7UdnnlkKQOJJiIi3AIUFOA==
+ dependencies:
+ esbuild "^0.8.34"
+ postcss "^8.2.1"
+ resolve "^1.19.0"
+ rollup "^2.35.1"
+ optionalDependencies:
+ fsevents "~2.1.2"
+
+vite@^2.0.0-beta.65:
+ version "2.0.0-beta.67"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.0-beta.67.tgz#2d4e7a62a925539448bd18154008afb2b4484a07"
+ integrity sha512-QNxIRajidVG3ejikBUb17NgCV1bJ9UyKHBdItgw1O/ljQ1hBoph5I2/DrviqV4G9H3WP7teXk5vwQWuCVS9fqQ==
+ dependencies:
+ esbuild "^0.8.34"
+ postcss "^8.2.1"
+ resolve "^1.19.0"
+ rollup "^2.38.5"
+ optionalDependencies:
+ fsevents "~2.3.1"
+
vm-browserify@1.1.2, vm-browserify@^1.0.0, vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"