diff --git a/.circleci/config.yml b/.circleci/config.yml
index e8b94ac7364a..f00e9af4bfb8 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -63,7 +63,7 @@ windowsWorkflowFilters: &windows-workflow-filters
or:
- equal: [ develop, << pipeline.git.branch >> ]
- equal: [ linux-arm64, << pipeline.git.branch >> ]
- - equal: [ 'lmiller/fixing-windows-ci', << pipeline.git.branch >> ]
+ - equal: [ 'mikep/21720-ct-stack-traces', << pipeline.git.branch >> ]
- matches:
pattern: "-release$"
value: << pipeline.git.branch >>
diff --git a/npm/vite-dev-server/client/initCypressTests.js b/npm/vite-dev-server/client/initCypressTests.js
index 801a2820658c..4406c9ab636d 100644
--- a/npm/vite-dev-server/client/initCypressTests.js
+++ b/npm/vite-dev-server/client/initCypressTests.js
@@ -24,12 +24,22 @@ if (supportFile) {
// We need a slash before /cypress/supportFile.js, this happens by default
// with the current string replacement logic.
- importsToLoad.push(() => import(`${devServerPublicPathRoute}${supportRelativeToProjectRoot}`))
+ importsToLoad.push({
+ load: () => import(`${devServerPublicPathRoute}${supportRelativeToProjectRoot}`),
+ absolute: supportFile,
+ relative: supportRelativeToProjectRoot,
+ relativeUrl: `${devServerPublicPathRoute}${supportRelativeToProjectRoot}`,
+ })
}
/* Spec file import logic */
// We need a slash before /src/my-spec.js, this does not happen by default.
-importsToLoad.push(() => import(`${devServerPublicPathRoute}/${CypressInstance.spec.relative}`))
+importsToLoad.push({
+ load: () => import(`${devServerPublicPathRoute}/${CypressInstance.spec.relative}`),
+ absolute: CypressInstance.spec.absolute,
+ relative: CypressInstance.spec.relative,
+ relativeUrl: `${devServerPublicPathRoute}/${CypressInstance.spec.relative}`,
+})
if (!CypressInstance) {
throw new Error('Tests cannot run without a reference to Cypress!')
diff --git a/npm/vite-dev-server/cypress/e2e/react.cy.ts b/npm/vite-dev-server/cypress/e2e/react.cy.ts
index b753b4b9106d..e8104258124d 100644
--- a/npm/vite-dev-server/cypress/e2e/react.cy.ts
+++ b/npm/vite-dev-server/cypress/e2e/react.cy.ts
@@ -57,6 +57,7 @@ for (const project of VITE_REACT) {
cy.contains('MissingReactInSpec.cy.jsx').click()
cy.waitForSpecToFinish()
cy.get('.failed > .num').should('contain', 1)
+ cy.get('.test-err-code-frame').should('be.visible')
cy.withCtx(async (ctx) => {
await ctx.actions.file.writeFileInProject(`src/MissingReactInSpec.cy.jsx`,
await ctx.file.readFileInProject('src/App.cy.jsx'))
diff --git a/npm/vite-dev-server/src/plugins/cypress.ts b/npm/vite-dev-server/src/plugins/cypress.ts
index 50998131686b..c1edfe07a5de 100644
--- a/npm/vite-dev-server/src/plugins/cypress.ts
+++ b/npm/vite-dev-server/src/plugins/cypress.ts
@@ -105,6 +105,27 @@ export const Cypress = (
return res.end(transformedIndexHtml)
})
},
+ transform (code, id, options?) {
+ try {
+ if (/\.js$/i.test(id) && !/\/\/# sourceMappingURL=/i.test(code)) {
+ // The Vite dev server and plugins automatically transpile TS and JSX files, which results in sourcemaps being generated
+ // and included in output. However, Vite serves up `esnext`-compliant Javascript which means many JS files won't be
+ // transpiled and won't supply a sourcemap - this prevents Cypress from providing codeFrames in the event of an error.
+ //
+ // A sourcemap is generated by Vite for JS files (just not included) which is in effect an "identity" sourcemap mapping
+ // 1-to-1 to the output file. We can grab this and pass it along as a sourcemap we want Vite to embed into the output,
+ // giving Cypress a sourcemap to use for codeFrame lookups.
+ // @see https://rollupjs.org/guide/en/#thisgetcombinedsourcemap
+
+ return {
+ code,
+ map: this.getCombinedSourcemap(),
+ }
+ }
+ } catch (_err) {
+ debug('Failed to propagate sourcemap for %s: %o', id, _err)
+ }
+ },
handleHotUpdate: ({ server, file }) => {
debug('handleHotUpdate - file', file)
diff --git a/npm/webpack-dev-server/__snapshots__/makeWebpackConfig.spec.ts.js b/npm/webpack-dev-server/__snapshots__/makeWebpackConfig.spec.ts.js
index a146887ad44d..c3e2e6fa2662 100644
--- a/npm/webpack-dev-server/__snapshots__/makeWebpackConfig.spec.ts.js
+++ b/npm/webpack-dev-server/__snapshots__/makeWebpackConfig.spec.ts.js
@@ -10,17 +10,18 @@ exports['makeWebpackConfig ignores userland webpack `output.publicPath` and `dev
"overlay": false
}
},
- "mode": "development",
"optimization": {
"emitOnErrors": true,
"splitChunks": {
"chunks": "all"
}
},
+ "mode": "development",
"plugins": [
"HtmlWebpackPlugin",
"CypressCTWebpackPlugin"
- ]
+ ],
+ "devtool": "inline-source-map"
}
exports['makeWebpackConfig ignores userland webpack `output.publicPath` and `devServer.overlay` with webpack-dev-server v3 1'] = {
@@ -32,15 +33,16 @@ exports['makeWebpackConfig ignores userland webpack `output.publicPath` and `dev
"progress": true,
"overlay": false
},
- "mode": "development",
"optimization": {
"noEmitOnErrors": false,
"splitChunks": {
"chunks": "all"
}
},
+ "mode": "development",
"plugins": [
"HtmlWebpackPlugin",
"CypressCTWebpackPlugin"
- ]
+ ],
+ "devtool": "inline-source-map"
}
diff --git a/npm/webpack-dev-server/cypress/e2e/angular.cy.ts b/npm/webpack-dev-server/cypress/e2e/angular.cy.ts
index 88eb209e1d12..cd45d7c10961 100644
--- a/npm/webpack-dev-server/cypress/e2e/angular.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/angular.cy.ts
@@ -73,6 +73,7 @@ for (const project of WEBPACK_REACT) {
// The test should fail and the stack trace should appear in the command log
cy.waitForSpecToFinish({ failCount: 1 })
cy.contains('The following error originated from your test code, not from Cypress.').should('exist')
+ cy.get('.test-err-code-frame').should('be.visible')
})
// TODO: fix flaky test https://github.com/cypress-io/cypress/issues/23455
diff --git a/npm/webpack-dev-server/cypress/e2e/create-react-app.cy.ts b/npm/webpack-dev-server/cypress/e2e/create-react-app.cy.ts
index 82eff74db9d5..39697b10dbb5 100644
--- a/npm/webpack-dev-server/cypress/e2e/create-react-app.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/create-react-app.cy.ts
@@ -38,6 +38,7 @@ for (const project of WEBPACK_REACT) {
})
cy.waitForSpecToFinish({ failCount: 1 })
+ cy.get('.test-err-code-frame').should('be.visible')
cy.withCtx(async (ctx) => {
await ctx.actions.file.writeFileInProject(
diff --git a/npm/webpack-dev-server/cypress/e2e/next.cy.ts b/npm/webpack-dev-server/cypress/e2e/next.cy.ts
index 7a118c622923..c0c7133425be 100644
--- a/npm/webpack-dev-server/cypress/e2e/next.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/next.cy.ts
@@ -40,6 +40,7 @@ for (const project of WEBPACK_REACT) {
})
cy.waitForSpecToFinish({ failCount: 1 })
+ cy.get('.test-err-code-frame').should('be.visible')
cy.withCtx(async (ctx) => {
const indexTestPath = ctx.path.join('pages', 'index.cy.js')
diff --git a/npm/webpack-dev-server/cypress/e2e/nuxt.cy.ts b/npm/webpack-dev-server/cypress/e2e/nuxt.cy.ts
index 287b7d3351e9..c7797af925e2 100644
--- a/npm/webpack-dev-server/cypress/e2e/nuxt.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/nuxt.cy.ts
@@ -35,6 +35,7 @@ for (const project of PROJECTS) {
})
cy.waitForSpecToFinish({ failCount: 1 })
+ cy.get('.test-err-code-frame').should('be.visible')
cy.withCtx(async (ctx) => {
const tutorialCyPath = ctx.path.join('components', 'Tutorial.cy.js')
diff --git a/npm/webpack-dev-server/cypress/e2e/react.cy.ts b/npm/webpack-dev-server/cypress/e2e/react.cy.ts
index 93cb7e72e620..154c9053067d 100644
--- a/npm/webpack-dev-server/cypress/e2e/react.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/react.cy.ts
@@ -24,8 +24,7 @@ for (const project of WEBPACK_REACT) {
it('should mount a passing test', () => {
cy.visitApp()
cy.contains('App.cy.jsx').click()
- cy.waitForSpecToFinish()
- cy.get('.passed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ passCount: 1 })
})
it('MissingReact: should fail, rerun, succeed', () => {
@@ -36,15 +35,15 @@ for (const project of WEBPACK_REACT) {
cy.visitApp()
cy.contains('MissingReact.cy.jsx').click()
- cy.waitForSpecToFinish()
- cy.get('.failed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ failCount: 1 })
+ cy.get('.test-err-code-frame').should('be.visible')
cy.withCtx(async (ctx) => {
await ctx.actions.file.writeFileInProject(`src/MissingReact.jsx`,
`import React from 'react';
${await ctx.file.readFileInProject('src/MissingReact.jsx')}`)
})
- cy.get('.passed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ passCount: 1 })
})
it('MissingReactInSpec: should fail, rerun, succeed', () => {
@@ -55,14 +54,14 @@ for (const project of WEBPACK_REACT) {
cy.visitApp()
cy.contains('MissingReactInSpec.cy.jsx').click()
- cy.waitForSpecToFinish()
- cy.get('.failed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ failCount: 1 })
+ cy.get('.test-err-code-frame').should('be.visible')
cy.withCtx(async (ctx) => {
await ctx.actions.file.writeFileInProject(`src/MissingReactInSpec.cy.jsx`,
await ctx.file.readFileInProject('src/App.cy.jsx'))
})
- cy.get('.passed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ passCount: 1 })
})
it('AppCompilationError: should fail with uncaught exception error', () => {
@@ -73,8 +72,7 @@ for (const project of WEBPACK_REACT) {
cy.visitApp()
cy.contains('AppCompilationError.cy.jsx').click()
- cy.waitForSpecToFinish()
- cy.get('.failed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ failCount: 1 })
cy.contains('An uncaught error was detected outside of a test')
cy.contains('The following error originated from your test code, not from Cypress.')
@@ -86,8 +84,7 @@ for (const project of WEBPACK_REACT) {
)
})
- cy.waitForSpecToFinish()
- cy.get('.passed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ passCount: 1 })
const appCompilationErrorSpec = dedent`
import React from 'react'
@@ -109,8 +106,7 @@ for (const project of WEBPACK_REACT) {
)
}, { appCompilationErrorSpec })
- cy.waitForSpecToFinish()
- cy.get('.failed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ failCount: 1 })
cy.contains('An uncaught error was detected outside of a test')
cy.contains('The following error originated from your test code, not from Cypress.')
})
@@ -121,7 +117,7 @@ for (const project of WEBPACK_REACT) {
// 1. assert spec executes successfully
cy.contains('App.cy.jsx').click()
- cy.get('.passed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ passCount: 1 })
// 2. remove file from file system
cy.withCtx(async (ctx) => {
@@ -143,7 +139,7 @@ for (const project of WEBPACK_REACT) {
})
// 5. assert recreated spec executes successfully
- cy.get('.passed > .num').should('contain', 1)
+ cy.waitForSpecToFinish({ passCount: 1 })
})
})
}
diff --git a/npm/webpack-dev-server/cypress/e2e/vue-cli.cy.ts b/npm/webpack-dev-server/cypress/e2e/vue-cli.cy.ts
index 52436be97ad0..312ec87c9c7d 100644
--- a/npm/webpack-dev-server/cypress/e2e/vue-cli.cy.ts
+++ b/npm/webpack-dev-server/cypress/e2e/vue-cli.cy.ts
@@ -28,6 +28,36 @@ for (const project of PROJECTS) {
})
})
+ it('should live-reload on src changes', () => {
+ cy.visitApp()
+
+ cy.contains('HelloWorld.cy.js').click()
+ cy.waitForSpecToFinish({ passCount: 1 })
+
+ cy.withCtx(async (ctx) => {
+ const helloWorldVuePath = ctx.path.join('src', 'components', 'HelloWorld.vue')
+
+ await ctx.actions.file.writeFileInProject(
+ helloWorldVuePath,
+ (await ctx.file.readFileInProject(helloWorldVuePath)).replace('{{ msg }}', ''),
+ )
+ })
+
+ cy.waitForSpecToFinish({ failCount: 1 })
+ cy.get('.test-err-code-frame').should('be.visible')
+
+ cy.withCtx(async (ctx) => {
+ const helloWorldVuePath = ctx.path.join('src', 'components', 'HelloWorld.vue')
+
+ await ctx.actions.file.writeFileInProject(
+ helloWorldVuePath,
+ (await ctx.file.readFileInProject(helloWorldVuePath)).replace('
', '{{ msg }}
'),
+ )
+ })
+
+ cy.waitForSpecToFinish({ passCount: 1 })
+ })
+
it('should show compilation errors on src changes', () => {
cy.visitApp()
diff --git a/npm/webpack-dev-server/src/helpers/angularHandler.ts b/npm/webpack-dev-server/src/helpers/angularHandler.ts
index 0daa2d355d7f..3a0f96360b25 100644
--- a/npm/webpack-dev-server/src/helpers/angularHandler.ts
+++ b/npm/webpack-dev-server/src/helpers/angularHandler.ts
@@ -2,6 +2,7 @@ import * as fs from 'fs-extra'
import { tmpdir } from 'os'
import * as path from 'path'
import { pathToFileURL } from 'url'
+import type { Configuration } from 'webpack'
import type { PresetHandlerResult, WebpackDevServerConfig } from '../devServer'
import { sourceDefaultWebpackDependencies } from './sourceRelativeWebpackModules'
@@ -253,8 +254,16 @@ async function getAngularCliWebpackConfig (devServerConfig: AngularWebpackDevSer
return config
}
+function removeSourceMapPlugin (config: Configuration) {
+ config.plugins = config.plugins?.filter((plugin) => {
+ return plugin?.constructor?.name !== 'SourceMapDevToolPlugin'
+ })
+}
+
export async function angularHandler (devServerConfig: AngularWebpackDevServerConfig): Promise {
const webpackConfig = await getAngularCliWebpackConfig(devServerConfig)
+ removeSourceMapPlugin(webpackConfig)
+
return { frameworkConfig: webpackConfig, sourceWebpackModulesResult: sourceDefaultWebpackDependencies(devServerConfig) }
}
diff --git a/npm/webpack-dev-server/src/loader.ts b/npm/webpack-dev-server/src/loader.ts
index 5a330cf62642..171accbc3d0e 100644
--- a/npm/webpack-dev-server/src/loader.ts
+++ b/npm/webpack-dev-server/src/loader.ts
@@ -20,7 +20,9 @@ const makeImport = (file: Cypress.Cypress['spec'], filename: string, chunkName:
return `"${filename}": {
shouldLoad: () => document.location.pathname.includes("${encodeURI(file.absolute)}"),
load: () => import("${file.absolute}" ${magicComments}),
- chunkName: "${chunkName}",
+ absolute: "${file.absolute.split(path.sep).join(path.posix.sep)}",
+ relative: "${file.relative.split(path.sep).join(path.posix.sep)}",
+ relativeUrl: "/__cypress/src/${chunkName}.js",
}`
}
@@ -60,9 +62,8 @@ export default function loader (this: unknown) {
const { files, projectRoot, supportFile } = ctx._cypress
const supportFileAbsolutePath = supportFile ? JSON.stringify(path.resolve(projectRoot, supportFile)) : undefined
-
- return `
- var loadSupportFile = ${supportFile ? `() => import(${supportFileAbsolutePath})` : `() => Promise.resolve()`}
+ const supportFileRelativePath = supportFile ? JSON.stringify(path.relative(projectRoot, supportFileAbsolutePath || '')) : undefined
+ const result = `
var allTheSpecs = ${buildSpecs(projectRoot, files)};
var { init } = require(${JSON.stringify(require.resolve('./aut-runner'))})
@@ -70,11 +71,23 @@ export default function loader (this: unknown) {
var scriptLoaders = Object.values(allTheSpecs).reduce(
(accSpecLoaders, specLoader) => {
if (specLoader.shouldLoad()) {
- accSpecLoaders.push(specLoader.load)
+ accSpecLoaders.push(specLoader)
}
return accSpecLoaders
- }, [loadSupportFile])
+ }, [])
+
+ if (${!!supportFile}) {
+ var supportFile = {
+ absolute: ${supportFileAbsolutePath},
+ relative: ${supportFileRelativePath},
+ relativeUrl: "/__cypress/src/cypress-support-file.js",
+ load: () => import(${supportFileAbsolutePath} /* webpackChunkName: "cypress-support-file" */),
+ }
+ scriptLoaders.unshift(supportFile)
+ }
init(scriptLoaders)
`
+
+ return result
}
diff --git a/npm/webpack-dev-server/src/makeDefaultWebpackConfig.ts b/npm/webpack-dev-server/src/makeDefaultWebpackConfig.ts
index 8a5f53692e7f..20f745eb164f 100644
--- a/npm/webpack-dev-server/src/makeDefaultWebpackConfig.ts
+++ b/npm/webpack-dev-server/src/makeDefaultWebpackConfig.ts
@@ -51,6 +51,7 @@ export function makeDefaultWebpackConfig (
...(config.devServerConfig.framework === 'angular' ? { scriptLoading: 'module' } : {}),
}),
],
+ devtool: 'inline-source-map',
} as any
if (config.sourceWebpackModulesResult.webpackDevServer.majorVersion === 4) {
diff --git a/npm/webpack-dev-server/src/makeWebpackConfig.ts b/npm/webpack-dev-server/src/makeWebpackConfig.ts
index 7bdb954fdf0f..e7b1f3e98329 100644
--- a/npm/webpack-dev-server/src/makeWebpackConfig.ts
+++ b/npm/webpack-dev-server/src/makeWebpackConfig.ts
@@ -166,6 +166,11 @@ export async function makeWebpackConfig (
dynamicWebpackConfig,
)
+ // Some frameworks (like Next.js) change this value which changes the path we would need to use to fetch our spec.
+ // (eg, http://localhost:xxxx//static/chunks/spec-.js). Deleting this key to normalize
+ // the spec URL to `*/spec-.js` which we need to know up-front so we can fetch the sourcemaps.
+ delete mergedConfig.output?.chunkFilename
+
// Angular loads global styles and polyfills via script injection in the index.html
if (framework === 'angular') {
mergedConfig.entry = {
diff --git a/npm/webpack-dev-server/test/makeWebpackConfig.spec.ts b/npm/webpack-dev-server/test/makeWebpackConfig.spec.ts
index 0afab14ee84c..253065c61c60 100644
--- a/npm/webpack-dev-server/test/makeWebpackConfig.spec.ts
+++ b/npm/webpack-dev-server/test/makeWebpackConfig.spec.ts
@@ -31,6 +31,7 @@ describe('makeWebpackConfig', () => {
optimization: {
noEmitOnErrors: true, // This will be overridden by makeWebpackConfig.ts
},
+ devtool: 'eval', // This will be overridden by makeWebpackConfig.ts
},
devServerEvents: new EventEmitter(),
}
@@ -77,6 +78,7 @@ describe('makeWebpackConfig', () => {
optimization: {
emitOnErrors: false, // This will be overridden by makeWebpackConfig.ts
},
+ devtool: 'eval', // This will be overridden by makeWebpackConfig.ts
},
devServerEvents: new EventEmitter(),
}
diff --git a/packages/app/cypress.config.ts b/packages/app/cypress.config.ts
index 886052349589..be4da0e28fa8 100644
--- a/packages/app/cypress.config.ts
+++ b/packages/app/cypress.config.ts
@@ -48,6 +48,7 @@ export default defineConfig({
// Delete this as we only want to honor it on parent Cypress when doing E2E Cypress in Cypress testing
delete process.env.HTTP_PROXY_TARGET_FOR_ORIGIN_REQUESTS
process.env.CYPRESS_INTERNAL_E2E_TESTING_SELF = 'true'
+ process.env.CYPRESS_INTERNAL_VITE_OPEN_MODE_TESTING = 'true'
// process.env.DEBUG = '*'
const { e2ePluginSetup } = require('@packages/frontend-shared/cypress/e2e/e2ePluginSetup')
diff --git a/packages/app/cypress/e2e/create-from-component.cy.ts b/packages/app/cypress/e2e/create-from-component.cy.ts
index 5216f35ce907..b38809f9be53 100644
--- a/packages/app/cypress/e2e/create-from-component.cy.ts
+++ b/packages/app/cypress/e2e/create-from-component.cy.ts
@@ -82,7 +82,7 @@ function validateCreateFromComponentCard (beforeEachFn: () => void, expectedSpec
.should('have.attr', 'href', `#/specs/runner?file=${expectedSpecPath}`).click()
})
- cy.findByText('').should('be.visible')
+ cy.findByText('', { timeout: 10000 }).should('be.visible')
})
}
diff --git a/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts b/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts
new file mode 100644
index 000000000000..360cb0818a92
--- /dev/null
+++ b/packages/app/cypress/e2e/runner/ct-framework-errors.cy.ts
@@ -0,0 +1,397 @@
+import type { ProjectFixtureDir } from '@tooling/system-tests/'
+import { createVerify } from './support/verify-failures'
+
+type VerifyFunc = (specTitle: string, verifyOptions: any) => void
+
+type Options = {
+ projectName: ProjectFixtureDir
+ configFile: string
+ filePath: string
+ failCount: number
+ passCount?: number
+}
+
+Cypress.on('uncaught:exception', () => false)
+
+/**
+ * Navigates to desired error spec file within Cypress app and waits for completion.
+ * Returns scoped verify function to aid inner spec validation.
+ */
+function loadErrorSpec (options: Options): VerifyFunc {
+ const { projectName, filePath, failCount, passCount = '--', configFile } = options
+
+ cy.openProject(projectName, ['--config-file', configFile])
+ cy.startAppServer('component')
+ cy.visitApp(`specs/runner?file=${filePath}`)
+
+ cy.findByLabelText('Stats', { timeout: 30000 }).within(() => {
+ cy.get('.passed .num', { timeout: 30000 }).should('have.text', `${passCount}`)
+ cy.get('.failed .num', { timeout: 30000 }).should('have.text', `${failCount}`)
+ })
+
+ // Return scoped verify function with spec options baked in
+ return createVerify({ fileName: Cypress._.last(filePath.split('/')), hasPreferredIde: false, mode: 'component' })
+}
+
+const reactVersions = [17, 18] as const
+
+reactVersions.forEach((reactVersion) => {
+ describe(`React ${reactVersion}`, {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+ }, () => {
+ beforeEach(() => {
+ cy.scaffoldProject(`react${reactVersion}`)
+ })
+
+ it('error conditions', () => {
+ const verify = loadErrorSpec({
+ projectName: `react${reactVersion}`,
+ configFile: 'cypress-vite.config.ts',
+ filePath: 'src/Errors.cy.jsx',
+ failCount: 4,
+ })
+
+ verify('error on mount', {
+ line: 6,
+ column: 33,
+ uncaught: true,
+ uncaughtMessage: 'mount error',
+ message: [
+ 'The following error originated from your test code',
+ 'mount error',
+ ],
+ codeFrameText: 'Errors.cy.jsx',
+ })
+
+ verify('sync error', {
+ line: 11,
+ column: 34,
+ uncaught: true,
+ uncaughtMessage: 'sync error',
+ message: [
+ 'The following error originated from your test code',
+ 'sync error',
+ ],
+ codeFrameText: 'Errors.cy.jsx',
+ })
+
+ verify('async error', {
+ line: 18,
+ column: 38,
+ uncaught: true,
+ uncaughtMessage: 'async error',
+ message: [
+ 'The following error originated from your test code',
+ 'async error',
+ ],
+ codeFrameText: 'Errors.cy.jsx',
+ })
+
+ verify('command failure', {
+ line: 43,
+ column: 8,
+ command: 'get',
+ message: [
+ 'Timed out retrying',
+ 'element-that-does-not-exist',
+ ],
+ })
+ })
+ })
+})
+
+describe('Next.js', {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+}, () => {
+ beforeEach(() => {
+ cy.scaffoldProject('next-12')
+ })
+
+ it('error conditions', () => {
+ const verify = loadErrorSpec({
+ projectName: 'next-12',
+ configFile: 'cypress.config.js',
+ filePath: 'cypress/Errors.cy.jsx',
+ failCount: 4,
+ })
+
+ verify('error on mount', {
+ line: 7,
+ column: 33,
+ uncaught: true,
+ uncaughtMessage: 'mount error',
+ message: [
+ 'The following error originated from your test code',
+ 'mount error',
+ ],
+ codeFrameText: 'Errors.cy.jsx',
+ })
+
+ verify('sync error', {
+ line: 12,
+ column: 34,
+ uncaught: true,
+ uncaughtMessage: 'sync error',
+ message: [
+ 'The following error originated from your test code',
+ 'sync error',
+ ],
+ codeFrameText: 'Errors.cy.jsx',
+ })
+
+ verify('async error', {
+ line: 19,
+ column: 38,
+ uncaught: true,
+ uncaughtMessage: 'async error',
+ message: [
+ 'The following error originated from your test code',
+ 'async error',
+ ],
+ codeFrameText: 'Errors.cy.jsx',
+ })
+
+ verify('command failure', {
+ line: 44,
+ column: 8,
+ command: 'get',
+ message: [
+ 'Timed out retrying',
+ 'element-that-does-not-exist',
+ ],
+ })
+ })
+})
+
+describe('Vue', {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+}, () => {
+ beforeEach(() => {
+ cy.scaffoldProject('vuecli5-vue3')
+ })
+
+ it('error conditions', () => {
+ const verify = loadErrorSpec({
+ projectName: 'vuecli5-vue3',
+ configFile: 'cypress.config.ts',
+ filePath: 'src/components/Errors.cy.js',
+ failCount: 4,
+ })
+
+ verify('error on mount', {
+ fileName: 'Errors.vue',
+ line: 19,
+ column: 16,
+ message: [
+ 'mount error',
+ ],
+ codeFrameText: 'Errors.vue',
+ })
+
+ verify('sync error', {
+ fileName: 'Errors.vue',
+ line: 24,
+ column: 16,
+ uncaught: true,
+ uncaughtMessage: 'sync error',
+ message: [
+ 'The following error originated from your test code',
+ 'sync error',
+ ],
+ codeFrameText: 'Errors.vue',
+ })
+
+ verify('async error', {
+ fileName: 'Errors.vue',
+ line: 28,
+ column: 18,
+ uncaught: true,
+ uncaughtMessage: 'async error',
+ message: [
+ 'The following error originated from your test code',
+ 'async error',
+ ],
+ codeFrameText: 'Errors.vue',
+ })
+
+ verify('command failure', {
+ command: 'get',
+ message: [
+ 'Timed out retrying',
+ 'element-that-does-not-exist',
+ ],
+ codeFrameRegex: /Errors\.cy\.js:26/,
+ stackRegex: /Errors\.cy\.js:26/,
+ })
+ })
+})
+
+describe('Nuxt', {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+}, () => {
+ beforeEach(() => {
+ cy.scaffoldProject('nuxtjs-vue2-configured')
+ })
+
+ it('error conditions', () => {
+ const verify = loadErrorSpec({
+ projectName: 'nuxtjs-vue2-configured',
+ configFile: 'cypress.config.js',
+ filePath: 'components/Errors.cy.js',
+ failCount: 3,
+ })
+
+ verify('error on mount', {
+ fileName: 'Errors.vue',
+ line: 19,
+ message: [
+ 'mount error',
+ ],
+ stackRegex: /Errors\.vue:19/,
+ codeFrameText: 'Errors.vue',
+ })
+
+ verify('async error', {
+ fileName: 'Errors.vue',
+ line: 28,
+ uncaught: true,
+ uncaughtMessage: 'async error',
+ message: [
+ 'The following error originated from your test code',
+ 'async error',
+ ],
+ stackRegex: /Errors\.vue:28/,
+ codeFrameText: 'Errors.vue',
+ })
+
+ verify('command failure', {
+ command: 'get',
+ message: [
+ 'Timed out retrying',
+ 'element-that-does-not-exist',
+ ],
+ codeFrameRegex: /Errors\.cy\.js:26/,
+ stackRegex: /Errors\.cy\.js:26/,
+ })
+ })
+})
+
+// TODO: Svelte sourcemaps are generated but are not working properly on Webpack or Vite
+// https://github.com/cypress-io/cypress/issues/23918
+describe.skip('Svelte', {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+}, () => {
+ beforeEach(() => {
+ cy.scaffoldProject('svelte-webpack')
+ })
+
+ it('error conditions', () => {
+ const verify = loadErrorSpec({
+ projectName: 'svelte-webpack',
+ configFile: 'cypress.config.js',
+ filePath: 'src/errors.cy.js',
+ failCount: 4,
+ })
+
+ verify('error on mount', {
+ message: [
+ 'mount error',
+ ],
+ hasCodeFrame: false,
+ codeFrameRegex: /spec-1.js:70:9/,
+ stackRegex: /spec-1.js:70:9/,
+ })
+
+ verify('sync error', {
+ // fileName: 'Errors.vue',
+ line: 24,
+ column: 16,
+ uncaught: true,
+ message: [
+ 'The following error originated from your test code',
+ 'sync error',
+ ],
+ })
+
+ verify('async error', {
+ // fileName: 'Errors.vue',
+ line: 28,
+ column: 18,
+ uncaught: true,
+ message: [
+ 'The following error originated from your test code',
+ 'async error',
+ ],
+ // codeFrameText: 'Errors.vue',
+ })
+
+ verify('command failure', {
+ command: 'get',
+ message: [
+ 'Timed out retrying',
+ 'element-that-does-not-exist',
+ ],
+ codeFrameRegex: /errors\.cy\.js:26/,
+ stackRegex: /errors\.cy\.js:26/,
+ })
+ })
+})
+
+const angularVersions = [13, 14] as const
+
+angularVersions.forEach((angularVersion) => {
+ describe(`Angular ${angularVersion}`, {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+ }, () => {
+ beforeEach(() => {
+ cy.scaffoldProject(`angular-${angularVersion}`)
+ })
+
+ it('error conditions', () => {
+ const verify = loadErrorSpec({
+ projectName: `angular-${angularVersion}`,
+ configFile: 'cypress.config.ts',
+ filePath: 'src/app/errors.cy.ts',
+ failCount: 1,
+ })
+
+ // Angular uses ZoneJS which encapsulates errors thrown by components
+ // Thus, the mount, sync, and async error case errors will not propagate to Cypress
+ // and thus won't fail the tests
+
+ verify('command failure', {
+ line: 21,
+ column: 8,
+ command: 'get',
+ message: [
+ 'Timed out retrying',
+ 'element-that-does-not-exist',
+ ],
+ })
+ })
+ })
+})
diff --git a/packages/app/cypress/e2e/runner/reporter-ct-generator.ts b/packages/app/cypress/e2e/runner/reporter-ct-generator.ts
new file mode 100644
index 000000000000..ccd75da87b94
--- /dev/null
+++ b/packages/app/cypress/e2e/runner/reporter-ct-generator.ts
@@ -0,0 +1,704 @@
+import * as specLoader from './support/spec-loader'
+import { createVerify, verifyInternalFailure } from './support/verify-failures'
+
+type VerifyFunc = (specTitle: string, verifyOptions: any) => void
+
+/**
+ * Navigates to desired error spec file within Cypress app and waits for completion.
+ * Returns scoped verify function to aid inner spec validation.
+ */
+function loadErrorSpec (options: specLoader.LoadSpecOptions, configFile: string): VerifyFunc {
+ const DefaultOptions: Partial = {
+ projectName: 'runner-ct-specs',
+ mode: 'component',
+ configFile,
+ }
+
+ const effectiveOptions = {
+ ...DefaultOptions,
+ ...options,
+ }
+
+ const {
+ filePath,
+ hasPreferredIde = false,
+ mode,
+ } = effectiveOptions
+
+ specLoader.loadSpec(effectiveOptions)
+
+ // Return scoped verify function with spec options baked in
+ return createVerify({ fileName: Cypress._.last(filePath.split('/')), hasPreferredIde, mode })
+}
+
+/**
+ * Generate CT error reporting specs for a given dev server - have to structure this way to avoid
+ * Out of Memory issues if they're all contained in a single spec
+ *
+ * @param server 'Vite' | 'Webpack'
+ * @param configFile config file
+ */
+export const generateCtErrorTests = (server: 'Webpack' | 'Vite', configFile: string) => {
+ describe(`${server} - errors ui`, {
+ viewportHeight: 768,
+ viewportWidth: 1024,
+ // Limiting tests kept in memory due to large memory cost
+ // of nested spec snapshots
+ numTestsKeptInMemory: 1,
+ }, () => {
+ it('assertion failures', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/assertions.cy.js',
+ hasPreferredIde: true,
+ failCount: 3,
+ }, configFile)
+
+ verify('with expect().', {
+ line: 3,
+ column: [25, 26],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('with assert()', {
+ line: 7,
+ column: [5, 6, 12], // [chrome, firefox]
+ message: `should be true`,
+ })
+
+ verify('with assert.()', {
+ line: 11,
+ column: [12, 13],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+ })
+
+ it('assertion failures - no preferred IDE', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/assertions.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('with expect().', {
+ column: [25, 26],
+ message: `expected 'actual' to equal 'expected'`,
+ codeFrameText: 'with expect().',
+ })
+ })
+
+ // Vite does not provide the `require` syntax used by this test
+ if (server === 'Webpack') {
+ it('exception failures', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/exceptions.cy.js',
+ failCount: 2,
+ }, configFile)
+
+ verify('in spec file', {
+ column: 10,
+ message: 'bar is not a function',
+ })
+
+ verify('in file outside project', {
+ message: 'An outside error',
+ stackRegex: /\/throws\-error\.js:5:8/,
+ codeFrameRegex: /\/throws\-error\.js:5:9/,
+ codeFrameText: `thrownewError('An outside error')`,
+ })
+ })
+ }
+
+ it('hooks', { viewportHeight: 900 }, () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/hooks.cy.js',
+ failCount: 1,
+ }, configFile)
+
+ // https://github.com/cypress-io/cypress/issues/8214
+ // https://github.com/cypress-io/cypress/issues/8288
+ // https://github.com/cypress-io/cypress/issues/8350
+ verify('test', {
+ column: [7, 8, 18], // [chrome, firefox]
+ codeFrameText: 'beforeEach(()=>',
+ message: `Cypress detected you registered a(n) beforeEach hook while a test was running`,
+ })
+ })
+
+ it('commands', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/commands.cy.js',
+ failCount: 2,
+ }, configFile)
+
+ verify('failure', {
+ column: [8, 9],
+ message: 'Timed out retrying after 0ms: Expected to find element: #does-not-exist, but never found it',
+ })
+
+ verify('chained failure', {
+ column: [20, 21],
+ message: 'Timed out retrying after 0ms: Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.then', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/then.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('command failure', {
+ column: [10, 11],
+ message: 'Timed out retrying after 0ms: Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.should', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/should.cy.js',
+ failCount: 8,
+ }, configFile)
+
+ verify('callback assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('callback exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('standard assertion failure', {
+ column: [6, 7],
+ message: 'Timed out retrying after 0ms: expected {} to have property \'foo\'',
+ })
+
+ verify('after multiple', {
+ column: [6, 7],
+ message: 'Timed out retrying after 0ms: expected \'foo\' to equal \'bar\'',
+ })
+
+ verify('after multiple callbacks exception', {
+ column: [12, 13],
+ codeFrameText: '({}).bar()',
+ message: 'bar is not a function',
+ })
+
+ verify('after multiple callbacks assertion failure', {
+ column: [27, 28],
+ codeFrameText: '.should(()=>',
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('after callback success assertion failure', {
+ column: [6, 7],
+ codeFrameText: '.should(\'have.property',
+ message: `expected {} to have property 'foo'`,
+ })
+
+ verify('command failure after success', {
+ column: [8, 9],
+ message: 'Timed out retrying after 0ms: Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.each', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/each.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('command failure', {
+ column: [10, 11],
+ message: 'Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.spread', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/spread.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('command failure', {
+ column: [10, 11],
+ message: 'Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.within', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/within.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('command failure', {
+ column: [10, 11],
+ message: 'Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.wrap', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/wrap.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('command failure', {
+ column: [10, 11],
+ message: 'Expected to find element: #does-not-exist, but never found it',
+ })
+ })
+
+ it('cy.intercept', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/intercept.cy.ts',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure in request callback', {
+ column: 22,
+ message: [
+ `expected 'a' to equal 'b'`,
+ ],
+ notInMessage: [
+ 'The following error originated from your spec code',
+ ],
+ })
+
+ verify('assertion failure in response callback', {
+ column: 24,
+ codeFrameText: '.reply(()=>{',
+ message: [
+ `expected 'b' to equal 'c'`,
+ ],
+ notInMessage: [
+ 'The following error originated from your spec code',
+ ],
+ })
+
+ verify('fails when erroneous response is received while awaiting response', {
+ column: 6,
+ // TODO: determine why code frame output is different in run/open mode
+ // this fails the active test because it's an asynchronous
+ // response failure from the network
+ // codeFrameText: '.wait(1000)',
+ hasCodeFrame: false,
+ message: [
+ 'A callback was provided to intercept the upstream response, but a network error occurred while making the request',
+ ],
+ notInMessage: [
+ 'The following error originated from your spec code',
+ ],
+ })
+ })
+
+ it('cy.readFile', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/readfile.cy.js',
+ failCount: 1,
+ }, configFile)
+
+ verify('existence failure', {
+ column: [8, 9],
+ message: 'failed because the file does not exist',
+ })
+ })
+
+ it('validation errors', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/validation.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('from cypress', {
+ column: [8, 9],
+ message: 'can only accept a string preset or',
+ stack: ['throwErrBadArgs', 'From Your Spec Code:'],
+ })
+
+ verify('from chai expect', {
+ column: [5, 6, 12], // [chrome, firefox]
+ message: 'Invalid Chai property: nope',
+ stack: ['proxyGetter', 'From Your Spec Code:'],
+ })
+
+ verify('from chai assert', {
+ column: [12, 13],
+ message: 'object tested must be an array',
+ })
+ })
+
+ it('event handlers', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/events.cy.js',
+ failCount: 4,
+ }, configFile)
+
+ verify('event assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('event exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+
+ verify('fail handler assertion failure', {
+ column: [27, 28],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('fail handler exception', {
+ column: [12, 13],
+ message: 'bar is not a function',
+ })
+ })
+
+ it('custom commands', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/custom_commands.cy.js',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [23, 24],
+ message: `expected 'actual' to equal 'expected'`,
+ codeFrameText: `add('failAssertion'`,
+ })
+
+ verify('exception', {
+ column: [8, 9],
+ message: 'bar is not a function',
+ codeFrameText: `add('failException'`,
+ })
+
+ verify('command failure', {
+ column: [6, 7],
+ message: 'Timed out retrying after 0ms: Expected to find element: #does-not-exist, but never found it',
+ codeFrameText: `add('failCommand'`,
+ })
+ })
+
+ it('typescript', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/typescript.cy.ts',
+ failCount: 3,
+ }, configFile)
+
+ verify('assertion failure', {
+ column: [25, 26],
+ message: `expected 'actual' to equal 'expected'`,
+ })
+
+ verify('exception', {
+ column: [10, 11],
+ message: 'bar is not a function',
+ })
+
+ verify('command failure', {
+ column: [8, 9],
+ message: 'Timed out retrying after 0ms: Expected to find element: #does-not-exist, but never found it',
+ codeFrameText: `.get('#does-not-exist')`,
+ })
+ })
+
+ context('docs url', () => {
+ before(() => {
+ // docs_url.cy.js manually sets the 'isInteractive' config property in order
+ // to test both run and open mode behavior. We need to skip the config validation
+ // here in order for this to be possible.
+ // @ts-ignore
+ window.top.__cySkipValidateConfig = true
+ })
+
+ after(() => {
+ // @ts-ignore
+ window.top.__cySkipValidateConfig = false
+ })
+
+ it('docs url validation', { retries: 1 }, () => {
+ const docsUrl = 'https://on.cypress.io/viewport'
+
+ const verify = loadErrorSpec({
+ filePath: 'errors/docs_url.cy.js',
+ failCount: 2,
+ }, configFile)
+
+ verify('displays as link in interactive mode', {
+ verifyFn () {
+ cy.contains('.runnable-title', 'displays as link in interactive mode')
+ .closest('.runnable').within(() => {
+ cy
+ .get('.runnable-err-message')
+ .should('not.contain', docsUrl)
+ .contains('Learn more')
+ .should('have.attr', 'href', docsUrl)
+ })
+ },
+ })
+
+ verify('is text in error message in run mode', {
+ verifyFn () {
+ cy.contains('.runnable-title', 'is text in error message in run mode')
+ .closest('.runnable').within(() => {
+ cy
+ .get('.runnable-err-message')
+ .should('contain', docsUrl)
+ .contains('Learn more')
+ .should('not.exist')
+ })
+ },
+ })
+ })
+ })
+
+ // cases where there is a bug in Cypress and we should show cypress internals
+ // instead of the invocation stack. we test this by monkey-patching internal
+ // methods to make them throw an error
+ it('unexpected errors', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/unexpected.cy.js',
+ failCount: 2,
+ }, configFile)
+
+ verify('Cypress method error', {
+ verifyFn: verifyInternalFailure,
+ method: 'Cypress.LocalStorage.clear',
+ })
+
+ verify('internal cy error', {
+ verifyFn: verifyInternalFailure,
+ method: 'cy.expect',
+ })
+ })
+ })
+}
+
+export const generateCtUncaughtErrorTests = (server: 'Webpack' | 'Vite', configFile: string) => {
+ it('uncaught errors', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/uncaught-ct.cy.js',
+ failCount: 11,
+ }, configFile)
+
+ verify('sync app mount exception', {
+ uncaught: true,
+ originalMessage: 'mount error',
+ message: [
+ 'The following error originated from your test code',
+ ],
+ notInMessage: [
+ 'It was caused by an unhandled promise rejection',
+ ],
+ regex: /src\/Errors.jsx/,
+ hasCodeFrame: false,
+ })
+
+ verify('sync app exception after mount', {
+ uncaught: true,
+ originalMessage: 'sync error',
+ message: [
+ 'The following error originated from your test code',
+ ],
+ notInMessage: [
+ 'It was caused by an unhandled promise rejection',
+ ],
+ regex: /src\/Errors.jsx/,
+ hasCodeFrame: false,
+ })
+
+ verify('exception inside uncaught:exception', {
+ uncaught: true,
+ uncaughtMessage: 'mount error',
+ column: [5, 6, 12],
+ originalMessage: 'bar is not a function',
+ message: [
+ 'The following error originated from your test code',
+ ],
+ notInMessage: [
+ 'It was caused by an unhandled promise rejection',
+ ],
+ })
+
+ verify('async app exception after mount', {
+ uncaught: true,
+ originalMessage: 'async error',
+ message: [
+ 'The following error originated from your test code',
+ ],
+ notInMessage: [
+ 'It was caused by an unhandled promise rejection',
+ ],
+ regex: /src\/Errors.jsx/,
+ hasCodeFrame: false,
+ })
+
+ verify('app unhandled rejection', {
+ uncaught: true,
+ originalMessage: 'promise rejection',
+ message: [
+ 'The following error originated from your test code',
+ 'It was caused by an unhandled promise rejection',
+ ],
+ regex: /src\/Errors.jsx/,
+ hasCodeFrame: false,
+ })
+
+ verify('async spec exception', {
+ uncaught: true,
+ column: [3, 5, 12],
+ originalMessage: 'bar is not a function',
+ message: [
+ 'The following error originated from your test code',
+ ],
+ notInMessage: [
+ 'It was caused by an unhandled promise rejection',
+ ],
+ })
+
+ verify('async spec exception with done', {
+ uncaught: true,
+ column: [3, 6, 12],
+ originalMessage: 'bar is not a function',
+ message: [
+ 'The following error originated from your test code',
+ ],
+ notInMessage: [
+ 'It was caused by an unhandled promise rejection',
+ ],
+ })
+
+ verify('spec unhandled rejection', {
+ uncaught: true,
+ column: [20, 21],
+ originalMessage: 'Unhandled promise rejection from the spec',
+ message: [
+ 'The following error originated from your test code',
+ 'It was caused by an unhandled promise rejection',
+ ],
+ })
+
+ verify('spec unhandled rejection with done', {
+ uncaught: true,
+ column: [20, 21],
+ originalMessage: 'Unhandled promise rejection from the spec',
+ message: [
+ 'The following error originated from your application code',
+ 'It was caused by an unhandled promise rejection',
+ ],
+ hasCodeFrame: server !== 'Vite',
+ })
+
+ verify('spec Bluebird unhandled rejection', {
+ uncaught: true,
+ column: [21, 22],
+ originalMessage: 'Unhandled promise rejection from the spec',
+ message: [
+ 'The following error originated from your test code',
+ 'It was caused by an unhandled promise rejection',
+ ],
+ hasCodeFrame: server !== 'Vite',
+ })
+
+ verify('spec Bluebird unhandled rejection with done', {
+ uncaught: true,
+ column: [21, 22],
+ originalMessage: 'Unhandled promise rejection from the spec',
+ message: [
+ 'The following error originated from your test code',
+ 'It was caused by an unhandled promise rejection',
+ ],
+ hasCodeFrame: server !== 'Vite',
+ })
+ })
+
+ it('uncaught errors: outside test', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/uncaught_outside_test.cy.js',
+ failCount: 1,
+ }, configFile)
+
+ // NOTE: the following 2 test don't have uncaught: true because we don't
+ // display command logs if there are only events and not true commands
+ // and uncaught: true causes the verification to look for the error
+ // event command log
+ verify('An uncaught error was detected outside of a test', {
+ column: [7, 8],
+ message: [
+ 'The following error originated from your test code',
+ 'error from outside test',
+ 'Cypress could not associate this error to any specific test',
+ ],
+ codeFrameText: `thrownewError('error from outside test')`,
+ })
+ })
+
+ it('uncaught errors: outside test only suite', () => {
+ const verify = loadErrorSpec({
+ filePath: 'errors/uncaught_outside_test_only_suite.cy.js',
+ failCount: 1,
+ }, configFile)
+
+ verify('An uncaught error was detected outside of a test', {
+ column: [7, 8],
+ message: [
+ 'error from outside test with only suite',
+ 'The following error originated from your test code',
+ 'Cypress could not associate this error to any specific test',
+ ],
+ codeFrameText: `thrownewError('error from outside test with only suite')`,
+ })
+ })
+}
diff --git a/packages/app/cypress/e2e/runner/reporter-ct-vite.errors.cy.ts b/packages/app/cypress/e2e/runner/reporter-ct-vite.errors.cy.ts
new file mode 100644
index 000000000000..344306da7845
--- /dev/null
+++ b/packages/app/cypress/e2e/runner/reporter-ct-vite.errors.cy.ts
@@ -0,0 +1,3 @@
+import { generateCtErrorTests } from './reporter-ct-generator'
+
+generateCtErrorTests('Vite', 'cypress-vite.config.js')
diff --git a/packages/app/cypress/e2e/runner/reporter-ct-vite.uncaught-errors.cy.ts b/packages/app/cypress/e2e/runner/reporter-ct-vite.uncaught-errors.cy.ts
new file mode 100644
index 000000000000..8f27595cef6e
--- /dev/null
+++ b/packages/app/cypress/e2e/runner/reporter-ct-vite.uncaught-errors.cy.ts
@@ -0,0 +1,3 @@
+import { generateCtUncaughtErrorTests } from './reporter-ct-generator'
+
+generateCtUncaughtErrorTests('Vite', 'cypress-vite.config.js')
diff --git a/packages/app/cypress/e2e/runner/reporter-ct-webpack.errors.cy.ts b/packages/app/cypress/e2e/runner/reporter-ct-webpack.errors.cy.ts
new file mode 100644
index 000000000000..7abd253fd3ef
--- /dev/null
+++ b/packages/app/cypress/e2e/runner/reporter-ct-webpack.errors.cy.ts
@@ -0,0 +1,3 @@
+import { generateCtErrorTests } from './reporter-ct-generator'
+
+generateCtErrorTests('Webpack', 'cypress-webpack.config.js')
diff --git a/packages/app/cypress/e2e/runner/reporter-ct-webpack.uncaught-errors.cy.ts b/packages/app/cypress/e2e/runner/reporter-ct-webpack.uncaught-errors.cy.ts
new file mode 100644
index 000000000000..fdc12b83cd1c
--- /dev/null
+++ b/packages/app/cypress/e2e/runner/reporter-ct-webpack.uncaught-errors.cy.ts
@@ -0,0 +1,3 @@
+import { generateCtUncaughtErrorTests } from './reporter-ct-generator'
+
+generateCtUncaughtErrorTests('Webpack', 'cypress-webpack.config.js')
diff --git a/packages/app/cypress/e2e/runner/reporter.errors.cy.ts b/packages/app/cypress/e2e/runner/reporter.errors.cy.ts
index becbf40bde67..6b4e32ecc3cc 100644
--- a/packages/app/cypress/e2e/runner/reporter.errors.cy.ts
+++ b/packages/app/cypress/e2e/runner/reporter.errors.cy.ts
@@ -11,12 +11,13 @@ function loadErrorSpec (options: specLoader.LoadSpecOptions): VerifyFunc {
const {
filePath,
hasPreferredIde = false,
+ mode,
} = options
specLoader.loadSpec(options)
// Return scoped verify function with spec options baked in
- return createVerify({ fileName: Cypress._.last(filePath.split('/')), hasPreferredIde })
+ return createVerify({ fileName: Cypress._.last(filePath.split('/')), hasPreferredIde, mode })
}
describe('errors ui', {
diff --git a/packages/app/cypress/e2e/runner/support/spec-loader.ts b/packages/app/cypress/e2e/runner/support/spec-loader.ts
index 8e6c7a6c3526..dba66a02b605 100644
--- a/packages/app/cypress/e2e/runner/support/spec-loader.ts
+++ b/packages/app/cypress/e2e/runner/support/spec-loader.ts
@@ -3,11 +3,11 @@ export const shouldHaveTestResults = ({ passCount, failCount, pendingCount }) =>
failCount = failCount || '--'
cy.findByLabelText('Stats', { timeout: 10000 }).within(() => {
- cy.get('.passed .num', { timeout: 10000 }).should('have.text', `${passCount}`)
- cy.get('.failed .num', { timeout: 10000 }).should('have.text', `${failCount}`)
+ cy.get('.passed .num', { timeout: 30000 }).should('have.text', `${passCount}`)
+ cy.get('.failed .num', { timeout: 30000 }).should('have.text', `${failCount}`)
if (pendingCount) {
- cy.get('.pending .num', { timeout: 10000 }).should('have.text', `${pendingCount}`)
+ cy.get('.pending .num', { timeout: 20000 }).should('have.text', `${pendingCount}`)
}
})
}
@@ -19,7 +19,10 @@ export type LoadSpecOptions = {
failCount?: number | string
pendingCount?: number | string
hasPreferredIde?: boolean
- projectName?: 'runner-e2e-specs' | 'session-and-origin-e2e-specs'
+ projectName?: 'runner-e2e-specs' | 'runner-ct-specs' | 'session-and-origin-e2e-specs'
+ mode?: 'e2e' | 'component'
+ configFile?: string
+ scaffold?: boolean
}
export function loadSpec (options: LoadSpecOptions) {
@@ -30,12 +33,18 @@ export function loadSpec (options: LoadSpecOptions) {
failCount = '--',
hasPreferredIde = false,
pendingCount,
+ mode = 'e2e',
+ configFile = 'cypress.config.js',
projectName = 'runner-e2e-specs',
+ scaffold = true,
} = options
- cy.scaffoldProject(projectName)
- cy.openProject(projectName)
- cy.startAppServer()
+ if (scaffold) {
+ cy.scaffoldProject(projectName)
+ }
+
+ cy.openProject(projectName, ['--config-file', configFile])
+ cy.startAppServer(mode)
cy.withCtx((ctx, options) => {
ctx.update((coreData) => {
diff --git a/packages/app/cypress/e2e/runner/support/verify-failures.ts b/packages/app/cypress/e2e/runner/support/verify-failures.ts
index 1b3e14d92c35..33f43ad68919 100644
--- a/packages/app/cypress/e2e/runner/support/verify-failures.ts
+++ b/packages/app/cypress/e2e/runner/support/verify-failures.ts
@@ -42,6 +42,7 @@ const verifyFailure = (options) => {
uncaughtMessage,
line,
regex,
+ mode,
} = options
let { codeFrameText, stackRegex, codeFrameRegex } = options
@@ -130,7 +131,7 @@ const verifyFailure = (options) => {
hasPreferredIde,
action: () => {
cy.get('@Root').contains('.runnable-err-stack-trace .runnable-err-file-path a', fileName)
- .click('left')
+ .click({ force: true })
},
line,
column: stackColumn,
@@ -151,7 +152,8 @@ const verifyFailure = (options) => {
if (uncaught) {
cy.log('uncaught error has an associated log for the original error')
cy.get('.command-name-uncaught-exception')
- .should('have.length', 1)
+ // https://github.com/cypress-io/cypress/issues/23920
+ .should(mode === 'component' ? 'have.length.gte' : 'have.length', 1)
.find('.command-state-failed')
.find('.command-message-text')
.should('include.text', uncaughtMessage || originalMessage)
@@ -168,7 +170,7 @@ const verifyFailure = (options) => {
.invoke('text')
.should('match', codeFrameRegex)
- cy.get('.test-err-code-frame pre span').should('include.text', codeFrameText)
+ cy.get('.test-err-code-frame span').should('include.text', codeFrameText)
})
if (verifyOpenInIde) {
@@ -185,11 +187,12 @@ const verifyFailure = (options) => {
}
}
-export const createVerify = ({ fileName, hasPreferredIde }) => {
+export const createVerify = ({ fileName, hasPreferredIde, mode }) => {
return (specTitle: string, props: any) => {
props.specTitle ||= specTitle
props.fileName ||= fileName
props.hasPreferredIde = hasPreferredIde
+ props.mode = mode
;(props.verifyFn || verifyFailure).call(null, props)
}
@@ -206,10 +209,5 @@ export const verifyInternalFailure = (props) => {
cy.get('.runnable-err-stack-trace')
.should('include.text', stackMethod || method)
-
- // this is an internal cypress error and we can only show code frames
- // from specs, so it should not show the code frame
- cy.get('.test-err-code-frame')
- .should('not.exist')
})
}
diff --git a/packages/driver/src/cypress.ts b/packages/driver/src/cypress.ts
index 9b52b1fb36cd..6ad2a6279112 100644
--- a/packages/driver/src/cypress.ts
+++ b/packages/driver/src/cypress.ts
@@ -329,8 +329,6 @@ class $Cypress {
this.events.proxyTo(this.cy)
$scriptUtils.runScripts(specWindow, scripts)
- // TODO: remove this after making the type of `runScripts` more specific.
- // @ts-expect-error
.catch((error) => {
this.runner.onSpecError('error')({ error })
})
diff --git a/packages/driver/src/cypress/script_utils.ts b/packages/driver/src/cypress/script_utils.ts
index 6716996dd2b3..801bcee4551c 100644
--- a/packages/driver/src/cypress/script_utils.ts
+++ b/packages/driver/src/cypress/script_utils.ts
@@ -1,4 +1,3 @@
-import _ from 'lodash'
import Bluebird from 'bluebird'
import $networkUtils from './network_utils'
@@ -25,11 +24,15 @@ const extractSourceMap = ([script, contents]) => {
}
const evalScripts = (specWindow, scripts: any = []) => {
- _.each(scripts, ([script, contents]) => {
- specWindow.eval(`${contents}\n//# sourceURL=${script.fullyQualifiedUrl}`)
- })
+ return Bluebird.each(scripts, (_script: any) => {
+ const [script, contents] = _script
+
+ if (script.load) {
+ return script.load()
+ }
- return null
+ return specWindow.eval(`${contents}\n//# sourceURL=${script.fullyQualifiedUrl}`)
+ })
}
const runScriptsFromUrls = (specWindow, scripts) => {
diff --git a/packages/driver/src/cypress/source_map_utils.ts b/packages/driver/src/cypress/source_map_utils.ts
index b100cf144874..7fb3887cbfaa 100644
--- a/packages/driver/src/cypress/source_map_utils.ts
+++ b/packages/driver/src/cypress/source_map_utils.ts
@@ -6,6 +6,7 @@ import type { BasicSourceMapConsumer } from 'source-map'
import mappingsWasm from 'source-map/lib/mappings.wasm'
import $utils from './utils'
+import stackUtils from './stack_utils'
const sourceMapExtractionRegex = /\/\/\s*[@#]\s*sourceMappingURL\s*=\s*(data:[^\s]*)/g
const regexDataUrl = /data:[^;\n]+(?:;charset=[^;\n]+)?;base64,([a-zA-Z0-9+/]+={0,2})/ // matches data urls
@@ -22,7 +23,7 @@ const initializeSourceMapConsumer = async (script, sourceMap): Promise {
}
const getSourceContents = (filePath, sourceFile) => {
- if (!sourceMapConsumers[filePath]) return null
+ const posixFilePath = stackUtils.toPosix(filePath)
+
+ if (!sourceMapConsumers[posixFilePath]) return null
try {
- return sourceMapConsumers[filePath].sourceContentFor(sourceFile)
+ return sourceMapConsumers[posixFilePath].sourceContentFor(sourceFile)
} catch (err) {
// ignore the sourceFile not being in the source map. there's nothing we
// can do about it and we don't want to thrown an exception
@@ -69,7 +72,8 @@ const getSourceContents = (filePath, sourceFile) => {
}
const getSourcePosition = (filePath, position) => {
- const sourceMapConsumer = sourceMapConsumers[filePath]
+ const posixFilePath = stackUtils.toPosix(filePath)
+ const sourceMapConsumer = sourceMapConsumers[posixFilePath]
if (!sourceMapConsumer) return null
diff --git a/packages/driver/src/cypress/stack_utils.ts b/packages/driver/src/cypress/stack_utils.ts
index 251de27c974b..af8a25d9df90 100644
--- a/packages/driver/src/cypress/stack_utils.ts
+++ b/packages/driver/src/cypress/stack_utils.ts
@@ -12,6 +12,8 @@ import { getStackLines, replacedStack, stackWithoutMessage, splitStack, unsplitS
const whitespaceRegex = /^(\s*)*/
const customProtocolRegex = /^[^:\/]+:\/{1,3}/
+// Find 'namespace' values (like `_N_E` for Next apps) without adjusting relative paths (like `../`)
+const webpackDevtoolNamespaceRegex = /webpack:\/{2}([^.]*)?\.\//
const percentNotEncodedRegex = /%(?![0-9A-F][0-9A-F])/g
const webkitStackLineRegex = /(.*)@(.*)(\n?)/g
@@ -149,13 +151,17 @@ const getCodeFrameFromSource = (sourceCode, { line, column: originalColumn, rela
}
}
-const getRelativePathFromRoot = (relativeFile, absoluteFile) => {
+export const toPosix = (file: string) => {
+ return Cypress.config('platform') === 'win32'
+ ? file.replaceAll('\\', '/')
+ : file
+}
+
+const getRelativePathFromRoot = (relativeFile: string, absoluteFile?: string) => {
// at this point relativeFile is relative to the cypress config
// we need it to be relative to the repo root, which is different for monorepos
const repoRoot = Cypress.config('repoRoot')
- const posixAbsoluteFile = (Cypress.config('platform') === 'win32')
- ? absoluteFile?.replaceAll('\\', '/')
- : absoluteFile
+ const posixAbsoluteFile = absoluteFile ? toPosix(absoluteFile) : ''
if (posixAbsoluteFile?.startsWith(`${repoRoot}/`)) {
return posixAbsoluteFile.replace(`${repoRoot}/`, '')
@@ -289,6 +295,13 @@ const stripCustomProtocol = (filePath) => {
return
}
+ // Check the path to see if custom namespaces have been applied and, if so, remove them
+ // For example, in Next.js we end up with paths like `_N_E/pages/index.cy.js`, and we
+ // need to strip off the `_N_E` so that "Open in IDE" links work correctly
+ if (webpackDevtoolNamespaceRegex.test(filePath)) {
+ return filePath.replace(webpackDevtoolNamespaceRegex, '')
+ }
+
return filePath.replace(customProtocolRegex, '')
}
@@ -328,6 +341,10 @@ const getSourceDetailsForLine = (projectRoot, line): LineDetail => {
if (relativeFile) {
relativeFile = path.normalize(relativeFile)
+
+ if (relativeFile.includes(projectRoot)) {
+ relativeFile = relativeFile.replace(projectRoot, '').substring(1)
+ }
}
let absoluteFile
@@ -471,7 +488,7 @@ const normalizedUserInvocationStack = (userInvocationStack) => {
// at cypressErr (cypress:///../driver/src/cypress/error_utils.js:259:17)
// stacks in prod builds look like:
// at cypressErr (http://localhost:3500/isolated-runner/cypress_runner.js:173123:17)
- return line.includes('cy[name]') || line.includes('Chainer.prototype[key]')
+ return line.includes('cy[name]') || line.includes('Chainer.prototype[key]') || line.includes('cy.') || line.includes('$Chainer.')
}).join('\n')
return normalizeStackIndentation(winnowedStackLines)
@@ -495,4 +512,5 @@ export default {
stackWithUserInvocationStackSpliced,
captureUserInvocationStack,
getInvocationDetails,
+ toPosix,
}
diff --git a/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js b/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js
index b565e3887e63..becd36a73049 100644
--- a/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js
+++ b/system-tests/__snapshots__/vite_dev_server_fresh_spec.ts.js
@@ -7,15 +7,15 @@ exports['@cypress/vite-dev-server react executes all of the tests for vite3.0.2-
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
+ Running: App.cy.jsx (1 of 7)
✓ renders hello world
@@ -46,7 +46,7 @@ exports['@cypress/vite-dev-server react executes all of the tests for vite3.0.2-
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -98,7 +98,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -146,7 +228,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -190,7 +272,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -223,7 +305,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -269,6 +351,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -277,7 +361,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
@@ -291,15 +375,15 @@ exports['@cypress/vite-dev-server react executes all of the tests for vite2.8.6-
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
+ Running: App.cy.jsx (1 of 7)
✓ renders hello world
@@ -330,7 +414,7 @@ exports['@cypress/vite-dev-server react executes all of the tests for vite2.8.6-
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -382,7 +466,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -430,7 +596,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -474,7 +640,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -507,7 +673,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -553,6 +719,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -561,7 +729,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
@@ -575,15 +743,15 @@ exports['@cypress/vite-dev-server react executes all of the tests for vite2.9.1-
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
+ Running: App.cy.jsx (1 of 7)
✓ renders hello world
@@ -614,7 +782,7 @@ exports['@cypress/vite-dev-server react executes all of the tests for vite2.9.1-
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -666,7 +834,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -714,7 +964,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -758,7 +1008,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -791,7 +1041,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -837,6 +1087,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -845,7 +1097,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
diff --git a/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js b/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js
index c9e28c52cef2..aa69ebb1a2f5 100644
--- a/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js
+++ b/system-tests/__snapshots__/webpack_dev_server_fresh_spec.ts.js
@@ -10,15 +10,15 @@ exports['@cypress/webpack-dev-server react executes all of the tests for webpack
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
+ Running: App.cy.jsx (1 of 7)
✓ renders hello world
@@ -49,7 +49,7 @@ exports['@cypress/webpack-dev-server react executes all of the tests for webpack
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -109,7 +109,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -157,7 +239,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -201,7 +283,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -234,7 +316,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -280,6 +362,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -288,7 +372,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
@@ -302,16 +386,16 @@ exports['@cypress/webpack-dev-server react executes all of the tests for webpack
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
- 44 modules
+ Running: App.cy.jsx (1 of 7)
+ 45 modules
ERROR in ./src/AppCompilationError.cy.jsx
Module build failed (from [..]):
@@ -353,7 +437,7 @@ SyntaxError: /foo/bar/.projects/webpack4_wds4-react/src/AppCompilationError.cy.j
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -413,7 +497,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -461,7 +627,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -505,7 +671,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -538,7 +704,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -584,6 +750,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -592,7 +760,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
@@ -609,15 +777,15 @@ exports['@cypress/webpack-dev-server react executes all of the tests for webpack
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
+ Running: App.cy.jsx (1 of 7)
✓ renders hello world
@@ -648,7 +816,7 @@ exports['@cypress/webpack-dev-server react executes all of the tests for webpack
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -708,7 +876,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -756,7 +1006,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -800,7 +1050,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -833,7 +1083,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -879,6 +1129,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -887,7 +1139,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
@@ -901,17 +1153,17 @@ exports['@cypress/webpack-dev-server react executes all of the tests for webpack
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Cypress: 1.2.3 │
│ Browser: FooBrowser 88 │
- │ Specs: 6 found (App.cy.jsx, AppCompilationError.cy.jsx, MissingReact.cy.jsx, MissingReact │
- │ InSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
+ │ Specs: 7 found (App.cy.jsx, AppCompilationError.cy.jsx, Errors.cy.jsx, MissingReact.cy.js │
+ │ x, MissingReactInSpec.cy.jsx, Rerendering.cy.jsx, Unmount.cy.jsx) │
│ Searched: **/*.cy.{js,jsx,ts,tsx} │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: App.cy.jsx (1 of 6)
-13 assets
-54 modules
+ Running: App.cy.jsx (1 of 7)
+14 assets
+55 modules
ERROR in ./src/AppCompilationError.cy.jsx
Module build failed (from [..]):
@@ -955,7 +1207,7 @@ webpack x.x.x compiled with x errors in xxx ms
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: AppCompilationError.cy.jsx (2 of 6)
+ Running: AppCompilationError.cy.jsx (2 of 7)
1) An uncaught error was detected outside of a test
@@ -1015,7 +1267,89 @@ We dynamically generated a new test to display this failure.
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReact.cy.jsx (3 of 6)
+ Running: Errors.cy.jsx (3 of 7)
+
+
+ Errors
+ 1) error on mount
+ 2) sync error
+ 3) async error
+ 4) command failure
+
+
+ 0 passing
+ 4 failing
+
+ 1) Errors
+ error on mount:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > mount error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 2) Errors
+ sync error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > sync error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 3) Errors
+ async error:
+ Error: The following error originated from your test code, not from Cypress.
+
+ > async error
+
+When Cypress detects uncaught errors originating from your test code it will automatically fail the current test.
+ [stack trace lines]
+
+ 4) Errors
+ command failure:
+ AssertionError: Timed out retrying after 50ms: Expected to find element: \`element-that-does-not-exist\`, but never found it.
+ [stack trace lines]
+
+
+
+
+ (Results)
+
+ ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │ Tests: 4 │
+ │ Passing: 0 │
+ │ Failing: 4 │
+ │ Pending: 0 │
+ │ Skipped: 0 │
+ │ Screenshots: 4 │
+ │ Video: true │
+ │ Duration: X seconds │
+ │ Spec Ran: Errors.cy.jsx │
+ └────────────────────────────────────────────────────────────────────────────────────────────────┘
+
+
+ (Screenshots)
+
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- error on mount (failed) (1280x720)
+ .png
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- sync error (failed).png (1280x720)
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- async error (failed).pn (1280x720)
+ g
+ - /XXX/XXX/XXX/cypress/screenshots/Errors.cy.jsx/Errors -- command failure (failed (1280x720)
+ ).png
+
+
+ (Video)
+
+ - Started processing: Compressing to 32 CRF
+ - Finished processing: /XXX/XXX/XXX/cypress/videos/Errors.cy.jsx.mp4 (X second)
+
+
+────────────────────────────────────────────────────────────────────────────────────────────────────
+
+ Running: MissingReact.cy.jsx (4 of 7)
1) is missing React
@@ -1063,7 +1397,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: MissingReactInSpec.cy.jsx (4 of 6)
+ Running: MissingReactInSpec.cy.jsx (5 of 7)
1) is missing React in this file
@@ -1107,7 +1441,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Rerendering.cy.jsx (5 of 6)
+ Running: Rerendering.cy.jsx (6 of 7)
re-render
@@ -1140,7 +1474,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
────────────────────────────────────────────────────────────────────────────────────────────────────
- Running: Unmount.cy.jsx (6 of 6)
+ Running: Unmount.cy.jsx (7 of 7)
Comp with componentWillUnmount
@@ -1186,6 +1520,8 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ AppCompilationError.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
+ │ ✖ Errors.cy.jsx XX:XX 4 - 4 - - │
+ ├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReact.cy.jsx XX:XX 1 - 1 - - │
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✖ MissingReactInSpec.cy.jsx XX:XX 1 - 1 - - │
@@ -1194,7 +1530,7 @@ When Cypress detects uncaught errors originating from your test code it will aut
├────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ✔ Unmount.cy.jsx XX:XX 3 3 - - - │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
- ✖ 3 of 6 failed (50%) XX:XX 8 5 3 - -
+ ✖ 4 of 7 failed (57%) XX:XX 12 5 7 - -
`
diff --git a/system-tests/project-fixtures/angular/src/app/components/errors.ts b/system-tests/project-fixtures/angular/src/app/components/errors.ts
new file mode 100644
index 000000000000..475871a4f11c
--- /dev/null
+++ b/system-tests/project-fixtures/angular/src/app/components/errors.ts
@@ -0,0 +1,22 @@
+import { Component, Input } from "@angular/core";
+
+@Component({
+ selector: "errors-component",
+ template: `
+
+
+
`,
+})
+export class ErrorsComponent {
+ @Input() throwError!: boolean;
+
+ syncError() {
+ throw new Error('sync error')
+ }
+
+ asyncError() {
+ setTimeout(() => {
+ throw new Error('async error')
+ }, 50)
+ }
+}
diff --git a/system-tests/project-fixtures/angular/src/app/errors.cy.ts b/system-tests/project-fixtures/angular/src/app/errors.cy.ts
new file mode 100644
index 000000000000..d78728ae1155
--- /dev/null
+++ b/system-tests/project-fixtures/angular/src/app/errors.cy.ts
@@ -0,0 +1,23 @@
+import { ErrorsComponent } from './components/errors'
+
+describe('Errors', () => {
+
+ it('error on mount', () => {
+ cy.mount(ErrorsComponent, { componentProperties: { throwError: true } })
+ })
+
+ it('sync error', () => {
+ cy.mount(ErrorsComponent)
+ cy.get('#sync-error').click()
+ })
+
+ it('async error', () => {
+ cy.mount(ErrorsComponent)
+ cy.get('#async-error').click()
+ })
+
+ it('command failure', { defaultCommandTimeout: 50 }, () => {
+ cy.mount(ErrorsComponent)
+ cy.get('element-that-does-not-exist')
+ })
+})
\ No newline at end of file
diff --git a/system-tests/project-fixtures/next/cypress/Errors.cy.jsx b/system-tests/project-fixtures/next/cypress/Errors.cy.jsx
new file mode 100644
index 000000000000..4815beead6ad
--- /dev/null
+++ b/system-tests/project-fixtures/next/cypress/Errors.cy.jsx
@@ -0,0 +1,46 @@
+import React from 'react'
+import { mount } from "cypress/react"
+
+describe('Errors', () => {
+
+ const Errors = (props) => {
+ if (props.throwError) throw new Error('mount error')
+ return (
+
+
+
+
+ );
+ }
+
+ it('error on mount', () => {
+ mount()
+ })
+
+ it('sync error', () => {
+ mount()
+ cy.get('#sync-error').click()
+ })
+
+ it('async error', () => {
+ mount()
+ cy.get('#async-error').click()
+ })
+
+ it('command failure', { defaultCommandTimeout: 50 }, () => {
+ mount()
+ cy.get('element-that-does-not-exist')
+ })
+})
\ No newline at end of file
diff --git a/system-tests/project-fixtures/react/src/Errors.cy.jsx b/system-tests/project-fixtures/react/src/Errors.cy.jsx
new file mode 100644
index 000000000000..cfc17df68695
--- /dev/null
+++ b/system-tests/project-fixtures/react/src/Errors.cy.jsx
@@ -0,0 +1,45 @@
+import React from 'react'
+
+describe('Errors', () => {
+
+ const Errors = (props) => {
+ if (props.throwError) throw new Error('mount error')
+ return (
+
+
+
+
+ );
+ }
+
+ it('error on mount', () => {
+ cy.mount()
+ })
+
+ it('sync error', () => {
+ cy.mount()
+ cy.get('#sync-error').click()
+ })
+
+ it('async error', () => {
+ cy.mount()
+ cy.get('#async-error').click()
+ })
+
+ it('command failure', { defaultCommandTimeout: 50 }, () => {
+ cy.mount()
+ cy.get('element-that-does-not-exist')
+ })
+})
\ No newline at end of file
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/assertions.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/assertions.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/assertions.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/assertions.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/commands.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/commands.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/commands.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/commands.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/custom_commands.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/custom_commands.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/custom_commands.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/custom_commands.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/docs_url.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/docs_url.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/docs_url.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/docs_url.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/each.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/each.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/each.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/each.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/events.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/events.cy.js
similarity index 78%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/events.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/events.cy.js
index 1321c7465c74..d3b080a092ac 100644
--- a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/events.cy.js
+++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/events.cy.js
@@ -1,18 +1,18 @@
describe('event handlers', { defaultCommandTimeout: 0 }, () => {
it('event assertion failure', () => {
- cy.on('window:load', () => {
+ cy.on('command:end', () => {
expect('actual').to.equal('expected')
})
- cy.visit('http://localhost:1919')
+ cy.wrap({})
})
it('event exception', () => {
- cy.on('window:load', () => {
+ cy.on('command:end', () => {
({}).bar()
})
- cy.visit('http://localhost:1919')
+ cy.wrap({})
})
it('fail handler assertion failure', () => {
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/exceptions.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/exceptions.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/exceptions.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/exceptions.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/hooks.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/hooks.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/hooks.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/hooks.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/intercept.cy.ts b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/intercept.cy.ts
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/intercept.cy.ts
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/intercept.cy.ts
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/nested_hooks.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/nested_hooks.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/nested_hooks.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/nested_hooks.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/readfile.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/readfile.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/readfile.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/readfile.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/route.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/route.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/route.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/route.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/server.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/server.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/server.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/server.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/should.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/should.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/should.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/should.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/spread.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/spread.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/spread.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/spread.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/then.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/then.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/then.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/then.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/typescript.cy.ts b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/typescript.cy.ts
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/typescript.cy.ts
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/typescript.cy.ts
diff --git a/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught-ct.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught-ct.cy.js
new file mode 100644
index 000000000000..ff4d525641b6
--- /dev/null
+++ b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught-ct.cy.js
@@ -0,0 +1,75 @@
+import Errors from '../../../src/Errors'
+import Bluebird from 'bluebird'
+import React from 'react'
+
+describe('uncaught errors', { defaultCommandTimeout: 0 }, () => {
+ it('sync app mount exception', () => {
+ cy.mount(React.createElement(Errors, { throwOnMount: true }, []))
+ })
+
+ it('sync app exception after mount', () => {
+ cy.mount(React.createElement(Errors, null, []))
+ cy.get('#trigger-sync-error').click()
+ })
+
+ it('async app exception after mount', () => {
+ cy.mount(React.createElement(Errors, null, []))
+ cy.get('#trigger-async-error').click()
+ cy.wait(10000)
+ })
+
+ it('app unhandled rejection', () => {
+ cy.mount(React.createElement(Errors, null, []))
+ cy.get('#trigger-unhandled-rejection').click()
+ cy.wait(10000)
+ })
+
+ it('exception inside uncaught:exception', () => {
+ cy.on('uncaught:exception', () => {
+ ({}).bar()
+ })
+
+ cy.mount(React.createElement(Errors, { throwOnMount: true }, []))
+ })
+
+ it('async spec exception', () => {
+ setTimeout(() => {
+ ({}).bar()
+ })
+
+ cy.wait(10000)
+ })
+
+ // eslint-disable-next-line mocha/handle-done-callback
+ it('async spec exception with done', (done) => {
+ setTimeout(() => {
+ ({}).bar()
+ })
+
+ cy.wait(50)
+ })
+
+ it('spec unhandled rejection', () => {
+ Promise.reject(new Error('Unhandled promise rejection from the spec'))
+
+ cy.wait(10000)
+ })
+
+ // eslint-disable-next-line mocha/handle-done-callback
+ it('spec unhandled rejection with done', (done) => {
+ Promise.reject(new Error('Unhandled promise rejection from the spec'))
+
+ cy.wait(50)
+ })
+
+ it('spec Bluebird unhandled rejection', () => {
+ Bluebird.reject(new Error('Unhandled promise rejection from the spec'))
+
+ cy.wait(10000)
+ })
+
+ // eslint-disable-next-line mocha/handle-done-callback
+ it('spec Bluebird unhandled rejection with done', (done) => {
+ Bluebird.reject(new Error('Unhandled promise rejection from the spec'))
+ })
+})
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/uncaught.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/uncaught.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/uncaught_outside_test.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught_outside_test.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/uncaught_outside_test.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught_outside_test.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/uncaught_outside_test_only_suite.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught_outside_test_only_suite.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/uncaught_outside_test_only_suite.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/uncaught_outside_test_only_suite.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/unexpected.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/unexpected.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/unexpected.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/unexpected.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/validation.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/validation.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/validation.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/validation.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/visit.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/visit.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/visit.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/visit.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/within.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/within.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/within.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/within.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/errors/wrap.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/errors/wrap.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/errors/wrap.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/errors/wrap.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/basic.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/basic.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/basic.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/basic.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/only.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/only.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/only.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/only.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/rerun.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/rerun.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/rerun.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/rerun.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/skip.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/skip.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/hooks/skip.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/hooks/skip.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/issues/issue-18042.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/issues/issue-18042.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/issues/issue-18042.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/issues/issue-18042.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/issues/issue-9162.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/issues/issue-9162.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/issues/issue-9162.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/issues/issue-9162.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-all-failure.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-all-failure.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-all-failure.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-all-failure.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-all-once.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-all-once.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-all-once.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-all-once.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-each-failure.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-each-failure.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-each-failure.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-each-failure.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-each-skip.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-each-skip.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/after-each-skip.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/after-each-skip.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/all-retry-one-failure.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/all-retry-one-failure.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/all-retry-one-failure.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/all-retry-one-failure.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-all-called-once.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-all-called-once.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-all-called-once.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-all-called-once.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-all-failure.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-all-failure.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-all-failure.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-all-failure.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-each-failure.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-each-failure.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-each-failure.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-each-failure.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-each-skip.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-each-skip.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/before-each-skip.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/before-each-skip.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/collapse-after-pass.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/collapse-after-pass.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/collapse-after-pass.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/collapse-after-pass.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/collapse-prev-attempts.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/collapse-prev-attempts.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/collapse-prev-attempts.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/collapse-prev-attempts.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-in-hook.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-in-hook.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-in-hook.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-in-hook.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-in-suite.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-in-suite.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-in-suite.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-in-suite.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-in-test.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-in-test.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-in-test.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-in-test.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-retries.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-retries.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/configure-retries.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/configure-retries.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/includes-all-in-attempt.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/includes-all-in-attempt.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/includes-all-in-attempt.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/includes-all-in-attempt.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/only.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/only.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/only.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/only.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/retries/opens-attempt-for-screenshot.retries.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/retries/opens-attempt-for-screenshot.retries.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/retries/opens-attempt-for-screenshot.retries.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/retries/opens-attempt-for-screenshot.retries.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/async-timeout.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/async-timeout.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/async-timeout.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/async-timeout.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/can-retry-from-afterEach.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/can-retry-from-afterEach.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/can-retry-from-afterEach.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/can-retry-from-afterEach.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/can-retry-from-beforeEach.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/can-retry-from-beforeEach.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/can-retry-from-beforeEach.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/can-retry-from-beforeEach.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/cant-retry-from-after.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/cant-retry-from-after.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/cant-retry-from-after.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/cant-retry-from-after.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/cant-retry-from-before.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/cant-retry-from-before.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/cant-retry-from-before.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/cant-retry-from-before.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/catch-fail.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/catch-fail.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/catch-fail.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/catch-fail.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/does-not-serialize-dom-error.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/does-not-serialize-dom-error.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/does-not-serialize-dom-error.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/does-not-serialize-dom-error.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/empty-suites.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/empty-suites.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/empty-suites.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/empty-suites.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-pass.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-pass.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-pass.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-pass.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-after.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-after.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-after.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-after.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-after.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-after.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-after.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-after.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-afterEach.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-all-hooks.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-all-hooks.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-all-hooks.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-all-hooks.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-before.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-before.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-before.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-before.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-before.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-before.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-before.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-before.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-beforeEach.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-only.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-only.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/fail-with-only.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/fail-with-only.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/failing-hooks.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/failing-hooks.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/failing-hooks.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/failing-hooks.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/nested-suite.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/nested-suite.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/nested-suite.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/nested-suite.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/no-tests.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/no-tests.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/no-tests.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/no-tests.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/pass-fail-pass-fail.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/pass-fail-pass-fail.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/pass-fail-pass-fail.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/pass-fail-pass-fail.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/pass-with-only.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/pass-with-only.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/pass-with-only.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/pass-with-only.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/scrolls-command-log.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/scrolls-command-log.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/scrolls-command-log.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/scrolls-command-log.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-cy-assert.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-cy-assert.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-cy-assert.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-cy-assert.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-cy-snapshot.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-cy-snapshot.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-cy-snapshot.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-cy-snapshot.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-fail.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-fail.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-fail.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-fail.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-fail.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-fail.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-fail.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-fail.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-single-global-test.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-single-global-test.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-single-global-test.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-single-global-test.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-single-test.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-single-test.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-single-test.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-single-test.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-single-test.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-single-test.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/simple-single-test.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/simple-single-test.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/stop-execution.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/stop-execution.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/stop-execution.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/stop-execution.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-only.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-only.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-only.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-only.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-pending.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-pending.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-pending.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-pending.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-retry-with-hooks.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-retry-with-hooks.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-retry-with-hooks.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-retry-with-hooks.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-retry-with-only.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-retry-with-only.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/test-retry-with-only.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/test-retry-with-only.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/three-simple-tests.runner.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/three-simple-tests.runner.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/three-simple-tests.runner.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/three-simple-tests.runner.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/three-tests-with-hooks.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/three-tests-with-hooks.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/three-tests-with-hooks.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/three-tests-with-hooks.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/runner/three-tests-with-retry.retries.mochaEvents.cy.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/runner/three-tests-with-retry.retries.mochaEvents.cy.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/runner/three-tests-with-retry.retries.mochaEvents.cy.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/runner/three-tests-with-retry.retries.mochaEvents.cy.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/e2e/support/generate-mocha-tests.js b/system-tests/project-fixtures/runner-specs/cypress/e2e/support/generate-mocha-tests.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/e2e/support/generate-mocha-tests.js
rename to system-tests/project-fixtures/runner-specs/cypress/e2e/support/generate-mocha-tests.js
diff --git a/system-tests/projects/runner-e2e-specs/cypress/fixtures/dom.html b/system-tests/project-fixtures/runner-specs/cypress/fixtures/dom.html
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/fixtures/dom.html
rename to system-tests/project-fixtures/runner-specs/cypress/fixtures/dom.html
diff --git a/system-tests/projects/runner-e2e-specs/cypress/fixtures/errors.html b/system-tests/project-fixtures/runner-specs/cypress/fixtures/errors.html
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/fixtures/errors.html
rename to system-tests/project-fixtures/runner-specs/cypress/fixtures/errors.html
diff --git a/system-tests/projects/runner-e2e-specs/cypress/fixtures/example.html b/system-tests/project-fixtures/runner-specs/cypress/fixtures/example.html
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/fixtures/example.html
rename to system-tests/project-fixtures/runner-specs/cypress/fixtures/example.html
diff --git a/system-tests/projects/runner-e2e-specs/cypress/fixtures/index.html b/system-tests/project-fixtures/runner-specs/cypress/fixtures/index.html
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/cypress/fixtures/index.html
rename to system-tests/project-fixtures/runner-specs/cypress/fixtures/index.html
diff --git a/system-tests/project-fixtures/runner-specs/cypress/support/component-index.html b/system-tests/project-fixtures/runner-specs/cypress/support/component-index.html
new file mode 100644
index 000000000000..ac6e79fd83df
--- /dev/null
+++ b/system-tests/project-fixtures/runner-specs/cypress/support/component-index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ Components App
+
+
+
+
+
\ No newline at end of file
diff --git a/system-tests/project-fixtures/runner-specs/cypress/support/component.js b/system-tests/project-fixtures/runner-specs/cypress/support/component.js
new file mode 100644
index 000000000000..71ded66f67d4
--- /dev/null
+++ b/system-tests/project-fixtures/runner-specs/cypress/support/component.js
@@ -0,0 +1,4 @@
+import { mount, unmount } from 'cypress/react18'
+
+Cypress.Commands.add('mount', mount)
+Cypress.Commands.add('unmount', unmount)
diff --git a/system-tests/projects/runner-e2e-specs/src/throws-error.js b/system-tests/project-fixtures/runner-specs/src/throws-error.js
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/src/throws-error.js
rename to system-tests/project-fixtures/runner-specs/src/throws-error.js
diff --git a/system-tests/projects/runner-e2e-specs/tsconfig.json b/system-tests/project-fixtures/runner-specs/tsconfig.json
similarity index 100%
rename from system-tests/projects/runner-e2e-specs/tsconfig.json
rename to system-tests/project-fixtures/runner-specs/tsconfig.json
diff --git a/system-tests/project-fixtures/svelte/src/Errors.svelte b/system-tests/project-fixtures/svelte/src/Errors.svelte
new file mode 100644
index 000000000000..fff81e364675
--- /dev/null
+++ b/system-tests/project-fixtures/svelte/src/Errors.svelte
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/system-tests/project-fixtures/svelte/src/errors.cy.js b/system-tests/project-fixtures/svelte/src/errors.cy.js
new file mode 100644
index 000000000000..daa69b572be6
--- /dev/null
+++ b/system-tests/project-fixtures/svelte/src/errors.cy.js
@@ -0,0 +1,23 @@
+import Errors from './Errors.svelte'
+
+describe('Errors', () => {
+
+ it('error on mount', () => {
+ cy.mount(Errors, { props: { throwError: true } })
+ })
+
+ it('sync error', () => {
+ cy.mount(Errors)
+ cy.get('#sync-error').click()
+ })
+
+ it('async error', () => {
+ cy.mount(Errors)
+ cy.get('#async-error').click()
+ })
+
+ it('command failure', { defaultCommandTimeout: 50 }, () => {
+ cy.mount(Errors)
+ cy.get('element-that-does-not-exist')
+ })
+})
\ No newline at end of file
diff --git a/system-tests/project-fixtures/vue-cli/src/components/Errors.cy.js b/system-tests/project-fixtures/vue-cli/src/components/Errors.cy.js
new file mode 100644
index 000000000000..8a2afd467637
--- /dev/null
+++ b/system-tests/project-fixtures/vue-cli/src/components/Errors.cy.js
@@ -0,0 +1,28 @@
+import Errors from './Errors.vue'
+import { mount } from 'cypress/vue'
+
+describe('Errors', () => {
+
+ it('error on mount', () => {
+ mount(Errors, {
+ propsData: {
+ throwError: true
+ }
+ })
+ })
+
+ it('sync error', () => {
+ mount(Errors)
+ cy.get('#sync-error').click()
+ })
+
+ it('async error', () => {
+ mount(Errors)
+ cy.get('#async-error').click()
+ })
+
+ it('command failure', { defaultCommandTimeout: 50 }, () => {
+ mount(Errors)
+ cy.get('element-that-does-not-exist')
+ })
+})
\ No newline at end of file
diff --git a/system-tests/project-fixtures/vue-cli/src/components/Errors.vue b/system-tests/project-fixtures/vue-cli/src/components/Errors.vue
new file mode 100644
index 000000000000..592ffb5c3454
--- /dev/null
+++ b/system-tests/project-fixtures/vue-cli/src/components/Errors.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system-tests/projects/nuxtjs-vue2-configured/components/Errors.cy.js b/system-tests/projects/nuxtjs-vue2-configured/components/Errors.cy.js
new file mode 100644
index 000000000000..bffd645a3357
--- /dev/null
+++ b/system-tests/projects/nuxtjs-vue2-configured/components/Errors.cy.js
@@ -0,0 +1,28 @@
+import Errors from './Errors.vue'
+import { mount } from 'cypress/vue2'
+
+describe('Errors', () => {
+
+ it('error on mount', () => {
+ mount(Errors, {
+ propsData: {
+ throwError: true
+ }
+ })
+ })
+
+ it('sync error', () => {
+ mount(Errors)
+ cy.get('#sync-error').click()
+ })
+
+ it('async error', () => {
+ mount(Errors)
+ cy.get('#async-error').click()
+ })
+
+ it('command failure', { defaultCommandTimeout: 50 }, () => {
+ mount(Errors)
+ cy.get('element-that-does-not-exist')
+ })
+})
\ No newline at end of file
diff --git a/system-tests/projects/nuxtjs-vue2-configured/components/Errors.vue b/system-tests/projects/nuxtjs-vue2-configured/components/Errors.vue
new file mode 100644
index 000000000000..592ffb5c3454
--- /dev/null
+++ b/system-tests/projects/nuxtjs-vue2-configured/components/Errors.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/system-tests/projects/runner-ct-specs/.babelrc b/system-tests/projects/runner-ct-specs/.babelrc
new file mode 100644
index 000000000000..f406f678e706
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/.babelrc
@@ -0,0 +1,3 @@
+{
+ "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"]
+}
diff --git a/system-tests/projects/runner-ct-specs/cypress-vite.config.js b/system-tests/projects/runner-ct-specs/cypress-vite.config.js
new file mode 100644
index 000000000000..5bf508a2c8b7
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/cypress-vite.config.js
@@ -0,0 +1,14 @@
+module.exports = {
+ numTestsKeptInMemory: 0,
+ video: false,
+ e2e: {
+ specPattern: 'no-matches/**.cy.*',
+ },
+ component: {
+ specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}',
+ devServer: {
+ framework: 'react',
+ bundler: 'vite',
+ },
+ },
+}
diff --git a/system-tests/projects/runner-ct-specs/cypress-webpack.config.js b/system-tests/projects/runner-ct-specs/cypress-webpack.config.js
new file mode 100644
index 000000000000..802260935b10
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/cypress-webpack.config.js
@@ -0,0 +1,18 @@
+module.exports = {
+ numTestsKeptInMemory: 0,
+ video: false,
+ e2e: {
+ specPattern: 'no-matches/**.cy.*',
+ },
+ component: {
+ specPattern: 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}',
+ devServer: {
+ framework: 'react',
+ bundler: 'webpack',
+ webpackConfig: {
+ ...require('./webpack.config.js'),
+ stats: 'minimal',
+ },
+ },
+ },
+}
diff --git a/system-tests/projects/runner-ct-specs/package.json b/system-tests/projects/runner-ct-specs/package.json
new file mode 100644
index 000000000000..818089c45577
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/package.json
@@ -0,0 +1,19 @@
+{
+ "dependencies": {
+ "react": "18.2.0",
+ "react-dom": "18.2.0"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.17.8",
+ "@babel/preset-env": "^7",
+ "@babel/preset-react": "^7",
+ "@babel/preset-typescript": "^7",
+ "@vitejs/plugin-react": "^2.1.0",
+ "babel-loader": "^8.2.4",
+ "typescript": "^4.7.4",
+ "vite": "3.1.3",
+ "webpack": "^5",
+ "webpack-dev-server": "^4"
+ },
+ "projectFixtureDirectory": "runner-specs"
+}
diff --git a/system-tests/projects/runner-ct-specs/src/Errors.jsx b/system-tests/projects/runner-ct-specs/src/Errors.jsx
new file mode 100644
index 000000000000..4d6304d7ba98
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/src/Errors.jsx
@@ -0,0 +1,45 @@
+import React from 'react'
+
+const Errors = ({ throwOnMount = false }) => {
+
+ const one = (msg) => {
+ two(msg)
+ }
+
+ const two = (msg) => {
+ three(msg)
+ }
+
+ const three = (msg) => {
+ throw new Error(msg)
+ }
+
+ if (throwOnMount) {
+ one('mount error')
+ }
+
+ return (
+
+
+
+
+
+ )
+}
+
+export default Errors
diff --git a/system-tests/projects/runner-ct-specs/vite.config.ts b/system-tests/projects/runner-ct-specs/vite.config.ts
new file mode 100644
index 000000000000..5a33944a9b41
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react()],
+})
diff --git a/system-tests/projects/runner-ct-specs/webpack.config.js b/system-tests/projects/runner-ct-specs/webpack.config.js
new file mode 100644
index 000000000000..38547a0f4289
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/webpack.config.js
@@ -0,0 +1,25 @@
+const path = require('path')
+
+/**
+ * @type {import('webpack').Configuration}
+ */
+module.exports = {
+ resolve: {
+ extensions: ['.js', '.ts', '.jsx', '.tsx'],
+ alias: {
+ 'react': path.resolve(__dirname, './node_modules/react'),
+ 'react-dom': path.resolve(__dirname, './node_modules/react-dom'),
+ },
+ },
+ module: {
+ rules: [
+ {
+ test: /\.(js|jsx|ts|tsx)$/,
+ exclude: /node_modules/,
+ use: {
+ loader: 'babel-loader',
+ },
+ },
+ ],
+ },
+}
diff --git a/system-tests/projects/runner-ct-specs/yarn.lock b/system-tests/projects/runner-ct-specs/yarn.lock
new file mode 100644
index 000000000000..09a74974ae4c
--- /dev/null
+++ b/system-tests/projects/runner-ct-specs/yarn.lock
@@ -0,0 +1,3455 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.1.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
+ integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@babel/code-frame@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
+ integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
+ dependencies:
+ "@babel/highlight" "^7.18.6"
+
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9"
+ integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==
+
+"@babel/core@^7.17.8", "@babel/core@^7.18.13":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.1.tgz#c8fa615c5e88e272564ace3d42fbc8b17bfeb22b"
+ integrity sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==
+ dependencies:
+ "@ampproject/remapping" "^2.1.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.19.0"
+ "@babel/helper-compilation-targets" "^7.19.1"
+ "@babel/helper-module-transforms" "^7.19.0"
+ "@babel/helpers" "^7.19.0"
+ "@babel/parser" "^7.19.1"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.1"
+ "@babel/types" "^7.19.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.1"
+ semver "^6.3.0"
+
+"@babel/generator@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a"
+ integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==
+ dependencies:
+ "@babel/types" "^7.19.0"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ jsesc "^2.5.1"
+
+"@babel/helper-annotate-as-pure@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
+ integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
+ integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.18.6"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c"
+ integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==
+ dependencies:
+ "@babel/compat-data" "^7.19.1"
+ "@babel/helper-validator-option" "^7.18.6"
+ browserslist "^4.21.3"
+ semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b"
+ integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-member-expression-to-functions" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.9"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b"
+ integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ regexpu-core "^5.1.0"
+
+"@babel/helper-define-polyfill-provider@^0.3.3":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
+ integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
+ semver "^6.1.2"
+
+"@babel/helper-environment-visitor@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
+ integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+
+"@babel/helper-explode-assignable-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
+ integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
+ integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-hoist-variables@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
+ integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-member-expression-to-functions@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815"
+ integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==
+ dependencies:
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-module-imports@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
+ integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30"
+ integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.18.6"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.0"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-optimise-call-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
+ integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf"
+ integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==
+
+"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
+ integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-wrap-function" "^7.18.9"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78"
+ integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/traverse" "^7.19.1"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-simple-access@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
+ integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818"
+ integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==
+ dependencies:
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-split-export-declaration@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
+ integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-string-parser@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56"
+ integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==
+
+"@babel/helper-validator-identifier@^7.18.6":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
+ integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
+
+"@babel/helper-validator-option@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
+ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
+
+"@babel/helper-wrap-function@^7.18.9":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1"
+ integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==
+ dependencies:
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.0"
+ "@babel/types" "^7.19.0"
+
+"@babel/helpers@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18"
+ integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.0"
+ "@babel/types" "^7.19.0"
+
+"@babel/highlight@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
+ integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.18.6"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.18.10", "@babel/parser@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c"
+ integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
+ integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50"
+ integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
+
+"@babel/plugin-proposal-async-generator-functions@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7"
+ integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+"@babel/plugin-proposal-class-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
+ integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-proposal-class-static-block@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020"
+ integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-proposal-dynamic-import@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
+ integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
+ integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
+ integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23"
+ integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
+ integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-numeric-separator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
+ integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7"
+ integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==
+ dependencies:
+ "@babel/compat-data" "^7.18.8"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.18.8"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
+ integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993"
+ integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-proposal-private-methods@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
+ integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-proposal-private-property-in-object@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503"
+ integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
+ integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-import-assertions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4"
+ integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
+ integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285"
+ integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-arrow-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe"
+ integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-async-to-generator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615"
+ integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==
+ dependencies:
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-remap-async-to-generator" "^7.18.6"
+
+"@babel/plugin-transform-block-scoped-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
+ integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-block-scoping@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d"
+ integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-classes@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20"
+ integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-compilation-targets" "^7.19.0"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-replace-supers" "^7.18.9"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e"
+ integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-destructuring@^7.18.13":
+ version "7.18.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5"
+ integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
+ integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-duplicate-keys@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
+ integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-exponentiation-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
+ integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-for-of@^7.18.8":
+ version "7.18.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1"
+ integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
+ integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
+ integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-member-expression-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
+ integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-modules-amd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21"
+ integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-commonjs@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
+ integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-simple-access" "^7.18.6"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-systemjs@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f"
+ integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-module-transforms" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-validator-identifier" "^7.18.6"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-umd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
+ integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888"
+ integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-transform-new-target@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
+ integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-object-super@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
+ integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.6"
+
+"@babel/plugin-transform-parameters@^7.18.8":
+ version "7.18.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a"
+ integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-property-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
+ integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-display-name@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415"
+ integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-jsx-development@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5"
+ integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==
+ dependencies:
+ "@babel/plugin-transform-react-jsx" "^7.18.6"
+
+"@babel/plugin-transform-react-jsx-self@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7"
+ integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-jsx-source@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz#06e9ae8a14d2bc19ce6e3c447d842032a50598fc"
+ integrity sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-react-jsx@^7.18.10", "@babel/plugin-transform-react-jsx@^7.18.6":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9"
+ integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/plugin-syntax-jsx" "^7.18.6"
+ "@babel/types" "^7.19.0"
+
+"@babel/plugin-transform-react-pure-annotations@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844"
+ integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-regenerator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73"
+ integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ regenerator-transform "^0.15.0"
+
+"@babel/plugin-transform-reserved-words@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a"
+ integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-shorthand-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
+ integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-spread@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6"
+ integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
+
+"@babel/plugin-transform-sticky-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
+ integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-template-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
+ integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-typeof-symbol@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
+ integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-typescript@^7.18.6":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.1.tgz#adcf180a041dcbd29257ad31b0c65d4de531ce8d"
+ integrity sha512-+ILcOU+6mWLlvCwnL920m2Ow3wWx3Wo8n2t5aROQmV55GZt+hOiLvBaa3DNzRjSEHa1aauRs4/YLmkCfFkhhRQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/plugin-syntax-typescript" "^7.18.6"
+
+"@babel/plugin-transform-unicode-escapes@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
+ integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-unicode-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
+ integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/preset-env@^7":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.1.tgz#9f04c916f9c0205a48ebe5cc1be7768eb1983f67"
+ integrity sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==
+ dependencies:
+ "@babel/compat-data" "^7.19.1"
+ "@babel/helper-compilation-targets" "^7.19.1"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-async-generator-functions" "^7.19.1"
+ "@babel/plugin-proposal-class-properties" "^7.18.6"
+ "@babel/plugin-proposal-class-static-block" "^7.18.6"
+ "@babel/plugin-proposal-dynamic-import" "^7.18.6"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
+ "@babel/plugin-proposal-json-strings" "^7.18.6"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
+ "@babel/plugin-proposal-numeric-separator" "^7.18.6"
+ "@babel/plugin-proposal-object-rest-spread" "^7.18.9"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-private-methods" "^7.18.6"
+ "@babel/plugin-proposal-private-property-in-object" "^7.18.6"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-import-assertions" "^7.18.6"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-transform-arrow-functions" "^7.18.6"
+ "@babel/plugin-transform-async-to-generator" "^7.18.6"
+ "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
+ "@babel/plugin-transform-block-scoping" "^7.18.9"
+ "@babel/plugin-transform-classes" "^7.19.0"
+ "@babel/plugin-transform-computed-properties" "^7.18.9"
+ "@babel/plugin-transform-destructuring" "^7.18.13"
+ "@babel/plugin-transform-dotall-regex" "^7.18.6"
+ "@babel/plugin-transform-duplicate-keys" "^7.18.9"
+ "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
+ "@babel/plugin-transform-for-of" "^7.18.8"
+ "@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-literals" "^7.18.9"
+ "@babel/plugin-transform-member-expression-literals" "^7.18.6"
+ "@babel/plugin-transform-modules-amd" "^7.18.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.18.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.19.0"
+ "@babel/plugin-transform-modules-umd" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
+ "@babel/plugin-transform-new-target" "^7.18.6"
+ "@babel/plugin-transform-object-super" "^7.18.6"
+ "@babel/plugin-transform-parameters" "^7.18.8"
+ "@babel/plugin-transform-property-literals" "^7.18.6"
+ "@babel/plugin-transform-regenerator" "^7.18.6"
+ "@babel/plugin-transform-reserved-words" "^7.18.6"
+ "@babel/plugin-transform-shorthand-properties" "^7.18.6"
+ "@babel/plugin-transform-spread" "^7.19.0"
+ "@babel/plugin-transform-sticky-regex" "^7.18.6"
+ "@babel/plugin-transform-template-literals" "^7.18.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.18.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.18.10"
+ "@babel/plugin-transform-unicode-regex" "^7.18.6"
+ "@babel/preset-modules" "^0.1.5"
+ "@babel/types" "^7.19.0"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
+ core-js-compat "^3.25.1"
+ semver "^6.3.0"
+
+"@babel/preset-modules@^0.1.5":
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
+ integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+"@babel/preset-react@^7":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d"
+ integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-react-display-name" "^7.18.6"
+ "@babel/plugin-transform-react-jsx" "^7.18.6"
+ "@babel/plugin-transform-react-jsx-development" "^7.18.6"
+ "@babel/plugin-transform-react-pure-annotations" "^7.18.6"
+
+"@babel/preset-typescript@^7":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399"
+ integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-typescript" "^7.18.6"
+
+"@babel/runtime@^7.8.4":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259"
+ integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
+ integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.18.10"
+ "@babel/types" "^7.18.10"
+
+"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347"
+ integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.19.0"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.19.1"
+ "@babel/types" "^7.19.0"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.4.4":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600"
+ integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==
+ dependencies:
+ "@babel/helper-string-parser" "^7.18.10"
+ "@babel/helper-validator-identifier" "^7.18.6"
+ to-fast-properties "^2.0.0"
+
+"@esbuild/android-arm@0.15.9":
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.9.tgz#7e1221604ab88ed5021ead74fa8cca4405e1e431"
+ integrity sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==
+
+"@esbuild/linux-loong64@0.15.9":
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz#b658a97babf1f40783354af7039b84c3fdfc3fc3"
+ integrity sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==
+
+"@jridgewell/gen-mapping@^0.1.0":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+ integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
+ integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
+"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+"@jridgewell/source-map@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb"
+ integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
+ integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@leichtgewicht/ip-codec@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b"
+ integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==
+
+"@types/body-parser@*":
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
+ integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
+ dependencies:
+ "@types/connect" "*"
+ "@types/node" "*"
+
+"@types/bonjour@^3.5.9":
+ version "3.5.10"
+ resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275"
+ integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/connect-history-api-fallback@^1.3.5":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
+ integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==
+ dependencies:
+ "@types/express-serve-static-core" "*"
+ "@types/node" "*"
+
+"@types/connect@*":
+ version "3.4.35"
+ resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
+ integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/eslint-scope@^3.7.3":
+ version "3.7.4"
+ resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
+ integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==
+ dependencies:
+ "@types/eslint" "*"
+ "@types/estree" "*"
+
+"@types/eslint@*":
+ version "8.4.6"
+ resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207"
+ integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==
+ dependencies:
+ "@types/estree" "*"
+ "@types/json-schema" "*"
+
+"@types/estree@*":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
+ integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
+
+"@types/estree@^0.0.51":
+ version "0.0.51"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
+ integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
+
+"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
+ version "4.17.31"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f"
+ integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+
+"@types/express@*", "@types/express@^4.17.13":
+ version "4.17.14"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c"
+ integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^4.17.18"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
+"@types/http-proxy@^1.17.8":
+ version "1.17.9"
+ resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a"
+ integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
+ version "7.0.11"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
+ integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
+
+"@types/mime@*":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10"
+ integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==
+
+"@types/node@*":
+ version "18.7.21"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.21.tgz#63ee6688070e456325b6748dc492a7b948593871"
+ integrity sha512-rLFzK5bhM0YPyCoTC8bolBjMk7bwnZ8qeZUBslBfjZQou2ssJdWslx9CZ8DGM+Dx7QXQiiTVZ/6QO6kwtHkZCA==
+
+"@types/qs@*":
+ version "6.9.7"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
+ integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
+
+"@types/range-parser@*":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
+ integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
+
+"@types/retry@0.12.0":
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
+ integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==
+
+"@types/serve-index@^1.9.1":
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278"
+ integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==
+ dependencies:
+ "@types/express" "*"
+
+"@types/serve-static@*", "@types/serve-static@^1.13.10":
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155"
+ integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==
+ dependencies:
+ "@types/mime" "*"
+ "@types/node" "*"
+
+"@types/sockjs@^0.3.33":
+ version "0.3.33"
+ resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f"
+ integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==
+ dependencies:
+ "@types/node" "*"
+
+"@types/ws@^8.5.1":
+ version "8.5.3"
+ resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d"
+ integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==
+ dependencies:
+ "@types/node" "*"
+
+"@vitejs/plugin-react@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.1.0.tgz#4c99df15e71d2630601bd3018093bdc787d40e55"
+ integrity sha512-am6rPyyU3LzUYne3Gd9oj9c4Rzbq5hQnuGXSMT6Gujq45Il/+bunwq3lrB7wghLkiF45ygMwft37vgJ/NE8IAA==
+ dependencies:
+ "@babel/core" "^7.18.13"
+ "@babel/plugin-transform-react-jsx" "^7.18.10"
+ "@babel/plugin-transform-react-jsx-development" "^7.18.6"
+ "@babel/plugin-transform-react-jsx-self" "^7.18.6"
+ "@babel/plugin-transform-react-jsx-source" "^7.18.6"
+ magic-string "^0.26.2"
+ react-refresh "^0.14.0"
+
+"@webassemblyjs/ast@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
+ integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
+ dependencies:
+ "@webassemblyjs/helper-numbers" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+
+"@webassemblyjs/floating-point-hex-parser@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
+ integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
+
+"@webassemblyjs/helper-api-error@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
+ integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
+
+"@webassemblyjs/helper-buffer@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
+ integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
+
+"@webassemblyjs/helper-numbers@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
+ integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
+ dependencies:
+ "@webassemblyjs/floating-point-hex-parser" "1.11.1"
+ "@webassemblyjs/helper-api-error" "1.11.1"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/helper-wasm-bytecode@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
+ integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
+
+"@webassemblyjs/helper-wasm-section@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
+ integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-buffer" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+
+"@webassemblyjs/ieee754@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
+ integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
+ integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
+ integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
+
+"@webassemblyjs/wasm-edit@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
+ integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-buffer" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/helper-wasm-section" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+ "@webassemblyjs/wasm-opt" "1.11.1"
+ "@webassemblyjs/wasm-parser" "1.11.1"
+ "@webassemblyjs/wast-printer" "1.11.1"
+
+"@webassemblyjs/wasm-gen@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
+ integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/ieee754" "1.11.1"
+ "@webassemblyjs/leb128" "1.11.1"
+ "@webassemblyjs/utf8" "1.11.1"
+
+"@webassemblyjs/wasm-opt@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
+ integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-buffer" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+ "@webassemblyjs/wasm-parser" "1.11.1"
+
+"@webassemblyjs/wasm-parser@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
+ integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/helper-api-error" "1.11.1"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/ieee754" "1.11.1"
+ "@webassemblyjs/leb128" "1.11.1"
+ "@webassemblyjs/utf8" "1.11.1"
+
+"@webassemblyjs/wast-printer@1.11.1":
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
+ integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.1"
+ "@xtuc/long" "4.2.2"
+
+"@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
+acorn-import-assertions@^1.7.6:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
+ integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
+
+acorn@^8.5.0, acorn@^8.7.1:
+ version "8.8.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
+ integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
+
+ajv-formats@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+ integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+ dependencies:
+ ajv "^8.0.0"
+
+ajv-keywords@^3.5.2:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv-keywords@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
+ integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+
+ajv@^6.12.4, ajv@^6.12.5:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ajv@^8.0.0, ajv@^8.8.0:
+ version "8.11.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f"
+ integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
+
+ansi-html-community@^0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
+ integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+anymatch@~3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+
+array-flatten@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+ integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
+
+babel-loader@^8.2.4:
+ version "8.2.5"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e"
+ integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==
+ dependencies:
+ find-cache-dir "^3.3.1"
+ loader-utils "^2.0.0"
+ make-dir "^3.1.0"
+ schema-utils "^2.6.5"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+ dependencies:
+ object.assign "^4.1.0"
+
+babel-plugin-polyfill-corejs2@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
+ integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
+ dependencies:
+ "@babel/compat-data" "^7.17.7"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ semver "^6.1.1"
+
+babel-plugin-polyfill-corejs3@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
+ integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ core-js-compat "^3.25.1"
+
+babel-plugin-polyfill-regenerator@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
+ integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+batch@0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+ integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==
+
+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==
+
+body-parser@1.20.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5"
+ integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==
+ dependencies:
+ bytes "3.1.2"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ on-finished "2.4.1"
+ qs "6.10.3"
+ raw-body "2.5.1"
+ type-is "~1.6.18"
+ unpipe "1.0.0"
+
+bonjour-service@^1.0.11:
+ version "1.0.14"
+ resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7"
+ integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==
+ dependencies:
+ array-flatten "^2.1.2"
+ dns-equal "^1.0.0"
+ fast-deep-equal "^3.1.3"
+ multicast-dns "^7.2.5"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^3.0.2, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4:
+ version "4.21.4"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
+ integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
+ dependencies:
+ caniuse-lite "^1.0.30001400"
+ electron-to-chromium "^1.4.251"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.9"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+ integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==
+
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
+caniuse-lite@^1.0.30001400:
+ version "1.0.30001412"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz#30f67d55a865da43e0aeec003f073ea8764d5d7c"
+ integrity sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==
+
+chalk@^2.0.0:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chokidar@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+chrome-trace-event@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+ integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+colorette@^2.0.10:
+ version "2.0.19"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
+ integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
+
+commander@^2.20.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
+
+compressible@~2.0.16:
+ version "2.0.18"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
+ integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
+ dependencies:
+ mime-db ">= 1.43.0 < 2"
+
+compression@^1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
+ integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
+ dependencies:
+ accepts "~1.3.5"
+ bytes "3.0.0"
+ compressible "~2.0.16"
+ debug "2.6.9"
+ on-headers "~1.0.2"
+ safe-buffer "5.1.2"
+ vary "~1.1.2"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+connect-history-api-fallback@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
+ integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==
+
+content-disposition@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
+content-type@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+convert-source-map@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
+
+cookie@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+
+core-js-compat@^3.25.1:
+ version "3.25.3"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.3.tgz#d6a442a03f4eade4555d4e640e6a06151dd95d38"
+ integrity sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==
+ dependencies:
+ browserslist "^4.21.4"
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+cross-spawn@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+debug@2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^4.1.0, debug@^4.1.1:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+default-gateway@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
+ integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
+ dependencies:
+ execa "^5.0.0"
+
+define-lazy-prop@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+ integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+
+define-properties@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
+ integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
+ dependencies:
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
+depd@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
+
+destroy@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+
+detect-node@^2.0.4:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
+ integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+
+dns-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+ integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==
+
+dns-packet@^5.2.2:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b"
+ integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==
+ dependencies:
+ "@leichtgewicht/ip-codec" "^2.0.1"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+
+electron-to-chromium@^1.4.251:
+ version "1.4.262"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.262.tgz#25715dfbae4c2e0640517cba184715241ecd8e63"
+ integrity sha512-Ckn5haqmGh/xS8IbcgK3dnwAVnhDyo/WQnklWn6yaMucYTq7NNxwlGE8ElzEOnonzRLzUCo2Ot3vUb2GYUF2Hw==
+
+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:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+
+enhanced-resolve@^5.10.0:
+ version "5.10.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6"
+ integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==
+ dependencies:
+ graceful-fs "^4.2.4"
+ tapable "^2.2.0"
+
+es-module-lexer@^0.9.0:
+ version "0.9.3"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
+ integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
+
+esbuild-android-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz#4a7eb320ca8d3a305f14792061fd9614ccebb7c0"
+ integrity sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==
+
+esbuild-android-arm64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz#c948e5686df20857ad361ec67e070d40d7cab985"
+ integrity sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==
+
+esbuild-darwin-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz#25f564fa4b39c1cec84dc46bce5634fdbce1d5e4"
+ integrity sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==
+
+esbuild-darwin-arm64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz#60faea3ed95d15239536aa88d06bb82b29278a86"
+ integrity sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==
+
+esbuild-freebsd-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz#0339ef1c90a919175e7816788224517896657a0e"
+ integrity sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==
+
+esbuild-freebsd-arm64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz#32abfc0be3ae3dd38e5a86a9beadbbcf592f1b57"
+ integrity sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==
+
+esbuild-linux-32@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz#93581348a4da7ed2b29bc5539f2605ad7fcee77b"
+ integrity sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==
+
+esbuild-linux-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz#0d171e7946c95d0d3ed4826026af2c5632d7dcc4"
+ integrity sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==
+
+esbuild-linux-arm64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz#9838795a3720cbe736d3bc20621bd366eac22f24"
+ integrity sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==
+
+esbuild-linux-arm@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz#dce96cd817bc7376f6af3967649c4ab1f2f79506"
+ integrity sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==
+
+esbuild-linux-mips64le@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz#0335a0739e61aa97cb9b4a018e3facfcca9cdcfd"
+ integrity sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==
+
+esbuild-linux-ppc64le@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz#18482afb95b8a705e2da0a59d7131bff221281f9"
+ integrity sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==
+
+esbuild-linux-riscv64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz#03b6f9708272c117006b9ce1c9ae8aab91b5a5b6"
+ integrity sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==
+
+esbuild-linux-s390x@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz#65fb645623d575780f155f0ee52935e62f9cca4f"
+ integrity sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==
+
+esbuild-netbsd-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz#7894297bb9e11f3d2f6f31efecd1be4e181f0d54"
+ integrity sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==
+
+esbuild-openbsd-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz#0f9d4c6b6772ae50d491d68ad4cc028300dda7c0"
+ integrity sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==
+
+esbuild-sunos-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz#c32b7ce574b08f814de810ce7c1e34b843768126"
+ integrity sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==
+
+esbuild-windows-32@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz#37a8f7cfccdb2177cd46613a1a1e1fcb419d36df"
+ integrity sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==
+
+esbuild-windows-64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz#5fe1e76fc13dd7f520febecaea110b6f1649c7b2"
+ integrity sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==
+
+esbuild-windows-arm64@0.15.9:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz#98504428f7ba7d2cfc11940be68ee1139173fdce"
+ integrity sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==
+
+esbuild@^0.15.6:
+ version "0.15.9"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.9.tgz#33fb18b67b85004b6f7616bec955ca4b3e58935d"
+ integrity sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==
+ optionalDependencies:
+ "@esbuild/android-arm" "0.15.9"
+ "@esbuild/linux-loong64" "0.15.9"
+ esbuild-android-64 "0.15.9"
+ esbuild-android-arm64 "0.15.9"
+ esbuild-darwin-64 "0.15.9"
+ esbuild-darwin-arm64 "0.15.9"
+ esbuild-freebsd-64 "0.15.9"
+ esbuild-freebsd-arm64 "0.15.9"
+ esbuild-linux-32 "0.15.9"
+ esbuild-linux-64 "0.15.9"
+ esbuild-linux-arm "0.15.9"
+ esbuild-linux-arm64 "0.15.9"
+ esbuild-linux-mips64le "0.15.9"
+ esbuild-linux-ppc64le "0.15.9"
+ esbuild-linux-riscv64 "0.15.9"
+ esbuild-linux-s390x "0.15.9"
+ esbuild-netbsd-64 "0.15.9"
+ esbuild-openbsd-64 "0.15.9"
+ esbuild-sunos-64 "0.15.9"
+ esbuild-windows-32 "0.15.9"
+ esbuild-windows-64 "0.15.9"
+ esbuild-windows-arm64 "0.15.9"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+eslint-scope@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
+
+eventemitter3@^4.0.0:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
+events@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+express@^4.17.3:
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
+ integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
+ dependencies:
+ accepts "~1.3.8"
+ array-flatten "1.1.1"
+ body-parser "1.20.0"
+ content-disposition "0.5.4"
+ content-type "~1.0.4"
+ cookie "0.5.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "2.0.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "1.2.0"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.7"
+ qs "6.10.3"
+ range-parser "~1.2.1"
+ safe-buffer "5.2.1"
+ send "0.18.0"
+ serve-static "1.15.0"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+faye-websocket@^0.11.3:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
+ integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
+ dependencies:
+ websocket-driver ">=0.5.1"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+finalhandler@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ statuses "2.0.1"
+ unpipe "~1.0.0"
+
+find-cache-dir@^3.3.1:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
+ integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
+find-up@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+follow-redirects@^1.0.0:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
+ integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
+
+fs-monkey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3"
+ integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+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"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
+ integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.3"
+
+get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^7.1.3:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
+ version "4.2.10"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
+ integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
+
+handle-thing@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
+ integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-property-descriptors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
+ integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
+ dependencies:
+ get-intrinsic "^1.1.1"
+
+has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+hpack.js@^2.1.6:
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+ integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==
+ dependencies:
+ inherits "^2.0.1"
+ obuf "^1.0.0"
+ readable-stream "^2.0.1"
+ wbuf "^1.1.0"
+
+html-entities@^2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46"
+ integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==
+
+http-deceiver@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+ integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
+
+http-errors@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+ dependencies:
+ depd "2.0.0"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ toidentifier "1.0.1"
+
+http-errors@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
+
+http-parser-js@>=0.5.1:
+ version "0.5.8"
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3"
+ integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==
+
+http-proxy-middleware@^2.0.3:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
+ integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
+ dependencies:
+ "@types/http-proxy" "^1.17.8"
+ http-proxy "^1.18.1"
+ is-glob "^4.0.1"
+ is-plain-obj "^3.0.0"
+ micromatch "^4.0.2"
+
+http-proxy@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
+ dependencies:
+ eventemitter3 "^4.0.0"
+ follow-redirects "^1.0.0"
+ requires-port "^1.0.0"
+
+human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+iconv-lite@0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+ipaddr.js@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0"
+ integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-core-module@^2.9.0:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed"
+ integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==
+ dependencies:
+ has "^1.0.3"
+
+is-docker@^2.0.0, is-docker@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+is-glob@^4.0.1, is-glob@~4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-plain-obj@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
+ integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
+
+is-stream@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
+
+is-wsl@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
+isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+jest-worker@^27.4.5:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
+ integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
+ dependencies:
+ "@types/node" "*"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
+
+json-parse-even-better-errors@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+json5@^2.1.2, json5@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
+ integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
+
+loader-runner@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
+ integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
+
+loader-utils@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
+ integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+
+loose-envify@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+magic-string@^0.26.2:
+ version "0.26.4"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.4.tgz#3d057d3d0234c3b179aa3f421b33fe5d8a4044a8"
+ integrity sha512-e5uXtVJ22aEpK9u1+eQf0fSxHeqwyV19K+uGnlROCxUhzwRip9tBsaMViK/0vC3viyPd5Gtucp3UmEp/Q2cPTQ==
+ dependencies:
+ sourcemap-codec "^1.4.8"
+
+make-dir@^3.0.2, make-dir@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
+
+memfs@^3.4.3:
+ version "3.4.7"
+ resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a"
+ integrity sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==
+ dependencies:
+ fs-monkey "^1.0.3"
+
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
+micromatch@^4.0.2:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
+mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+minimalistic-assert@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimatch@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+multicast-dns@^7.2.5:
+ version "7.2.5"
+ resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced"
+ integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==
+ dependencies:
+ dns-packet "^5.2.2"
+ thunky "^1.0.2"
+
+nanoid@^3.3.4:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
+ integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
+
+negotiator@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+node-forge@^1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
+ integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
+
+node-releases@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
+ integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+object-inspect@^1.9.0:
+ version "1.12.2"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
+ integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
+
+object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.0:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
+ integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.4"
+ has-symbols "^1.0.3"
+ object-keys "^1.1.1"
+
+obuf@^1.0.0, obuf@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
+ integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
+
+on-finished@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
+on-headers@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+ integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+open@^8.0.9:
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
+ integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
+ dependencies:
+ define-lazy-prop "^2.0.0"
+ is-docker "^2.1.1"
+ is-wsl "^2.2.0"
+
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-retry@^4.5.0:
+ version "4.6.2"
+ resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16"
+ integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==
+ dependencies:
+ "@types/retry" "0.12.0"
+ retry "^0.13.1"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+parseurl@~1.3.2, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pkg-dir@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+postcss@^8.4.16:
+ version "8.4.16"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
+ integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+proxy-addr@~2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
+punycode@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+qs@6.10.3:
+ version "6.10.3"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
+ integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
+ dependencies:
+ side-channel "^1.0.4"
+
+randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
+range-parser@^1.2.1, range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
+ integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
+ dependencies:
+ bytes "3.1.2"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+react-dom@18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
+ integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
+ dependencies:
+ loose-envify "^1.1.0"
+ scheduler "^0.23.0"
+
+react-refresh@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
+ integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==
+
+react@18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
+ integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+readable-stream@^2.0.1:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readable-stream@^3.0.6:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+regenerate-unicode-properties@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
+ integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
+ dependencies:
+ regenerate "^1.4.2"
+
+regenerate@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+regenerator-runtime@^0.13.4:
+ version "0.13.9"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+ integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
+regenerator-transform@^0.15.0:
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537"
+ integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+regexpu-core@^5.1.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139"
+ integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==
+ dependencies:
+ regenerate "^1.4.2"
+ regenerate-unicode-properties "^10.1.0"
+ regjsgen "^0.7.1"
+ regjsparser "^0.9.1"
+ unicode-match-property-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.0.0"
+
+regjsgen@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6"
+ integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==
+
+regjsparser@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
+ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
+ dependencies:
+ jsesc "~0.5.0"
+
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
+
+resolve@^1.14.2, resolve@^1.22.1:
+ version "1.22.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
+ integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
+ dependencies:
+ is-core-module "^2.9.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+retry@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+ integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
+
+rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+rollup@~2.78.0:
+ version "2.78.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f"
+ integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+scheduler@^0.23.0:
+ version "0.23.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
+ integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
+ dependencies:
+ loose-envify "^1.1.0"
+
+schema-utils@^2.6.5:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
+ integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
+ dependencies:
+ "@types/json-schema" "^7.0.5"
+ ajv "^6.12.4"
+ ajv-keywords "^3.5.2"
+
+schema-utils@^3.1.0, schema-utils@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
+ integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
+ dependencies:
+ "@types/json-schema" "^7.0.8"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
+schema-utils@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7"
+ integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ ajv "^8.8.0"
+ ajv-formats "^2.1.1"
+ ajv-keywords "^5.0.0"
+
+select-hose@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+ integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==
+
+selfsigned@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61"
+ integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==
+ dependencies:
+ node-forge "^1"
+
+semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+send@0.18.0:
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
+ integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
+ dependencies:
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ mime "1.6.0"
+ ms "2.1.3"
+ on-finished "2.4.1"
+ range-parser "~1.2.1"
+ statuses "2.0.1"
+
+serialize-javascript@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
+ integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
+ dependencies:
+ randombytes "^2.1.0"
+
+serve-index@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==
+ dependencies:
+ accepts "~1.3.4"
+ batch "0.6.1"
+ debug "2.6.9"
+ escape-html "~1.0.3"
+ http-errors "~1.6.2"
+ mime-types "~2.1.17"
+ parseurl "~1.3.2"
+
+serve-static@1.15.0:
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
+ integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.18.0"
+
+setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
+
+setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
+signal-exit@^3.0.3:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+sockjs@^0.3.24:
+ version "0.3.24"
+ resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
+ integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
+ dependencies:
+ faye-websocket "^0.11.3"
+ uuid "^8.3.2"
+ websocket-driver "^0.7.4"
+
+source-map-js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@^0.6.0:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+sourcemap-codec@^1.4.8:
+ version "1.4.8"
+ resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+ integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+
+spdy-transport@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
+ integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
+ dependencies:
+ debug "^4.1.0"
+ detect-node "^2.0.4"
+ hpack.js "^2.1.6"
+ obuf "^1.1.2"
+ readable-stream "^3.0.6"
+ wbuf "^1.7.3"
+
+spdy@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
+ integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
+ dependencies:
+ debug "^4.1.0"
+ handle-thing "^2.0.0"
+ http-deceiver "^1.2.7"
+ select-hose "^2.0.0"
+ spdy-transport "^3.0.0"
+
+statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
+"statuses@>= 1.4.0 < 2":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+ integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^8.0.0:
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+tapable@^2.1.1, tapable@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
+ integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
+
+terser-webpack-plugin@^5.1.3:
+ version "5.3.6"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c"
+ integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.14"
+ jest-worker "^27.4.5"
+ schema-utils "^3.1.1"
+ serialize-javascript "^6.0.0"
+ terser "^5.14.1"
+
+terser@^5.14.1:
+ version "5.15.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425"
+ integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.2"
+ acorn "^8.5.0"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
+thunky@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
+ integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+typescript@^4.7.4:
+ version "4.8.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88"
+ integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==
+
+unicode-canonical-property-names-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
+unicode-match-property-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+ integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^2.0.0"
+ unicode-property-aliases-ecmascript "^2.0.0"
+
+unicode-match-property-value-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
+ integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
+
+unicode-property-aliases-ecmascript@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
+ integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
+
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+
+update-browserslist-db@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18"
+ integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
+
+uuid@^8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+
+vite@3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.3.tgz#b2a0821c11aae124bb7618f8036913c689afcc59"
+ integrity sha512-/3XWiktaopByM5bd8dqvHxRt5EEgRikevnnrpND0gRfNkrMrPaGGexhtLCzv15RcCMtV2CLw+BPas8YFeSG0KA==
+ dependencies:
+ esbuild "^0.15.6"
+ postcss "^8.4.16"
+ resolve "^1.22.1"
+ rollup "~2.78.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+watchpack@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
+ integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+wbuf@^1.1.0, wbuf@^1.7.3:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+ integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
+ dependencies:
+ minimalistic-assert "^1.0.0"
+
+webpack-dev-middleware@^5.3.1:
+ version "5.3.3"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f"
+ integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==
+ dependencies:
+ colorette "^2.0.10"
+ memfs "^3.4.3"
+ mime-types "^2.1.31"
+ range-parser "^1.2.1"
+ schema-utils "^4.0.0"
+
+webpack-dev-server@^4:
+ version "4.11.1"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz#ae07f0d71ca0438cf88446f09029b92ce81380b5"
+ integrity sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==
+ dependencies:
+ "@types/bonjour" "^3.5.9"
+ "@types/connect-history-api-fallback" "^1.3.5"
+ "@types/express" "^4.17.13"
+ "@types/serve-index" "^1.9.1"
+ "@types/serve-static" "^1.13.10"
+ "@types/sockjs" "^0.3.33"
+ "@types/ws" "^8.5.1"
+ ansi-html-community "^0.0.8"
+ bonjour-service "^1.0.11"
+ chokidar "^3.5.3"
+ colorette "^2.0.10"
+ compression "^1.7.4"
+ connect-history-api-fallback "^2.0.0"
+ default-gateway "^6.0.3"
+ express "^4.17.3"
+ graceful-fs "^4.2.6"
+ html-entities "^2.3.2"
+ http-proxy-middleware "^2.0.3"
+ ipaddr.js "^2.0.1"
+ open "^8.0.9"
+ p-retry "^4.5.0"
+ rimraf "^3.0.2"
+ schema-utils "^4.0.0"
+ selfsigned "^2.1.1"
+ serve-index "^1.9.1"
+ sockjs "^0.3.24"
+ spdy "^4.0.2"
+ webpack-dev-middleware "^5.3.1"
+ ws "^8.4.2"
+
+webpack-sources@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
+ integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
+
+webpack@^5:
+ version "5.74.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980"
+ integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==
+ dependencies:
+ "@types/eslint-scope" "^3.7.3"
+ "@types/estree" "^0.0.51"
+ "@webassemblyjs/ast" "1.11.1"
+ "@webassemblyjs/wasm-edit" "1.11.1"
+ "@webassemblyjs/wasm-parser" "1.11.1"
+ acorn "^8.7.1"
+ acorn-import-assertions "^1.7.6"
+ browserslist "^4.14.5"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^5.10.0"
+ es-module-lexer "^0.9.0"
+ eslint-scope "5.1.1"
+ events "^3.2.0"
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.2.9"
+ json-parse-even-better-errors "^2.3.1"
+ loader-runner "^4.2.0"
+ mime-types "^2.1.27"
+ neo-async "^2.6.2"
+ schema-utils "^3.1.0"
+ tapable "^2.1.1"
+ terser-webpack-plugin "^5.1.3"
+ watchpack "^2.4.0"
+ webpack-sources "^3.2.3"
+
+websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
+ integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
+ dependencies:
+ http-parser-js ">=0.5.1"
+ safe-buffer ">=5.1.0"
+ websocket-extensions ">=0.1.1"
+
+websocket-extensions@>=0.1.1:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
+ integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
+
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+ws@^8.4.2:
+ version "8.9.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e"
+ integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==
diff --git a/system-tests/projects/runner-e2e-specs/package.json b/system-tests/projects/runner-e2e-specs/package.json
new file mode 100644
index 000000000000..f9ba6239dbc5
--- /dev/null
+++ b/system-tests/projects/runner-e2e-specs/package.json
@@ -0,0 +1,3 @@
+{
+ "projectFixtureDirectory": "runner-specs"
+}
\ No newline at end of file
diff --git a/system-tests/test/component_testing_spec.ts b/system-tests/test/component_testing_spec.ts
index d1f46925e392..af90b21982bd 100644
--- a/system-tests/test/component_testing_spec.ts
+++ b/system-tests/test/component_testing_spec.ts
@@ -113,7 +113,7 @@ describe(`Angular CLI major versions`, () => {
systemTests.setup()
for (const majorVersion of ANGULAR_MAJOR_VERSIONS) {
- let spec = 'src/**/*.cy.ts'
+ let spec = 'src/**/*.cy.ts,!src/app/errors.cy.ts'
if (majorVersion === '13') {
spec = `${spec},!src/app/components/standalone.component.cy.ts`
@@ -144,7 +144,7 @@ describe('svelte component testing', () => {
systemTests.it(`svelte + ${bundler}`, {
project: `svelte-${bundler}`,
testingType: 'component',
- spec: '**/*.cy.js',
+ spec: '**/*.cy.js,!src/errors.cy.js',
browser: 'chrome',
expectedExitCode: 0,
})
diff --git a/system-tests/test/vite_dev_server_fresh_spec.ts b/system-tests/test/vite_dev_server_fresh_spec.ts
index d1592cb98aad..273777af51c9 100644
--- a/system-tests/test/vite_dev_server_fresh_spec.ts
+++ b/system-tests/test/vite_dev_server_fresh_spec.ts
@@ -17,7 +17,7 @@ describe('@cypress/vite-dev-server', function () {
testingType: 'component',
browser: 'chrome',
snapshot: true,
- expectedExitCode: 3,
+ expectedExitCode: 7,
onStdout: (stdout) => {
return stdout.replace(/http:\/\/localhost:\d+/g, 'http://localhost:xxxx')
},
diff --git a/system-tests/test/webpack_dev_server_fresh_spec.ts b/system-tests/test/webpack_dev_server_fresh_spec.ts
index 85c06e1ef323..592a7c975a17 100644
--- a/system-tests/test/webpack_dev_server_fresh_spec.ts
+++ b/system-tests/test/webpack_dev_server_fresh_spec.ts
@@ -18,7 +18,7 @@ describe('@cypress/webpack-dev-server', function () {
testingType: 'component',
browser: 'chrome',
snapshot: true,
- expectedExitCode: 3,
+ expectedExitCode: 7,
onStdout: (stdout) => {
return systemTests.normalizeWebpackErrors(stripAnsi(stdout))
},