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)) },