diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2d66311bf1..c28820cc7b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -40,8 +40,6 @@ /packages/rewriter/ @cypress-io/end-to-end /packages/root/ @cypress-io/end-to-end /packages/runner/ @cypress-io/end-to-end -/packages/runner-ct/ @cypress-io/component-testing -/packages/runner-shared/ @cypress-io/end-to-end /packages/server/ @cypress-io/end-to-end /packages/socket/ @cypress-io/end-to-end /packages/static/ @cypress-io/end-to-end diff --git a/.gitignore b/.gitignore index 04ed01aea4..5f8a277767 100644 --- a/.gitignore +++ b/.gitignore @@ -78,9 +78,6 @@ system-tests/lib/fixtureDirs.ts # from npm/webpack-dev-server /npm/webpack-dev-server/cypress/videos -# from runner-ct -/packages/runner-ct/cypress/screenshots - # from errors /packages/errors/__snapshot-images__ /packages/errors/__snapshot-md__ diff --git a/.vscode/terminals.json b/.vscode/terminals.json index e154b4233b..126e4974c2 100644 --- a/.vscode/terminals.json +++ b/.vscode/terminals.json @@ -83,13 +83,6 @@ "cwd": "[cwd]/packages/runner", "command": "yarn watch" }, - { - "name": "packages/runner-ct watch", - "focus": true, - "onlySingle": true, - "cwd": "[cwd]/packages/runner-ct", - "command": "yarn watch" - }, { "name": "packages/driver cypress open", "focus": true, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 96f80861f4..c81b48eb62 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -271,8 +271,6 @@ Here is a list of the core packages in this repository with a short description, | [reporter](./packages/reporter) | `@packages/reporter` | The reporter shows the running results of the tests (The Command Log UI). | | [root](./packages/root) | `@packages/root` | Dummy package pointing at the root of the repository. | | [runner](./packages/runner) | `@packages/runner` | The runner is the minimal "chrome" around the user's application under test. | - | [runner-ct](./packages/runner-ct) | `@packages/runner-ct` | The runner for component testing | - | [runner-shared](./packages/runner-shared) | `@packages/runner-shared` | The shared components between the `runner` and the `runner-ct` packages | | [server](./packages/server) | `@packages/server` | The <3 of Cypress. This orchestrates everything. The backend node process. | | [server-ct](./packages/server-ct) | `@packages/server-ct` | Some Component Testing specific overrides. Mostly extends functionality from `@packages/server` | | [socket](./packages/socket) | `@packages/socket` | A wrapper around socket.io to provide common libraries. | diff --git a/circle.yml b/circle.yml index d85965114f..1aeef1b9fa 100644 --- a/circle.yml +++ b/circle.yml @@ -1607,7 +1607,7 @@ jobs: percy: type: boolean default: false - parallelism: 7 + parallelism: 2 steps: - run-new-ui-tests: browser: chrome diff --git a/packages/app/README.md b/packages/app/README.md index d853a4e339..cca5801ce7 100644 --- a/packages/app/README.md +++ b/packages/app/README.md @@ -91,13 +91,13 @@ The terminology can get a bit confusing as Vue Router's `params` are not the que ## Using existing, Vite-incompatible modules -Some of our modules, like `@packages/reporter`, `@packages/driver` and `@packages/runner-shared` cannot be easily +Some of our modules, like `@packages/reporter`, `@packages/driver` and `@packages/runner` cannot be easily used with Vite due to circular dependencies and modules that do not have compatible ESM builds. To work around this, when consuming existing code, it is bundled with webpack and made available under the `window.UnifiedRunner` namespace. It is injected via [`injectBundle`](./src/runner/injectBundle.ts). -To add more code to the bundle, add it in the bundle root, `@packages/runner-ct/src/main.tsx` and attach it to +To add more code to the bundle, add it in the bundle root, `@packages/runner/src/main.tsx` and attach it to `window.UnifiedRunner`. As a rule of thumb, avoid importing from the older, webpack based modules into this package. Instead, if you want to consume code from those older, webpack bundled modules, you should add them to the webpack root and consume them via `window.UnifiedRunner`. Ideally, update [`index.d.ts`](./index.d.ts) to add the types, as well. diff --git a/packages/app/index.d.ts b/packages/app/index.d.ts index 74a41b5d1f..f3090246d1 100644 --- a/packages/app/index.d.ts +++ b/packages/app/index.d.ts @@ -51,11 +51,11 @@ declare global { /** * Any React components or general code needed from - * runner-shared, reporter or driver are also bundled with + * runner, reporter or driver are also bundled with * webpack and made available via the window.UnifedRunner namespace. * * We cannot import the correct types, because this causes the linter and type - * checker to run on runner-shared and reporter, and it blows up. + * checker to run on runner and reporter, and it blows up. */ Reporter: any shortcuts: { diff --git a/packages/app/src/runner/index.ts b/packages/app/src/runner/index.ts index abe1747ee1..1c5887d241 100644 --- a/packages/app/src/runner/index.ts +++ b/packages/app/src/runner/index.ts @@ -8,7 +8,7 @@ * - reporter * which are built with React and bundle with webpack. * - * The entry point for the webpack bundle is `runner-ct/main.tsx`. + * The entry point for the webpack bundle is `runner/main.tsx`. * Any time you need to consume some existing code, add it to the `window.UnifiedRunner` * namespace there, and access it with `window.UnifiedRunner`. * diff --git a/packages/driver/package.json b/packages/driver/package.json index 80b664d16f..b3b6bb6fd5 100644 --- a/packages/driver/package.json +++ b/packages/driver/package.json @@ -22,7 +22,6 @@ "@packages/network": "0.0.0-development", "@packages/rewriter": "0.0.0-development", "@packages/runner": "0.0.0-development", - "@packages/runner-shared": "0.0.0-development", "@packages/server": "0.0.0-development", "@packages/socket": "0.0.0-development", "@packages/ts": "0.0.0-development", diff --git a/packages/driver/src/dom/blackout.ts b/packages/driver/src/dom/blackout.ts index 00744496c3..e6e07263a1 100644 --- a/packages/driver/src/dom/blackout.ts +++ b/packages/driver/src/dom/blackout.ts @@ -1,5 +1,5 @@ import $ from 'jquery' -import $dimensions from '@packages/runner-shared/src/dimensions' +import $dimensions from '@packages/runner/src/dom/dimensions' const resetStyles = ` border: none !important; diff --git a/packages/resolve-dist/lib/index.ts b/packages/resolve-dist/lib/index.ts index dff058906d..32840ce388 100644 --- a/packages/resolve-dist/lib/index.ts +++ b/packages/resolve-dist/lib/index.ts @@ -2,7 +2,7 @@ import path from 'path' let fs: typeof import('fs-extra') -export type RunnerPkg = 'app' | 'runner' | 'runner-ct' +export type RunnerPkg = 'app' | 'runner' type FoldersWithDist = 'static' | 'driver' | RunnerPkg | 'launchpad' diff --git a/packages/runner-ct/.eslintrc.json b/packages/runner-ct/.eslintrc.json deleted file mode 100644 index e9a3358d11..0000000000 --- a/packages/runner-ct/.eslintrc.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "plugins": [ - "cypress", - "@cypress/dev" - ], - "extends": [ - "plugin:@cypress/dev/general", - "plugin:@cypress/dev/tests", - "plugin:@cypress/dev/react", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "../reporter/src/.eslintrc.json" - ], - "parser": "@typescript-eslint/parser", - "env": { - "cypress/globals": true - }, - "rules": { - "react/display-name": "off", - "react/function-component-definition": [ - "error", - { - "namedComponents": "arrow-function", - "unnamedComponents": "arrow-function" - } - ], - "react/jsx-boolean-value": [ - "error", - "always" - ], - "react/jsx-closing-bracket-location": [ - "error", - "line-aligned" - ], - "react/jsx-closing-tag-location": "error", - "react/jsx-curly-brace-presence": [ - "error", - { - "props": "never", - "children": "never" - } - ], - "react/jsx-curly-newline": "error", - "react/jsx-filename-extension": [ - "warn", - { - "extensions": [ - ".js", - ".jsx", - ".tsx" - ] - } - ], - "react/jsx-first-prop-new-line": "error", - "react/jsx-max-props-per-line": [ - "error", - { - "maximum": 1, - "when": "multiline" - } - ], - "react/jsx-no-bind": [ - "error", - { - "ignoreDOMComponents": true - } - ], - "react/jsx-no-useless-fragment": "error", - "react/jsx-one-expression-per-line": [ - "error", - { - "allow": "literal" - } - ], - "react/jsx-sort-props": [ - "error", - { - "callbacksLast": true, - "ignoreCase": true, - "noSortAlphabetically": true, - "reservedFirst": true - } - ], - "react/jsx-tag-spacing": [ - "error", - { - "closingSlash": "never", - "beforeSelfClosing": "always" - } - ], - "react/jsx-wrap-multilines": [ - "error", - { - "declaration": "parens-new-line", - "assignment": "parens-new-line", - "return": "parens-new-line", - "arrow": "parens-new-line", - "condition": "parens-new-line", - "logical": "parens-new-line", - "prop": "parens-new-line" - } - ], - "react/no-array-index-key": "error", - "react/no-unescaped-entities": "off", - "react/prop-types": "off", - "quote-props": [ - "error", - "as-needed" - ] - }, - "overrides": [ - { - "files": [ - "lib/*" - ], - "rules": { - "no-console": 1 - } - }, - { - "files": [ - "**/*.json" - ], - "rules": { - "quotes": "off", - "comma-dangle": "off" - } - }, - { - "files": "*.tsx", - "rules": { - "no-unused-vars": "off", - "react/jsx-no-bind": "off" - } - } - ] -} diff --git a/packages/runner-ct/.gitignore b/packages/runner-ct/.gitignore deleted file mode 100644 index 4068db97ef..0000000000 --- a/packages/runner-ct/.gitignore +++ /dev/null @@ -1 +0,0 @@ -cypress/videos/* \ No newline at end of file diff --git a/packages/runner-ct/README.md b/packages/runner-ct/README.md deleted file mode 100644 index 1bd7c8f7aa..0000000000 --- a/packages/runner-ct/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Runner CT - -This is an old package, deprecated in favor of `@packages/app`. It has two remaining responsibilities before it can be entirely removed: - -1. Bundles `@packages/reporter` and `@packages/driver` via webpack. Once those can be directly imported to `@packages/app`, we can remove this. -2. Bundles styles for `@packages/reporter`, loaded in `main.scss`. Ideally, reporter should import its own styles. \ No newline at end of file diff --git a/packages/runner-ct/package.json b/packages/runner-ct/package.json deleted file mode 100644 index 70bfa8c437..0000000000 --- a/packages/runner-ct/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "@packages/runner-ct", - "version": "0.0.0-development", - "private": true, - "browser": "src/index.js", - "scripts": { - "build": "node ../../scripts/run-webpack", - "build-prod": "cross-env NODE_ENV=production yarn build && tsc", - "clean-deps": "rimraf node_modules", - "cypress:open": "ts-node ../../scripts/cypress.js open --component --project .", - "cypress:run": "ts-node ../../scripts/cypress.js run --component --project .", - "postinstall": "echo '@packages/runner needs: yarn build'", - "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json src", - "test": "ts-node ../../scripts/cypress.js run --component --project .", - "watch": "node ../../scripts/run-webpack --watch --progress --config webpack.config.ts" - }, - "dependencies": {}, - "devDependencies": { - "@babel/core": "^7.12.3", - "@babel/preset-env": "^7.12.1", - "@cypress/react-tooltip": "0.5.3", - "@fortawesome/free-regular-svg-icons": "5.15.2", - "@fortawesome/react-fontawesome": "^0.1.17", - "@packages/driver": "0.0.0-development", - "@packages/icons": "0.0.0-development", - "@types/http-proxy": "1.17.4", - "@types/node": "14.14.31", - "@types/sockjs-client": "1.1.0", - "babel-loader": "8.1.0", - "bluebird": "3.5.3", - "cash-dom": "^8.1.0", - "chai": "^4.2.0", - "classnames": "2.3.1", - "clean-webpack-plugin": "^3.0.0", - "cypress-real-events": "1.6.0", - "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-react": "^7.22.0", - "eslint-plugin-react-hooks": "^4.2.0", - "express": "^4.17.1", - "fuzzysort": "^1.1.4", - "hotkeys-js": "3.8.2", - "html-webpack-plugin": "^4.5.0", - "koa": "^2.13.0", - "mobx": "5.15.4", - "mobx-react": "6.1.8", - "mocha": "^8.1.3", - "nanoid": "3.1.31", - "react": "16.8.6", - "react-devtools-inline": "^4.10.1", - "react-dom": "16.8.6", - "react-split-pane": "^0.1.92", - "rimraf": "3.0.2", - "sass": "1.44.0", - "sass-loader": "^10.0.3", - "sockjs-client": "^1.5.0", - "strip-ansi": "6.0.0", - "ts-loader": "^8.0.5", - "ts-node": "^10.2.1", - "watch": "^1.0.2", - "webpack": "^4.44.2" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0", - "webpack-dev-middleware": "*" - }, - "files": [ - "dist" - ] -} diff --git a/packages/runner-ct/src/SpecList/components/SearchSpec.scss b/packages/runner-ct/src/SpecList/components/SearchSpec.scss deleted file mode 100644 index f048279479..0000000000 --- a/packages/runner-ct/src/SpecList/components/SearchSpec.scss +++ /dev/null @@ -1,36 +0,0 @@ -@use '../../variables.scss' as *; - -.specs-list-search-input-container { - display: flex; - justify-content: flex-start; - align-items: center; - position: sticky; - top: 0; - width: 100%; - padding: 8px; - box-sizing: border-box; - background-color: white; - box-shadow: $shadow-xs; - z-index: 1; - - input { - width: 100%; - font-size: 18px; - height: 32px; - color: #848484; - border-radius: 6px; - border: 1px solid #E8E8EC; - padding: 0 8px 0 16px; - - - &::placeholder { - color: #B4B5BC; - } - - // avoid default focus outline because of input border radius - &:focus { - outline: none; - box-shadow: 0px 0px 2px #0012ff; - } - } -} diff --git a/packages/runner-ct/src/app/KeyboardHelper.scss b/packages/runner-ct/src/app/KeyboardHelper.scss deleted file mode 100644 index a2a154293c..0000000000 --- a/packages/runner-ct/src/app/KeyboardHelper.scss +++ /dev/null @@ -1,43 +0,0 @@ -.keyboard-helper-container { - display: flex; - align-items: center; - justify-content: center; - height: 100%; - background-color: white; - - .keyboard-helper { - padding: 8px 32px; - color: #555; - // background: white; - font-family: "Mulish", "Helvetica Neue", "Arial", sans-serif; - font-size: 13px; - width: 224px; - - .keyboard-shortcut { - display: flex; - margin-top: 8px; - height: 23px; - justify-content: space-between; - - .shortcut { - display: flex; - - .key { - display: flex; - font-family: sans-serif; // display keys symbols correctly - justify-content: center; - align-items: center; - border: 1px solid rgba(255, 255, 255, 0.4); - height: 23px; - min-width: 23px; - margin-right: 4px; - padding: 0px 4px; - font-size: 0.8125rem; - border-radius: 4px; - pointer-events: none; - background-color: #ddd; - } - } - } - } -} \ No newline at end of file diff --git a/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts b/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts deleted file mode 100644 index 132b232e89..0000000000 --- a/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/NoSpec.scss b/packages/runner-ct/src/app/NoSpec.scss deleted file mode 100644 index c38a90a558..0000000000 --- a/packages/runner-ct/src/app/NoSpec.scss +++ /dev/null @@ -1,36 +0,0 @@ -.no-spec { - display: flex; - justify-content: space-around; - align-items: center; - height: 100%; - flex-direction: column; - color: #555; - background: white; - font-family: "Mulish", "Helvetica Neue", "Arial", sans-serif; - font-size: 13px; - - .no-spec-content-container { - display: flex; - flex-basis: 45%; - flex-direction: column; - align-items: center; - - a { - color: #3386D4; - cursor: pointer; - - &:hover { - text-decoration: underline; - } - } - - .no-spec-title { - margin-top: 16px; - margin-bottom: 8px; - } - - .no-spec-custom-children { - margin-top: 32px; - } - } -} diff --git a/packages/runner-ct/src/app/NoSpec.scss.d.ts b/packages/runner-ct/src/app/NoSpec.scss.d.ts deleted file mode 100644 index 132b232e89..0000000000 --- a/packages/runner-ct/src/app/NoSpec.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/ReporterHeader.module.scss b/packages/runner-ct/src/app/ReporterHeader.module.scss deleted file mode 100644 index b285a9f589..0000000000 --- a/packages/runner-ct/src/app/ReporterHeader.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use '../variables' as *; - -.ctReporterHeader { - min-height: $runner-ct-header-height; -} \ No newline at end of file diff --git a/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts b/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts deleted file mode 100644 index c353b869f4..0000000000 --- a/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'ctReporterHeader': string; - 'display-none': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/RunnerCt.module.scss b/packages/runner-ct/src/app/RunnerCt.module.scss deleted file mode 100644 index 6a20da3239..0000000000 --- a/packages/runner-ct/src/app/RunnerCt.module.scss +++ /dev/null @@ -1,134 +0,0 @@ -@use '../variables' as *; - -$box-shadow-closest: 0px 0px 5px rgba(0, 0, 0, 0.4); - -.app { - display: flex; - background: white; -} - -.appWrapper { - position: relative; - height: 100vh; - width: 100%; -} - -.appWrapperScreenshotting { - margin-inline: 0; -} - -.runnerCt { - left: 0; - - header { - position: static; - top: unset; - left: unset; - right: unset; - bottom: unset; - min-height: $runner-ct-header-height; - } - - .size-container { - transform-origin: 0 0; - } -} - -.noSpecAut { - background: white; -} - -.screenshotting { - box-shadow: none; -} - -.leftNav { - background: $left-nav-background-color; - z-index: 4; - border-right: 1px solid $border-color; - height: 100vh; -} - -.runner { - box-shadow: shadow(s); - left: 0 !important; -} - -.reporter { - box-shadow: shadow(l); - background: $reporter-background-color; - // border-right: 1px solid $border-color; - z-index: 2; -} - -.ctPlugins { - height: 100%; - width: 100%; - - .ctPluginsHeader { - height: 40px; // make sure this is hardcoded in as well RunnerCt.tsx - display: flex; - border-top: 1px solid $metal-20; - - .ctTogglePluginsSectionButton { - margin-left: auto; - margin-right: 4px; - border: none; - background-color: transparent; - transition: transform .3s ease-in-out; - - &.ctTogglePluginsSectionButtonOpen { - will-change: transform; - transform: rotate(180deg); - } - } - - .ctPluginToggleButton { - font-family: $font-stack-sans; - cursor: pointer; - height: 100%; - width: 100%; - border: none; - background-color: transparent; - display: flex; - justify-content: space-between; - align-items: center; - padding: 0 16px; - transition: border-bottom-color .3s ease-in-out; - - :focus { - outline: none; - } - - .ctPluginsName { - padding: 2px 4px; - border-bottom: 2px solid transparent; - - &:hover { - border-bottom: 2px solid $chill-40; - } - } - } - } - - .ctDevtoolsContainer { - height: 100%; - width: 100%; - } -} - -.largerIcon { - font-size: 1.75rem !important; -} - -.noSpecsDescription { - text-align: center; - margin: 0 1rem; - line-height: 1.5; - - .folder { - border-radius: 4px; - padding: 1px 4px; - background-color: #ddd; - } -} diff --git a/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts b/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts deleted file mode 100644 index 04a5f2212d..0000000000 --- a/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'app': string; - 'appWrapper': string; - 'appWrapperScreenshotting': string; - 'ctDevtoolsContainer': string; - 'ctPluginToggleButton': string; - 'ctPlugins': string; - 'ctPluginsHeader': string; - 'ctPluginsName': string; - 'ctTogglePluginsSectionButton': string; - 'ctTogglePluginsSectionButtonOpen': string; - 'display-none': string; - 'folder': string; - 'largerIcon': string; - 'leftNav': string; - 'noSpecAut': string; - 'noSpecsDescription': string; - 'reporter': string; - 'runner': string; - 'runnerCt': string; - 'screenshotting': string; - 'size-container': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/app/RunnerCt.scss b/packages/runner-ct/src/app/RunnerCt.scss deleted file mode 100644 index b1127d262f..0000000000 --- a/packages/runner-ct/src/app/RunnerCt.scss +++ /dev/null @@ -1,102 +0,0 @@ -@use "../variables.scss" as *; -@import "../runner-ct-variables.scss"; -@import "../../../reporter/src/lib/variables.scss"; - -/** - * Styles that cannot be transformed by scoped modules should live here. Examples are: - * - override Runner globals (in a pinch) - * - publicly interface with 3rd party libs (Resizer) - */ - -body, html { - font-size: 1rem !important; - font-family: $font-stack-sans; - font-size: text(m); - - * :focus { - outline-offset: 1px; - outline-width: 1px; - outline-color: $chill-20; - outline-style: auto; - } -} - -.reporter { - .runnable-header { - box-shadow: shadow(m); - } -} - -.runner { - // @include checkerboard(); - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjUiPgo8cmVjdCB3aWR0aD0iNSIgaGVpZ2h0PSI1IiBmaWxsPSIjZGJkYmRiIj48L3JlY3Q+CjxwYXRoIGQ9Ik0wIDVMNSAwWk02IDRMNCA2Wk0tMSAxTDEgLTFaIiBzdHJva2U9IiNjNGM0YzQiIHN0cm9rZS13aWR0aD0iMSI+PC9wYXRoPgo8L3N2Zz4="); -} - -.aut-iframe-screenshotting { - height: min(100vh, 100%) !important; - overflow: scroll !important; -} - -// Prevent left-most Resizer from showing up when the pane is hidden. -.isSpecsListClosed { - > .Resizer { - display: none; - } -} - -// Must be globally scoped. Bummer. -$resizerLineSize: 4px; - -.Resizer { - $resize-thickness: 12px; - background: none; - transition: background-color 200ms ease-in-out; - z-index: 10; - box-sizing: border-box; - background-clip: padding-box; - &:after { - content: ''; - position: relative; - display: block; - background: transparent; - transition: background 200ms ease; - position: fixed; - } - &:hover { - &:after { - background: $chill-30; - } - } - - &.horizontal { - margin: -($resize-thickness * 0.5) 0; - height: $resize-thickness; - width: 100%; - cursor: row-resize; - border-top: 5px solid rgba(255, 255, 255, 0); - border-bottom: 5px solid rgba(255, 255, 255, 0); - - &:after { - height: $resizerLineSize; - width: 100%; - } - } - - &.vertical { - margin: 0 -($resize-thickness * 0.5); - width: $resize-thickness; - height: 100%; - cursor: col-resize; - border-left: 5px solid rgba(255, 255, 255, 0); - border-right: 5px solid rgba(255, 255, 255, 0); - - &:after { - width: $resizerLineSize; - height: 100%; - } - } - - &.disabled { - display: none; - } -} \ No newline at end of file diff --git a/packages/runner-ct/src/app/RunnerCt.scss.d.ts b/packages/runner-ct/src/app/RunnerCt.scss.d.ts deleted file mode 100644 index 132b232e89..0000000000 --- a/packages/runner-ct/src/app/RunnerCt.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/iframe/iframes.scss b/packages/runner-ct/src/iframe/iframes.scss deleted file mode 100644 index 76b8b66e92..0000000000 --- a/packages/runner-ct/src/iframe/iframes.scss +++ /dev/null @@ -1,20 +0,0 @@ -@use '../variables.scss' as *; - -.iframes-ct-container { - margin: 0 8px; - padding: 16px 0; - display: flex; - justify-content: center; - align-items: center; -} - -.iframes-ct-container-screenshotting { - margin: 0; - padding: 0; -} - -.size-container { - overflow: auto; - box-shadow: shadow(m); - max-width: 100%; -} diff --git a/packages/runner-ct/src/iframe/iframes.scss.d.ts b/packages/runner-ct/src/iframe/iframes.scss.d.ts deleted file mode 100644 index 132b232e89..0000000000 --- a/packages/runner-ct/src/iframe/iframes.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/index.js b/packages/runner-ct/src/index.js deleted file mode 100644 index 2b8b55b989..0000000000 --- a/packages/runner-ct/src/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import '@packages/runner/src/main.scss' - -import './main' diff --git a/packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss b/packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss deleted file mode 100644 index db1b27fc49..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/CypressLogo/CypressLogo.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.logo { - max-width: 100%; -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss b/packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss deleted file mode 100644 index 290d6ff71d..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/Nav/LeftNav.module.scss +++ /dev/null @@ -1,76 +0,0 @@ -@use 'baseColors' as *; -@use 'semanticColors' as *; -@use 'typography' as *; - -$left-nav-width: 48px; -$icon-color: $metal-20; -$active-color: $brand-01; - -.leftNav { - display: grid; - grid-template-columns: $left-nav-width; - grid-template-rows: auto auto; - width: $left-nav-width; - margin: 0; - row-gap: 0.5rem; - padding: 0; -} - -.top, .bottom { - display: grid; - list-style-type: none; - row-gap: 0.5rem; - grid-template-rows: repeat(auto-fit, 48px) -} - -.top { - padding-top: 1.5rem; -} - -.bottom { - display: grid; - align-content: flex-end; - padding-bottom: 2rem; -} - -.item { - height: 100%; - font-size: text(ml); - cursor: pointer; - color: $icon-color; - - &:before { - content: ''; - width: 4px; - position: absolute; - height: $left-nav-width; - display: block; - background: transparent; - } - -} - -.active { - color: $active-color; - - &:before { - background: $brand-01; - } -} - -.inactive { - :hover { - - color: $active-color; - } -} - -.itemAnchor { - text-decoration: none; -} - -.icon { - display: block; - margin: auto; - height: 100%; -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss b/packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss deleted file mode 100644 index 91d6c469b0..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/collapsibleGroup/CollapsibleGroup.module.scss +++ /dev/null @@ -1,54 +0,0 @@ -@use 'spacing' as *; -@use 'semanticColors' as *; -@use 'css-util' as *; - -.group { - display: flex; - flex-direction: column; - - overflow: hidden; -} - -.header { - width: 100%; - - cursor: pointer; - @include no-selection; - - &:hover { - background-color: $button-white-hover-color; - } - - &:active { - background-color: $button-white-push-color; - } -} - -.disabled { - color: grey; - - .title { - cursor: unset; - - &::before { - content: ''; - } - } -} - -.title { - display: inline-block; -} - -.content { - // TODO: Add transition - height: 0; -} - -.expanded { - .content { - flex-grow: 1; - - height: 100%; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss b/packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss deleted file mode 100644 index dea5d61367..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/fileTree/FileTree.module.scss +++ /dev/null @@ -1,72 +0,0 @@ -@use 'semanticColors' as *; -@use 'spacing' as *; -@use 'typography' as *; -@use 'css-util' as *; - -.tree { - > div { - // Container div for nodes - padding-bottom: spacing(l); - } -} - -.node { - display: grid; - grid-template-columns: spacing(m) 1fr; - - column-gap: spacing(xs); - align-items: center; - - background: repeating-linear-gradient(90deg, $control-slight-color, $control-slight-color 1px, transparent 1px, transparent spacing(m), ); - background-repeat: no-repeat; - background-size: 0 100%; - // Start background at 1/2 indent spacing (m = 1rem) - background-position-x: spacing(s); - - @include text(ms); - - :global(.svg-inline--fa) { - bottom: 0; - } - - > :first-child { - justify-self: center; - } -} - -.file { - cursor: pointer; - @include no-selection; - - &:hover { - background-color: $button-white-hover-color; - } - - &:active { - background-color: $button-white-push-color; - } -} - -.active { - color: $control-text-color-white; - background: none; - background-color: $button-blue-color; - - &:hover { - background-color: $button-blue-color; - } - - &:active { - background-color: $button-blue-hover-color; - } -} - -.highlight { - > span { - font-weight: $highlight-weight; - } -} - -.placeholder { - text-align: center; -} diff --git a/packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss b/packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss deleted file mode 100644 index 4bae1b26ef..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/components/virtualizedTree/VirtualizedTree.module.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use 'surfaces' as *; - -.focusWrapper { - &:focus { - outline: none; - } -} - -.child { - display: grid; - grid-template-rows: 1fr; - height: 100%; -} - -.focus { - @include focused; - - &::after { - // TODO: Improve this - border-radius: 0; - // border-width: 1px; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss b/packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss deleted file mode 100644 index 6328bc33ca..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/button/Button.module.scss +++ /dev/null @@ -1,69 +0,0 @@ -@use 'semanticColors' as *; -@use 'typography' as *; -@use 'spacing' as *; -@use 'surfaces' as *; -@use 'func' as *; -@use 'css-util' as util; - -$button-vertical-padding: change-rem-unit-to-em(spacing(xs)); -$button-horizontal-padding: change-rem-unit-to-em(spacing(s)); - -.button { - position: relative; - display: inline-block; - // Reset - @include util.no-selection; - border: 0; - text-decoration: none; - cursor: pointer; - - // Style - padding: $button-vertical-padding $button-horizontal-padding; - border-radius: $button-radius; - - color: $control-text-color-white; - background-color: $button-blue-color; - - &:hover { - background-color: $button-blue-hover-color; - } - - &:active { - background-color: $button-blue-push-color; - } - - &:focus { - outline: none; - } - - &.white { - color: $control-text-color-black; - background-color: $button-white-color; - - border: 1px solid $control-border-color; - - &:hover { - background-color: $button-white-hover-color; - } - - &:active { - background-color: $button-white-push-color; - } - } - - &.disableBorder { - border: 0; - } -} - -:global { - :local(.button.white:not(.disableBorder)) { - &.focused::after { - // White buttons have a border that needs to be compensated for - top: -1px; - left: -1px; - right: -1px; - bottom: -1px; - } - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss b/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss deleted file mode 100644 index d1c923f79b..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.module.scss +++ /dev/null @@ -1,27 +0,0 @@ -$icon-margin: 0.15em; -$icon-bottom-offset: 0.125em; - -$icon-size: 1em - $icon-margin * 2; - -:global(.svg-inline--fa) { - // TODO: Is there ever a need for the icon to not take a square space as long as it's properly centered? - &.icon { - position: relative; - - width: $icon-size; - height: $icon-size; - - bottom: $icon-bottom-offset; - } - - &.ignoreTextCenter { - width: 1em; - height: 1em; - - bottom: auto; - } - - &.sizeWithoutCenter { - bottom: auto; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss b/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss deleted file mode 100644 index a1dcac37bc..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/icon/Icon.stories.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -.icon { - background-color: orange; - - border: 1px solid black; -} - -.textIcon { - border: 1px solid black; -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss b/packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss deleted file mode 100644 index 4458d92824..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/input/IconInput.module.scss +++ /dev/null @@ -1,100 +0,0 @@ -@use 'spacing' as *; -@use 'semanticColors' as *; -@use '../icon/Icon.module.scss' as *; -@use 'surfaces' as *; - -$icon-overall-size: 1.5em; -$input-icon-margin: 0.25em; - -.iconInput { - position: relative; - display: flex; - align-items: center; - - // No actual border drawn. This provides the mask for the rounded corners to clip child elements - border-radius: $button-radius; - overflow: hidden; - - z-index: 0; - - &::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - border: 1px solid $control-border-color; - border-radius: $button-radius; - - pointer-events: none; - } - - .wrapper { - display: flex; - flex-grow: 1; - - &:first-child { - // If first child, apply border padding - padding-left: spacing(s); - } - - &:last-child { - // If last child, apply border padding - padding-right: spacing(s); - } - } - - .input { - flex-grow: 1; - // Required to allow input to shrink in certain size scenarios - width: 0; - padding: 0; - - background-color: transparent; - border: 0; - border-radius: 0; - - &:focus { - outline: none; - } - } - - .icon { - flex-grow: 0; - flex-shrink: 0; - - // Icon - margin: 0 $input-icon-margin; - bottom: 0; - - color: $control-text-color-black; - } - - .iconButton { - // See global expression below - // Make sure button fills entire height, to enable the button focus ring to cover the IconInput border - align-self: stretch; - - padding: 0 $input-icon-margin; - line-height: 1; - - border-radius: 0; - - &::after { - z-index: 1; - } - } -} - -:global { - :local(.iconButton) { - &.focused { - // Set overflow and border radius to clip corners when focused - overflow: hidden; - - border-radius: $button-radius; - } - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss b/packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss deleted file mode 100644 index 63fb1cbd67..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/input/InputBase.module.scss +++ /dev/null @@ -1,20 +0,0 @@ -@use 'semanticColors' as *; -@use 'surfaces' as *; -@use 'spacing' as *; - -input.input { - padding: 0 spacing(s); - - font-weight: normal; - - border: 1px solid $control-border-color; - border-radius: $button-radius; -} - -/** - * Wrapper for standalone inputs to allow for a proper focus ring - */ -.wrapper { - display: inline-block; - position: relative; -} diff --git a/packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss b/packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss deleted file mode 100644 index 27b8c85801..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/core/text/placeholder/Placeholder.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use 'semanticColors' as *; - -.placeholder { - color: $control-text-color-dim; -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/baseColors.scss b/packages/runner-ct/src/legacy-styles/src/css/baseColors.scss deleted file mode 100644 index bff0217207..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/baseColors.scss +++ /dev/null @@ -1,139 +0,0 @@ -@import './func.scss'; - -$colors: ( - metal-100: rgba(0, 0, 0, 1), // #000000; - metal-90: rgba(33, 36, 38, 1), // #212426; - metal-80: rgba(45, 49, 52, 1), // #2d3134; - metal-70: rgba(62, 67, 71, 1), // #3e4347; - metal-60: rgba(83, 90, 95, 1), // #535a5f; - metal-50: rgba(107, 116, 123, 1), // #6b747b; - metal-40: rgba(135, 144, 151, 1), // #879097; - metal-30: rgba(160, 167, 172, 1), // #a0a7ac; - metal-20: rgba(190, 194, 198, 1), // #bec2c6; - metal-10: rgba(230, 232, 234, 1), // #e6e8ea; - metal-05: rgba(244, 245, 246, 1), // #f4f5f6; - metal-00: rgba(255, 255, 255, 1), // #ffffff; - red-70: rgba(153, 11, 18, 1), // #990b12; - red-60: rgba(191, 13, 22, 1), // #bf0d16; - red-50: rgba(224, 16, 26, 1), // #e0101a; - red-40: rgba(241, 55, 64, 1), // #f13740; - chill-90: rgba(8, 33, 68, 1), // #082144; - chill-80: rgba(12, 49, 100, 1), // #0c3164; - chill-70: rgba(16, 66, 137, 1), // #104289; - chill-60: rgba(21, 86, 178, 1), // #1556b2; - chill-50: rgba(27, 111, 228, 1), // #1b6fe4; - chill-40: rgba(73, 142, 238, 1), // #498eee; - chill-30: rgba(118, 168, 239, 1), // #76a8ef; - chill-20: rgba(164, 197, 244, 1), // #a4c5f4; - chill-10: rgba(222, 235, 252, 1), // #deebfc; - chill-05: rgba(237, 243, 253, 1), // #edf3fd; - olive-60: rgba(93, 100, 12, 1), // #5d640c; - olive-50: rgba(114, 123, 15, 1), // #727b0f; - olive-40: rgba(143, 154, 25, 1), // #8f9a19; - olive-30: rgba(211, 228, 27, 1), // #d3e41b; - olive-20: rgba(225, 237, 100, 1), // #e1ed64; - olive-10: rgba(238, 245, 168, 1), // #eef5a8; - olive-05: rgba(246, 250, 209, 1), // #f6fad1; - papaya-60: rgba(143, 68, 10, 1), // #8f440a; - papaya-50: rgba(190, 90, 14, 1), // #be5a0e; - papaya-40: rgba(235, 107, 10, 1), // #eb6b0a; - papaya-30: rgba(242, 141, 64, 1), // #f28d40; - papaya-20: rgba(246, 175, 121, 1), // #f6af79; - papaya-10: rgba(252, 229, 212, 1), // #fce5d4; - papaya-05: rgba(253, 241, 231, 1), // #fdf1e7; - green-60: rgba(41, 102, 10, 1), // #29660a; - green-50: rgba(54, 133, 15, 1), // #36850f; - green-40: rgba(68, 164, 20, 1), // #44a414; - green-30: rgba(79, 191, 23, 1), // #4fbf17; - green-20: rgba(107, 219, 51, 1), // #6bdb33; - green-10: rgba(204, 244, 185, 1), // #ccf4b9; - green-05: rgba(236, 251, 228, 1), // #ecfbe4; - cran-50: rgba(228, 28, 95, 1), // #e41c5f; - brand-00: rgba(28, 228, 150, 1), // #1ce496; - // TODO: Rewrite these names - brand-01: rgba(8, 41, 63, 1), // #08293f; - accent-00: rgba(177, 99, 255, 1), // #b163ff; - accent-01: rgba(54, 197, 255, 1), // #36c5ff; - accent-02: rgba(230, 255, 30, 1), // #e6ff1e; -); - -// TODO: Is this needed? -// :root { -// @each $name, $color in $colors { -// .text-#{"" + $name} { -// color: $color; -// } -// .bg-#{"" + $name} { -// background-color: $color; -// } -// } -// } - -// --- Color Variables - -@function color($name: string) { - @return var(--#{"" + $name}); -} - -// Must be manually written out as SASS does not support dynamic variable creation -// Exposes SASS variables as references to CSS variables -$metal-100: color('metal-100'); -$metal-90: color('metal-90'); -$metal-80: color('metal-80'); -$metal-70: color('metal-70'); -$metal-60: color('metal-60'); -$metal-50: color('metal-50'); -$metal-40: color('metal-40'); -$metal-30: color('metal-30'); -$metal-20: color('metal-20'); -$metal-10: color('metal-10'); -$metal-05: color('metal-05'); -$metal-00: color('metal-00'); - -$red-70: color('red-70'); -$red-60: color('red-60'); -$red-50: color('red-50'); -$red-40: color('red-40'); - -$chill-90: color('chill-90'); -$chill-80: color('chill-80'); -$chill-70: color('chill-70'); -$chill-60: color('chill-60'); -$chill-50: color('chill-50'); -$chill-40: color('chill-40'); -$chill-30: color('chill-30'); -$chill-20: color('chill-20'); -$chill-10: color('chill-10'); -$chill-05: color('chill-05'); - -$olive-60: color('olive-60'); -$olive-50: color('olive-50'); -$olive-40: color('olive-40'); -$olive-30: color('olive-30'); -$olive-20: color('olive-20'); -$olive-10: color('olive-10'); -$olive-05: color('olive-05'); - -$papaya-60: color('papaya-60'); -$papaya-50: color('papaya-50'); -$papaya-40: color('papaya-40'); -$papaya-30: color('papaya-30'); -$papaya-20: color('papaya-20'); -$papaya-10: color('papaya-10'); -$papaya-05: color('papaya-05'); - -$green-60: color('green-60'); -$green-50: color('green-50'); -$green-40: color('green-40'); -$green-30: color('green-30'); -$green-20: color('green-20'); -$green-10: color('green-10'); -$green-05: color('green-05'); - -$cran-50: color('cran-50'); - -$brand-00: color('brand-00'); -$brand-01: color('brand-01'); -$accent-00: color('accent-00'); -$accent-01: color('accent-01'); -$accent-02: color('accent-02'); diff --git a/packages/runner-ct/src/legacy-styles/src/css/css-util.scss b/packages/runner-ct/src/legacy-styles/src/css/css-util.scss deleted file mode 100644 index 2dde473abb..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/css-util.scss +++ /dev/null @@ -1,9 +0,0 @@ -@mixin no-selection { - -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Old versions of Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently - supported by Chrome, Edge, Opera and Firefox */ -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/export.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/export.scss deleted file mode 100644 index 19071a6af4..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/export.scss +++ /dev/null @@ -1,78 +0,0 @@ -@use 'baseColors' as *; -@use 'semanticColors' as *; -@use 'spacing' as *; -@use 'surfaces' as *; -@use 'spacing' as *; -@use 'typography' as *; - -// BaseColors -:root { - @each $name, $color in $colors { - --#{"" + $name}: #{$color}; - } -} - -// SemanticColors -// Write semantic CSS color variables to root -// **NOTE**: Most variables do not need to be exposed as a CSS variable -:root { - // See def in semanticColors.scss - --black-rgb-color: #{extract-rgb('metal-100')}; -} - -// Spacing -@each $name, $text-def in $spacing { - $suffix: str-replace('' + $name, 'space-', ''); - - .#{'padding-' + $suffix} { - @include padding($suffix) - } -} - -// Surfaces -@each $name, $def in $shadow { - $suffix: str-replace('' + $name, 'shadow-', ''); - - .#{'depth-' + $suffix} { - @include depth($suffix) - } -} - -body { - .focused { - @include focused; - } -} - -// Typography -// See typography.scss -:root { - --font-stack-sans: #{$internal-font-stack-sans}; - --font-stack-mono: #{$internal-font-stack-mono}; -} - -@each $name, $text-def in $text { - .#{$name} { - @include text(str-replace($name, 'text-', '')) - } -} - -.text-mono-m { - @include text-mono-m; -} - -.text-mono-s { - @include text-mono-s; -} - -.line-height-normal { - @include line-height-normal; -} - -.line-height-condensed { - @include line-height-condensed; -} - -.line-height-tight { - @include line-height-tight; -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss deleted file mode 100644 index e48614cf38..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsColors.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '../baseColors' as *; - -// Exposes $color, stripped of hyphens, as a JS variable when directly imported -:export { - @each $name, $color in $colors { - #{str-replace("" + $name, '-', '')}: #{$color}; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss deleted file mode 100644 index 01eba51e00..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSpacing.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '../spacing.scss' as *; - -// Exposes $spacing, as a JS variable when directly imported -:export { - @each $name, $size in $spacing { - #{$name}: #{$size}; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss deleted file mode 100644 index ae704cf136..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsSurfaces.scss +++ /dev/null @@ -1,8 +0,0 @@ -@use '../surfaces.scss' as *; - -// Exposes $shadow as a JS variable when directly imported -:export { - @each $name, $shadow in $shadow { - #{$name}: #{$shadow}; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss b/packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss deleted file mode 100644 index 43ca793508..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/derived/jsTypography.scss +++ /dev/null @@ -1,18 +0,0 @@ -@use '../typography.scss' as *; -@use '../func.scss' as *; - -// Exposes $text, as a JS variable when directly imported -// This is the only way for JS to directly receive the exposed `.text-*` classes -:export { - @each $name, $text-def in $text { - #{$name}: text(#{str-replace("" + $name, 'text-', '')}) - } - - // TODO: Can this be improved? - text-mono-m: text-mono-m; - text-mono-s: text-mono-s; - - line-height-normal: line-height-normal; - line-height-condensed: line-height-condensed; - line-height-tight: line-height-tight; -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/func.scss b/packages/runner-ct/src/legacy-styles/src/css/func.scss deleted file mode 100644 index 1a570db164..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/func.scss +++ /dev/null @@ -1,24 +0,0 @@ -/** -* Replace `$search` with `$replace` in `$string` -* @author Hugo Giraudel -* @param {String} $string - Initial string -* @param {String} $search - Substring to replace -* @param {String} $replace ('') - New value -* @return {String} - Updated string -*/ -// Taken from https://gist.github.com/PuddingNL/51866d4b9f1151963fbd973bf1d66116 -@use "sass:math"; - -@function str-replace($string, $search, $replace: '') { - $index: str-index($string, $search); - - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } - - @return $string; -} - -@function change-rem-unit-to-em($number) { - @return math.div($number, 1rem) + 0em; -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/css/index.scss b/packages/runner-ct/src/legacy-styles/src/css/index.scss deleted file mode 100644 index fd15ebbdfe..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/index.scss +++ /dev/null @@ -1,5 +0,0 @@ -@forward 'baseColors'; -@forward 'semanticColors'; -@forward 'surfaces'; -@forward 'typography'; -@forward 'spacing'; diff --git a/packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss b/packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss deleted file mode 100644 index 8b408b78f8..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/semanticColors.scss +++ /dev/null @@ -1,36 +0,0 @@ -@use 'baseColors' as *; -@use 'func'; - -/** -* Extracts RGB color channels from a named color definition -*/ -@function extract-rgb($color-name: string) { - $color: map-get($colors, $color-name); - - @if $color { - @return red($color), green($color), blue($color); - } - - @return null; -} - -// Provides raw black as a RGB number tuple for substitution into alpha modifying situations (shadows) -// See exposed variable in export.scss -$black-rgb-color: var(--black-rgb-color); - -$control-border-color: $metal-30; -// TODO: Find a better name -$control-slight-color: $metal-10; -$control-focus-color: $chill-40; - -$button-blue-color: $chill-50; -$button-blue-hover-color: $chill-60; -$button-blue-push-color: $chill-70; - -$button-white-color: $metal-00; -$button-white-hover-color: $metal-05; -$button-white-push-color: $metal-10; - -$control-text-color-white: $metal-05; -$control-text-color-dim: $metal-50; -$control-text-color-black: $metal-90; diff --git a/packages/runner-ct/src/legacy-styles/src/css/spacing.scss b/packages/runner-ct/src/legacy-styles/src/css/spacing.scss deleted file mode 100644 index 89c62fdf88..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/spacing.scss +++ /dev/null @@ -1,26 +0,0 @@ -@use 'func' as *; - -$_base-space: 1rem; - -$spacing: ( - space-xs: 0.25 * $_base-space, // 4px - space-s: 0.5 * $_base-space, // 8px - - space-ms: 0.75 * $_base-space, // 12px - space-m: 1 * $_base-space, // 16px - space-ml: 1.25 * $_base-space, // 20px - - space-l: 1.5 * $_base-space, // 24px - space-xl: 2 * $_base-space, // 32px - space-2xl: 2.5 * $_base-space, // 40px - space-3xl: 3 * $_base-space, // 48px - space-4xl: 4 * $_base-space, // 64px -); - -@function spacing($name: string) { - @return map-get($spacing, "space-" + $name); -} - -@mixin padding($name: string) { - padding: spacing($name); -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/surfaces.scss b/packages/runner-ct/src/legacy-styles/src/css/surfaces.scss deleted file mode 100644 index 8d1d0af52e..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/surfaces.scss +++ /dev/null @@ -1,53 +0,0 @@ -@use 'semanticColors' as *; -@use 'func' as *; - -// --- Shadows - -// TODO: Need better semantic names -$shadow: ( - shadow-flat: none, - shadow-slight: 0 1px 2px 0 rgba($black-rgb-color, 0.05), - shadow-bordered: (0 1px 3px 0 rgba($black-rgb-color, 0.1), 0 1px 2px 0 rgba($black-rgb-color, 0.06)), - shadow-3: (0 4px 6px -1px rgba($black-rgb-color, 0.1), 0 2px 4px -1px rgba($black-rgb-color, 0.06)), - shadow-4: (0 10px 15px -3px rgba($black-rgb-color, 0.1), 0 4px 6px -2px rgba($black-rgb-color, 0.05)), - shadow-popup: (0 20px 25px -5px rgba($black-rgb-color, 0.1), 0 10px 10px -5px rgba($black-rgb-color, 0.04)), - shadow-6: (0 25px 50px -12px rgba($black-rgb-color, 0.25)), - shadow-inset-slight: inset 0 2px 4px 0 rgba($black-rgb-color, 0.06), - shadow-inset-well: inset 0 3px 5px 0 rgba($black-rgb-color, 0.1), -); - -// $shadow-outline: 0 0 0 3px rgba(66, 153, 225, 0.5); - -$button-radius: 0.5rem; // 8px - -@function shadow($name: string) { - @return map-get($shadow, "shadow-" + $name); -} - -@mixin depth($name: string) { - box-shadow: shadow($name); -} - -@mixin focused { - &::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - - border: 2px solid $control-focus-color; - border-radius: $button-radius; - - pointer-events: none; - } - - &:focus { - outline: none; - } - - input:focus { - outline: none; - } -} diff --git a/packages/runner-ct/src/legacy-styles/src/css/typography.scss b/packages/runner-ct/src/legacy-styles/src/css/typography.scss deleted file mode 100644 index aa47b1d357..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/css/typography.scss +++ /dev/null @@ -1,121 +0,0 @@ -@use 'func' as *; - -// --- Font Families - -/** - * Do not directly reference. Use the $font-stack-sans and $font-stack-mono variables instead - */ -$internal-font-stack-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, - "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -$internal-font-stack-mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - -// See export.scss -$font-stack-sans: var(--font-stack-sans); -$font-stack-mono: var(--font-stack-mono); - -// --- Text Sizes/Scale -// Chosen to produce integer sizes from a base font size of 16px - -$text: ( - text-xs: ( - size: 0.5rem, // 8px - ), - text-s: ( - size: 0.75rem, // 12px - ), - text-ms: ( - size: 0.875rem, // 14px - ), - text-m: ( - size: 1rem, // 16px - weight: bolder, - ), - text-ml: ( - size: 1.25rem, // 18px - weight: bolder, - ), - text-l: ( - size: 1.5rem, // 24px - weight: bolder, - ), - text-xl: ( - size: 2rem, // 32px - weight: bolder, - ), - text-2xl: ( - size: 2.5rem, // 40px - weight: bolder, - ), - text-3xl: ( - size: 3rem, // 48px - weight: bolder, - ), - text-4xl: ( - size: 4rem, // 64px - weight: bolder, - ) -); - -$highlight-weight: 600; - -@function text($name: string) { - @return map-get(map-get($text, "text-" + #{$name}), size); -} - -// --- Line heights - -$lh-tight: 1; -$lh-condensed: 1.25; -$lh-normal: 1.5; - -// --- Mixins - -@mixin _text-base { - font-family: $font-stack-sans; - font-weight: normal; - font-style: normal; -} - -// General text - -@mixin text($name: string) { - $text-def: map-get($text, "text-" + $name); - $size: map-get($text-def, size); - $weight: map-get($text-def, weight); - - @include _text-base; - @if $size { - font-size: $size; - } - @if $weight { - font-weight: $weight; - } -} - -@mixin text-mono-m { - font-size: text(m); - font-family: $font-stack-mono; - font-weight: bold; - font-style: normal; -} - -@mixin text-mono-s { - font-size: text(s); - font-family: $font-stack-mono; - font-weight: bold; - font-style: normal; -} - -// Line heights - -@mixin line-height-normal { - line-height: $lh-normal; -} - -@mixin line-height-condensed { - line-height: $lh-condensed; -} - -@mixin line-height-tight { - line-height: $lh-tight; -} diff --git a/packages/runner-ct/src/legacy-styles/src/global.scss b/packages/runner-ct/src/legacy-styles/src/global.scss deleted file mode 100644 index cffe798d9f..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/global.scss +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Global CSS values to wrap into the bundle. Should not be imported by dependants - */ -@use 'derived/export.scss'; -@use 'typography'; - -// probably should leave this for the consumer to set? -body, html { - font-size: typography.text(m); - font-family: typography.$font-stack-sans; -} diff --git a/packages/runner-ct/src/legacy-styles/src/index.scss b/packages/runner-ct/src/legacy-styles/src/index.scss deleted file mode 100644 index 3e7e8d5053..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/index.scss +++ /dev/null @@ -1,6 +0,0 @@ -/* - * Base SCSS file for external SASS imports (all dependants should import from this file to use the SASS vars) - */ - -// css prefix for clarity -@forward 'css/index'; diff --git a/packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss b/packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss deleted file mode 100644 index 068e61dd27..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/measure/baseline/Baseline.module.scss +++ /dev/null @@ -1,31 +0,0 @@ -/** -* Draws the baseline and toplines for a DOM element -*/ -.baseline { - position: relative; - - &:before { - content: ""; - - position: absolute; - - width: 100%; - height: 1px; - - top: 0.2em; - background-color: rgba(red, 0.2); - } - - &:after { - content: ""; - - position: absolute; - - width: 100%; - height: 1px; - - bottom: 0.2em; - left: 0; - background-color: rgba(red, 0.2); - } -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss b/packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss deleted file mode 100644 index 0bd8299638..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/stories/colors.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -.colorBlock { - display: inline-block; - height: 7rem; - width: 7rem; - - padding: 1.5rem; - margin-right: 1rem; - margin-bottom: 1rem; -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss b/packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss deleted file mode 100644 index c17746d802..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/stories/spacing.module.scss +++ /dev/null @@ -1,6 +0,0 @@ -@use 'baseColors' as *; - -.cube { - margin: 1rem; - background-color: $brand-00; -} diff --git a/packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss b/packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss deleted file mode 100644 index 534ec7ebef..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/stories/surfaces.module.scss +++ /dev/null @@ -1,9 +0,0 @@ -.surface { - display: inline-block; - height: 12rem; - width: 12rem; - - padding: 1.5rem; - margin-right: 4rem; - margin-bottom: 4rem; -} \ No newline at end of file diff --git a/packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss b/packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss deleted file mode 100644 index 01a3066ca1..0000000000 --- a/packages/runner-ct/src/legacy-styles/src/util/storybook/storyHighlightWrapper/storyHighlightWrapper.module.scss +++ /dev/null @@ -1,5 +0,0 @@ -@use 'baseColors' as *; - -.wrapper { - background-color: $brand-00; -} diff --git a/packages/runner-ct/src/main.tsx b/packages/runner-ct/src/main.tsx deleted file mode 100644 index 6b006f09fe..0000000000 --- a/packages/runner-ct/src/main.tsx +++ /dev/null @@ -1,4 +0,0 @@ -import { UnifiedRunner } from '../unified-runner' - -// @ts-ignore -window.UnifiedRunner = UnifiedRunner diff --git a/packages/runner-ct/src/plugins/devtools-fallback.scss b/packages/runner-ct/src/plugins/devtools-fallback.scss deleted file mode 100644 index fd2017a6be..0000000000 --- a/packages/runner-ct/src/plugins/devtools-fallback.scss +++ /dev/null @@ -1,8 +0,0 @@ -.react-devtools-fallback { - width: 100%; - text-align: center; - display: flex; - justify-content: center; - align-items: center; - height: 70%; -} \ No newline at end of file diff --git a/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts b/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts deleted file mode 100644 index 132b232e89..0000000000 --- a/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-ct/src/runner-ct-variables.scss b/packages/runner-ct/src/runner-ct-variables.scss deleted file mode 100644 index 0c951c7317..0000000000 --- a/packages/runner-ct/src/runner-ct-variables.scss +++ /dev/null @@ -1,4 +0,0 @@ -$cypress-blue: #3380FF; -$cypress-gray: #f6f6f6; - -$ct-accent-blue: #4299e1; \ No newline at end of file diff --git a/packages/runner-ct/src/variables.scss b/packages/runner-ct/src/variables.scss deleted file mode 100644 index cc6429c3cc..0000000000 --- a/packages/runner-ct/src/variables.scss +++ /dev/null @@ -1,23 +0,0 @@ -@forward './legacy-styles'; -@use './legacy-styles' as *; - -$border-color: $metal-20; - -$reporter-background-color: white; -$spec-list-background-color: white; -$left-nav-background-color: $metal-05; - -$resizer-hover-color: $chill-40; - -$aut-background-color: white; -$aut-drop-shadow: shadow(bordered); - -$runner-ct-header-height: 46px; - -/** - * Utility classes - */ - -.display-none { - display: none !important; -} diff --git a/packages/runner-ct/tsconfig.json b/packages/runner-ct/tsconfig.json deleted file mode 100644 index b45f3e0289..0000000000 --- a/packages/runner-ct/tsconfig.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "extends": "../ts/tsconfig.json", - "compilerOptions": { - /* Basic Options */ - "target": "es2015", - "module": "commonjs", - /* - * Allow javascript files to be compiled. - * Override this in modules that need JS - */ - "allowJs": true, - "jsx": "react", - "noImplicitAny": false, - "noImplicitThis": false, - "preserveWatchOutput": true, - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - /* Generates corresponding '.d.ts' file. */ - // "declaration": true, - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - /* Generates corresponding '.map' file. */ - "sourceMap": true, - /* Import emit helpers from 'tslib'. */ - "importHelpers": true, - "strictNullChecks": true, - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - /* Strict Type-Checking Options */ - // "traceResolution": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - /** - * Skip type checking of all declaration files (*.d.ts). - * TODO: Look into changing this in the future - */ - /* Additional Checks */ - /* Report errors on unused locals. */ - // "noEmit": true, - "noUnusedLocals": false, - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - /* Report error when not all code paths in function return a value. */ - "noImplicitReturns": true, - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "../", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": ["../driver/src"], /* List of root folders whose combined content represents the structure of the project at runtime. */ - "types": [], /* Type declaration files to be included in compilation. */ - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "skipLibCheck": true, - "noErrorTruncation": true, - "experimentalDecorators": true - // "noResolve": true - }, - "include": [ - "./lib/*.ts", - "./src*.ts", - "./src*.tsx", - "./index.ts", - "./index.d.ts", - "./../ts/index.d.ts" - ], - "exclude": [ - "dist", - "test" - ] -} diff --git a/packages/runner-ct/webpack.config.ts b/packages/runner-ct/webpack.config.ts deleted file mode 100644 index 3932e46125..0000000000 --- a/packages/runner-ct/webpack.config.ts +++ /dev/null @@ -1,101 +0,0 @@ -process.env.NO_LIVERELOAD = '1' - -import _ from 'lodash' -import path from 'path' -import type webpack from 'webpack' -import { getCommonConfig, getCopyWebpackPlugin } from '@packages/web-config/webpack.config.base' -import * as cyIcons from '@packages/icons' - -const commonConfig = getCommonConfig() -const CopyWebpackPlugin = getCopyWebpackPlugin() - -// @ts-ignore -const babelLoader = _.find(commonConfig.module.rules, (rule) => { - // @ts-ignore - return _.includes(rule.use.loader, 'babel-loader') -}) - -// @ts-ignore -babelLoader.use.options.plugins.push([require.resolve('babel-plugin-prismjs'), { - languages: ['javascript', 'coffeescript', 'typescript', 'jsx', 'tsx'], - plugins: ['line-numbers', 'line-highlight'], - theme: 'default', - css: false, -}]) - -const { pngRule, nonPngRules } = commonConfig!.module!.rules!.reduce<{ - nonPngRules: webpack.RuleSetRule[] - pngRule: webpack.RuleSetRule | undefined -}>((acc, rule) => { - if (rule?.test?.toString().includes('png')) { - return { - ...acc, - pngRule: rule, - } - } - - return { - ...acc, - nonPngRules: [...acc.nonPngRules, rule], - } -}, { - nonPngRules: [], - pngRule: undefined, -}) - -if (!pngRule || !pngRule.use) { - throw Error('Could not find png loader') -} - -(pngRule.use as webpack.RuleSetLoader[])[0].options = { - name: '[name].[ext]', - outputPath: 'img', - publicPath: '/__cypress/runner/img/', -} - -// @ts-ignore -const config: webpack.Configuration = { - ...commonConfig, - module: { - rules: [ - ...nonPngRules, - pngRule, - { - test: /index\.js/, - exclude: /node_modules/, - }, - ], - }, - entry: { - cypress_runner: [path.resolve(__dirname, 'src/index.js')], - }, - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].js', - chunkFilename: '[name].[chunkhash].js', - }, -} - -// @ts-ignore -config.plugins = [ - // @ts-ignore - ...config.plugins, - new CopyWebpackPlugin([{ - // @ts-ignore // There's a race condition in how these types are generated. - from: cyIcons.getPathToFavicon('favicon.ico'), - }]), -] - -config.resolve = { - ...config.resolve, - alias: { - bluebird: require.resolve('bluebird'), - lodash: require.resolve('lodash'), - mobx: require.resolve('mobx'), - 'mobx-react': require.resolve('mobx-react'), - react: require.resolve('react'), - 'react-dom': require.resolve('react-dom'), - }, -} - -export default config diff --git a/packages/runner-shared/.eslintrc.json b/packages/runner-shared/.eslintrc.json deleted file mode 100644 index e9a3358d11..0000000000 --- a/packages/runner-shared/.eslintrc.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "plugins": [ - "cypress", - "@cypress/dev" - ], - "extends": [ - "plugin:@cypress/dev/general", - "plugin:@cypress/dev/tests", - "plugin:@cypress/dev/react", - "plugin:react/recommended", - "plugin:react-hooks/recommended", - "../reporter/src/.eslintrc.json" - ], - "parser": "@typescript-eslint/parser", - "env": { - "cypress/globals": true - }, - "rules": { - "react/display-name": "off", - "react/function-component-definition": [ - "error", - { - "namedComponents": "arrow-function", - "unnamedComponents": "arrow-function" - } - ], - "react/jsx-boolean-value": [ - "error", - "always" - ], - "react/jsx-closing-bracket-location": [ - "error", - "line-aligned" - ], - "react/jsx-closing-tag-location": "error", - "react/jsx-curly-brace-presence": [ - "error", - { - "props": "never", - "children": "never" - } - ], - "react/jsx-curly-newline": "error", - "react/jsx-filename-extension": [ - "warn", - { - "extensions": [ - ".js", - ".jsx", - ".tsx" - ] - } - ], - "react/jsx-first-prop-new-line": "error", - "react/jsx-max-props-per-line": [ - "error", - { - "maximum": 1, - "when": "multiline" - } - ], - "react/jsx-no-bind": [ - "error", - { - "ignoreDOMComponents": true - } - ], - "react/jsx-no-useless-fragment": "error", - "react/jsx-one-expression-per-line": [ - "error", - { - "allow": "literal" - } - ], - "react/jsx-sort-props": [ - "error", - { - "callbacksLast": true, - "ignoreCase": true, - "noSortAlphabetically": true, - "reservedFirst": true - } - ], - "react/jsx-tag-spacing": [ - "error", - { - "closingSlash": "never", - "beforeSelfClosing": "always" - } - ], - "react/jsx-wrap-multilines": [ - "error", - { - "declaration": "parens-new-line", - "assignment": "parens-new-line", - "return": "parens-new-line", - "arrow": "parens-new-line", - "condition": "parens-new-line", - "logical": "parens-new-line", - "prop": "parens-new-line" - } - ], - "react/no-array-index-key": "error", - "react/no-unescaped-entities": "off", - "react/prop-types": "off", - "quote-props": [ - "error", - "as-needed" - ] - }, - "overrides": [ - { - "files": [ - "lib/*" - ], - "rules": { - "no-console": 1 - } - }, - { - "files": [ - "**/*.json" - ], - "rules": { - "quotes": "off", - "comma-dangle": "off" - } - }, - { - "files": "*.tsx", - "rules": { - "no-unused-vars": "off", - "react/jsx-no-bind": "off" - } - } - ] -} diff --git a/packages/runner-shared/README.md b/packages/runner-shared/README.md deleted file mode 100644 index e98383a64c..0000000000 --- a/packages/runner-shared/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Runner Shared - -This is an old package, deprecated in favor of `@packages/app`. It has two remaining responsibilities before it can be entirely removed: - -1. Contains `dom.js`, which uses proprietary webpack loaders and cannot easily be imported with Vite (dev server in `@packages/app`). This is bundled via webpack in either `@packages/runner` or `@packages/runner-ct`. Once `dom.js` is free of webpack-specific loader code, we should move it to `@packages/app`. -2. Contains UI code for Cypress Studio, which was marked as experimental in Cypress 9.x and won't be part of Cypress 10.x initially. It will return at a later date. Until then, the code will be here. It's not currently used in the app. \ No newline at end of file diff --git a/packages/runner-shared/package.json b/packages/runner-shared/package.json deleted file mode 100644 index 08b6bf3289..0000000000 --- a/packages/runner-shared/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "@packages/runner-shared", - "version": "0.0.0-development", - "private": true, - "main": "src/index.ts", - "scripts": { - "test": "yarn test-unit", - "test-unit": "mocha --config test/.mocharc.json src/*.spec.* src/**/*.spec.* --exit" - }, - "dependencies": {}, - "devDependencies": { - "@cypress/react-tooltip": "0.5.3", - "@packages/driver": "0.0.0-development", - "@packages/socket": "0.0.0-development", - "@packages/web-config": "0.0.0-development", - "@popperjs/core": "2.9.2", - "ansi-to-html": "0.6.14", - "chai": "4.2.0", - "chai-enzyme": "1.0.0-beta.1", - "classnames": "2.3.1", - "enzyme": "3.11.0", - "enzyme-adapter-react-16": "1.15.2", - "lodash": "^4.17.21", - "mobx": "5.15.4", - "mobx-react": "6.1.8", - "mocha": "7.0.1", - "nanoid": "3.1.31", - "react": "16.8.6", - "react-dom": "16.8.6", - "react-popper": "2.2.5", - "react-shadow-dom-retarget-events": "1.0.11", - "sinon": "7.5.0" - } -} diff --git a/packages/runner-shared/src/index.ts b/packages/runner-shared/src/index.ts deleted file mode 100644 index d5f626c6c6..0000000000 --- a/packages/runner-shared/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './dom' - -export * from './studio' diff --git a/packages/runner-shared/src/static/studio.gif b/packages/runner-shared/src/static/studio.gif deleted file mode 100644 index d0f7c47cc5..0000000000 Binary files a/packages/runner-shared/src/static/studio.gif and /dev/null differ diff --git a/packages/runner-shared/src/studio/index.js b/packages/runner-shared/src/studio/index.js deleted file mode 100644 index 64b5c1b001..0000000000 --- a/packages/runner-shared/src/studio/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './studio' - -export * from './studio-modals' - -export * from './studio-recorder' diff --git a/packages/runner-shared/src/studio/studio-modals.jsx b/packages/runner-shared/src/studio/studio-modals.jsx deleted file mode 100644 index 26a361651a..0000000000 --- a/packages/runner-shared/src/studio/studio-modals.jsx +++ /dev/null @@ -1,186 +0,0 @@ -import { observer } from 'mobx-react' -import React, { Component } from 'react' -import { Dialog } from '@reach/dialog' -import VisuallyHidden from '@reach/visually-hidden' - -import './studio-modals.scss' - -@observer -export class StudioInstructionsModal extends Component { - render () { - return ( - -
-

- - {' '} - Studio - {' '} - BETA -

-
-
- Generate and save commands directly to your test suite by interacting with your app as an end user would. Right click on an element to add an assertion. Studio will track events that generate the following commands: -
-
-
    -
  • -
    .check()
    -
  • -
  • -
    .click()
    -
  • -
  • -
    .select()
    -
  • -
  • -
    .type()
    -
  • -
  • -
    .uncheck()
    -
  • -
-
-
- This feature is currently in Beta and we will be adding more commands and abilities in the future. Your - {' '} - feedback - {' '} - will be highly influential to our team. -
-
-
- -
-
- -
- ) - } -} - -@observer -export class StudioInitModal extends Component { - render () { - return ( - -
-

- - {' '} - Studio - {' '} - BETA -

-
- Studio -
-
-
- Generate Cypress commands by interacting with your site as an end user would. Then, save these commands directly to your test file. -
- -
-
- -
- ) - } - - _close = () => { - this.props.eventManager.studioRecorder.closeInitModal() - this.props.eventManager.studioRecorder.clearRunnableIds() - } - - _start = () => this.props.eventManager.emit('studio:start') -} - -@observer -export class StudioSaveModal extends Component { - state = { - name: '', - } - - render () { - const { name } = this.state - - return ( - -
-

- - {' '} - Save New Test -

-
-
-
- - -
-
- -
-
-
-
- -
- ) - } - - _onInputChange = (e) => { - this.setState({ name: e.target.value }) - } - - _save = (e) => { - e.preventDefault() - - const { name } = this.state - - if (!name) return - - this.props.eventManager.studioRecorder.save(name) - } -} - -export const StudioModals = (props) => ( - <> - - - -) diff --git a/packages/runner-shared/src/studio/studio-modals.scss b/packages/runner-shared/src/studio/studio-modals.scss deleted file mode 100644 index 2339f876e5..0000000000 --- a/packages/runner-shared/src/studio/studio-modals.scss +++ /dev/null @@ -1,141 +0,0 @@ -$font-sans: 'Mulish', 'Helvetica Neue', 'Arial', sans-serif; -$open-sans: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - -.studio-modal { - max-width: 35em; - - .body { - font-family: $font-sans; - margin-bottom: 2em; - margin-top: -0.8em; - - .title { - color: #565554; - font-family: $open-sans; - font-weight: 600; - padding: 0 1em; - - .icon { - color: #3386d4; - margin-right: 5px; - } - - .beta { - color: #959595; - font-weight: 400; - } - } - - .gif { - margin: 15px 0; - width: 100%; - - img { - width: 100%; - } - } - - .content { - .text { - color: #6c6c6c; - padding: 0.5em 1em; - - .text-strong { - color: #565554; - } - - input { - border: 1px solid #9d9ea9; - border-radius: 2px; - box-sizing: border-box; - color: #6c6c6c; - display: block; - font-size: 16px; - font-family: $font-sans; - margin-top: 8px; - padding: 4px; - width: 100%; - - &:focus { - outline: none; - } - } - - ul { - font-size: 16px; - line-height: 22px; - text-align: left; - } - } - - .center-box { - display: flex; - justify-content: center; - } - - .btn-main { - background-color: #3386d4; - border-radius: 0.25em; - color: #fff; - font-family: $font-sans; - padding: 0.8em 4em; - margin-top: 1em; - - &:hover { - background: darken(#3386d4, 10%); - } - - &:focus { - outline: none; - } - - &[disabled], - &[disabled]:hover, - &[disabled]:active { - background-color: #3386d4; - opacity: 0.5; - } - } - } - - .center { - text-align: center; - } - } - - .close-button { - color: #959595; - } - - &.studio-save-modal { - max-width: 25em; - min-width: 20em; - - .body { - margin-bottom: 1em; - - .content .text { - border-top: 1px solid #e1e2e4; - font-size: 16px; - margin-top: 0.8em; - padding-top: 1em; - } - } - } - - &.studio-instructions-modal { - .body { - margin-bottom: 0; - - .content { - padding-top: 0.5em; - padding-bottom: 0.2em; - } - - button { - font-family: $font-sans; - font-size: 12px; - } - } - } -} diff --git a/packages/runner-shared/src/studio/studio-modals.scss.d.ts b/packages/runner-shared/src/studio/studio-modals.scss.d.ts deleted file mode 100644 index 132b232e89..0000000000 --- a/packages/runner-shared/src/studio/studio-modals.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-shared/src/studio/studio-modals.spec.jsx b/packages/runner-shared/src/studio/studio-modals.spec.jsx deleted file mode 100644 index 3bae264f02..0000000000 --- a/packages/runner-shared/src/studio/studio-modals.spec.jsx +++ /dev/null @@ -1,157 +0,0 @@ -import React from 'react' -import { shallow } from 'enzyme' -import sinon from 'sinon' -import { Dialog } from '@reach/dialog' - -import { createEventManager } from '../../test/utils' -import { StudioModals, StudioInstructionsModal, StudioInitModal, StudioSaveModal } from './studio-modals' - -describe('', () => { - let eventManager - - beforeEach(() => { - eventManager = createEventManager() - sinon.stub(eventManager, 'emit') - }) - - afterEach(() => { - eventManager.studioRecorder.cancel() - - sinon.restore() - }) - - it('renders init and save modals', () => { - const component = shallow() - - expect(component.find(StudioInitModal)).to.exist - expect(component.find(StudioSaveModal)).to.exist - }) - - describe('', () => { - it('passes open prop to dialog', () => { - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - - component.setProps({ open: true }) - - expect(component.find(Dialog)).to.have.prop('isOpen', true) - }) - - it('calls close prop on close', () => { - const close = sinon.stub() - const component = shallow() - - component.find('.close-button').simulate('click') - - expect(close).to.be.called - }) - }) - - describe('', () => { - it('is not open by default', () => { - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('is open and closes with studio recorder variable', () => { - eventManager.studioRecorder.initModalIsOpen = true - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', true) - - eventManager.studioRecorder.closeInitModal() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('closes and clears studio runnable ids when close is clicked', () => { - sinon.stub(eventManager.studioRecorder, 'clearRunnableIds') - eventManager.studioRecorder.initModalIsOpen = true - const component = shallow() - - component.find('.close-button').simulate('click') - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - expect(eventManager.studioRecorder.initModalIsOpen).to.equal(false) - expect(eventManager.studioRecorder.clearRunnableIds).to.be.called - }) - - it('emits studio:start when start button is clicked', () => { - eventManager.studioRecorder.initModalIsOpen = true - const component = shallow() - - component.find('.btn-main').simulate('click') - - expect(eventManager.emit).to.be.calledWith('studio:start') - }) - }) - - describe('', () => { - it('is not open by default', () => { - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('is open and closes with studio recorder variable', () => { - eventManager.studioRecorder.saveModalIsOpen = true - const component = shallow() - - expect(component.find(Dialog)).to.have.prop('isOpen', true) - - eventManager.studioRecorder.closeSaveModal() - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - }) - - it('closes when close is clicked', () => { - eventManager.studioRecorder.saveModalIsOpen = true - const component = shallow() - - component.find('.close-button').simulate('click') - - expect(component.find(Dialog)).to.have.prop('isOpen', false) - expect(eventManager.studioRecorder.saveModalIsOpen).to.equal(false) - }) - - context('form', () => { - beforeEach(() => { - sinon.stub(eventManager.studioRecorder, 'save') - - eventManager.studioRecorder.saveModalIsOpen = true - }) - - it('updates input when typed into', () => { - const component = shallow() - - component.find('input').simulate('change', { target: { value: 'my test name' } }) - - expect(component.find('input')).to.have.prop('value', 'my test name') - }) - - it('calls studio recorder save with inputted text on submit', () => { - const component = shallow() - - component.find('input').simulate('change', { target: { value: 'my test name' } }) - - expect(component.find('.btn-main')).to.have.prop('disabled', false) - - component.find('form').simulate('submit', { preventDefault: () => {} }) - - expect(eventManager.studioRecorder.save).to.be.calledWith('my test name') - }) - - it('disables form when there is no input', () => { - const component = shallow() - - expect(component.find('.btn-main')).to.have.prop('disabled', true) - - component.find('form').simulate('submit', { preventDefault: () => {} }) - - expect(eventManager.studioRecorder.save).not.to.be.called - }) - }) - }) -}) diff --git a/packages/runner-shared/src/studio/studio.jsx b/packages/runner-shared/src/studio/studio.jsx deleted file mode 100644 index 5c8939a63f..0000000000 --- a/packages/runner-shared/src/studio/studio.jsx +++ /dev/null @@ -1,139 +0,0 @@ -import React, { Component } from 'react' -import { observer } from 'mobx-react' -import Tooltip from '@cypress/react-tooltip' -import cs from 'classnames' - -import { StudioInstructionsModal } from './studio-modals' - -@observer -class Studio extends Component { - state = { - modalOpen: false, - copySuccess: false, - } - - render () { - const { model, hasUrl } = this.props - const { modalOpen, copySuccess } = this.state - - return ( -
- -
- - - - {' '} - Studio - {' '} - Beta -
- - -
- - - - - - - - - - - - -
-
- ) - } - - _showModal = (e) => { - e.preventDefault() - - if (this.props.model.isLoading) return - - this.setState({ modalOpen: true }) - } - - _closeModal = () => { - this.setState({ modalOpen: false }) - } - - _close = () => { - this.props.eventManager.emit('studio:cancel') - } - - _restart = () => { - this.props.model.reset() - this.props.eventManager.emit('restart') - } - - _copy = () => { - if (this.state.copySuccess) return - - this.props.eventManager.emit('studio:copy:to:clipboard', () => { - this.setState({ copySuccess: true }) - }) - } - - _save = () => { - this.props.model.startSave() - } - - _endCopySuccess = () => { - if (this.state.copySuccess) { - this.setState({ copySuccess: false }) - } - } -} - -export { Studio } diff --git a/packages/runner-shared/src/studio/studio.spec.jsx b/packages/runner-shared/src/studio/studio.spec.jsx deleted file mode 100644 index 3e668ce77d..0000000000 --- a/packages/runner-shared/src/studio/studio.spec.jsx +++ /dev/null @@ -1,156 +0,0 @@ -import React from 'react' -import { shallow } from 'enzyme' -import sinon from 'sinon' -import Tooltip from '@cypress/react-tooltip' - -import { Studio } from './studio' -import { StudioInstructionsModal } from './studio-modals' -import { createEventManager } from '../../test/utils' - -const createModel = (props) => { - return { - isActive: false, - isLoading: false, - reset: sinon.stub(), - startSave: sinon.stub(), - ...props, - } -} - -describe('', () => { - let eventManager - - beforeEach(() => { - eventManager = createEventManager() - }) - - context('icon', () => { - it('is not active when studio is not active', () => { - const component = shallow() - - expect(component.find('.icon')).not.to.have.className('is-active') - }) - - it('is not active when there is no url', () => { - const component = shallow() - - expect(component.find('.icon')).not.to.have.className('is-active') - }) - - it('is active when studio is active and there is a url', () => { - const component = shallow() - - expect(component.find('.icon')).to.have.className('is-active') - }) - - it('is not active when test has failed', () => { - const component = shallow() - - expect(component.find('.icon')).not.to.have.className('is-active') - }) - }) - - context('header links', () => { - it('does not show modal by default', () => { - const component = shallow() - - expect(component.find(StudioInstructionsModal)).to.have.prop('open', false) - }) - - it('shows model when available commands is clicked', () => { - const component = shallow() - - component.find('.available-commands').simulate('click', { preventDefault: () => {} }) - - expect(component.find(StudioInstructionsModal)).to.have.prop('open', true) - }) - - it('disables available commands link while loading', () => { - const component = shallow() - - expect(component.find('.available-commands')).to.have.className('link-disabled') - - component.find('.available-commands').simulate('click', { preventDefault: () => {} }) - - expect(component.find(StudioInstructionsModal)).to.have.prop('open', false) - }) - - it('disables feedback link while loading', () => { - const component = shallow() - - expect(component.find('.give-feedback')).to.have.className('link-disabled') - expect(component.find('.give-feedback')).not.to.have.prop('href') - }) - }) - - context('controls', () => { - beforeEach(() => { - sinon.stub(eventManager, 'emit') - }) - - afterEach(() => { - sinon.restore() - }) - - it('disables all controls while studio is loading', () => { - const component = shallow() - - expect(component.find('.button-studio-close')).to.have.prop('disabled', true) - expect(component.find('.button-studio-restart')).to.have.prop('disabled', true) - expect(component.find('.button-studio-save')).to.have.prop('disabled', true) - }) - - it('renders tooltips', () => { - const component = shallow() - - expect(component.find(Tooltip).at(0)).to.have.prop('title', 'Close Studio') - expect(component.find(Tooltip).at(1)).to.have.prop('title', 'Restart') - expect(component.find(Tooltip).at(2)).to.have.prop('title', 'Copy Commands to Clipboard') - expect(component.find(Tooltip).at(3)).to.have.prop('title', 'Save Commands') - }) - - it('hides all tooltips while studio is loading', () => { - const component = shallow() - - expect(component.find(Tooltip).at(0)).to.have.prop('visible', false) - expect(component.find(Tooltip).at(1)).to.have.prop('visible', false) - expect(component.find(Tooltip).at(2)).to.have.prop('visible', false) - expect(component.find(Tooltip).at(3)).to.have.prop('visible', false) - }) - - it('emits studio:cancel when close button is clicked', () => { - const component = shallow() - - component.find('.button-studio-close').simulate('click') - - expect(eventManager.emit).to.be.calledWith('studio:cancel') - }) - - it('resets studio recorder and emits restart when restart button is clicked', () => { - const model = createModel({ isActive: true }) - const component = shallow() - - component.find('.button-studio-restart').simulate('click') - - expect(model.reset).to.be.called - expect(eventManager.emit).to.be.calledWith('restart') - }) - - it('starts copy to clipboard process when copy button is clicked', () => { - const component = shallow() - - component.find('.button-studio-copy').simulate('click') - - expect(eventManager.emit).to.be.calledWith('studio:copy:to:clipboard') - }) - - it('starts studio recorder saving when save button is clicked', () => { - const model = createModel({ isActive: true }) - const component = shallow() - - component.find('.button-studio-save').simulate('click') - - expect(model.startSave).to.be.called - }) - }) -}) diff --git a/packages/runner-shared/src/styles.module.scss.d.ts b/packages/runner-shared/src/styles.module.scss.d.ts deleted file mode 100644 index fd8bc08458..0000000000 --- a/packages/runner-shared/src/styles.module.scss.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -// This file is automatically generated. -// Please do not change this file! -interface CssExports { - 'specsList': string; -} -export const cssExports: CssExports; -export default cssExports; diff --git a/packages/runner-shared/test/.mocharc.json b/packages/runner-shared/test/.mocharc.json deleted file mode 100644 index 741f9e0f78..0000000000 --- a/packages/runner-shared/test/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "file": "test/helper.js", - "require": "../web-config/node-register", - "extension": "ts,jsx,tsx,js" -} diff --git a/packages/runner-shared/test/helper.js b/packages/runner-shared/test/helper.js deleted file mode 100644 index 383df48c51..0000000000 --- a/packages/runner-shared/test/helper.js +++ /dev/null @@ -1,48 +0,0 @@ -import { returnMockRequire, register } from '@packages/web-config/node-jsdom-setup' -import 'regenerator-runtime/runtime' -import sinon from 'sinon' - -const driverMock = {} - -register({ - enzyme: require('enzyme'), - EnzymeAdapter: require('enzyme-adapter-react-16'), - chaiEnzyme: require('chai-enzyme'), - requireOverride (depPath) { - if (depPath === '@packages/driver') { - return driverMock - } - - // TODO: refactor w/ regex - if (depPath.includes('.gif')) { - return '' - } - }, -}) - -returnMockRequire('@packages/socket/lib/browser', { - client () { - return { emit: () => {}, on: () => {} } - }, -}) - -const _useFakeTimers = sinon.useFakeTimers -let timers = [] - -sinon.useFakeTimers = function (...args) { - const ret = _useFakeTimers.apply(this, args) - - timers.push(ret) -} - -beforeEach(() => { - driverMock.$ = sinon.stub().throws('$ called without being stubbed') -}) - -afterEach(() => { - timers.forEach((clock) => { - return clock.restore() - }) - - timers = [] -}) diff --git a/packages/runner-shared/test/utils.ts b/packages/runner-shared/test/utils.ts deleted file mode 100644 index 6fd5d6fd0c..0000000000 --- a/packages/runner-shared/test/utils.ts +++ /dev/null @@ -1,21 +0,0 @@ -import $Cypress from '@packages/driver' -import { EventManager } from '@packages/app/src/runner/event-manager' -import type { Socket } from '@packages/socket/lib/browser' -import { StudioRecorder } from '../src/studio' -import * as MobX from 'mobx' - -export const StubWebsocket = new Proxy(Object.create(null), { - get: (obj, prop) => { - throw Error(`Cannot access ${String(prop)} on StubWebsocket!`) - }, -}) - -export const createEventManager = () => { - return new EventManager( - $Cypress, - MobX, - {}, // TODO: Bring back "Cypress Studio" and integrate with 10.x runner // selectorPlaygroundModel - StudioRecorder, - StubWebsocket, - ) -} diff --git a/packages/runner-shared/tsconfig.json b/packages/runner-shared/tsconfig.json deleted file mode 100644 index dedbeae405..0000000000 --- a/packages/runner-shared/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../ts/tsconfig.dom.json", - "compilerOptions": { - "jsx": "react", - "experimentalDecorators": true - } -} \ No newline at end of file diff --git a/packages/runner/README.md b/packages/runner/README.md index f3c6b7b99d..5c0c56cf95 100644 --- a/packages/runner/README.md +++ b/packages/runner/README.md @@ -4,4 +4,6 @@ This is an old package, deprecated in favor of `@packages/app`. It has two remai 1. Bundles `@packages/reporter` and `@packages/driver` via webpack. Once those can be directly imported to `@packages/app`, we can remove this. 2. Bundles styles for `@packages/reporter`, loaded in `main.scss`. Ideally, reporter should import its own styles. -3. Some existing tests in `cypress/e2e` should be migrated to `@packages/app/cypress/e2e/runner`. +3. Contains `dom.js`, which uses proprietary webpack loaders and cannot easily be imported with Vite (dev server in `@packages/app`). Once `dom.js` is free of webpack-specific loader code, we should move it to `@packages/app`. +4. Contains Cypress Studio Recorder code, which was marked as experimental in Cypress 9.x and won't be part of Cypress 10.x initially. It will return at a later date. Until then, the code will be here. It's not currently used in the app. @see https://github.com/cypress-io/cypress/issues/22870 +5. Contains Legacy Cypress styles, most of these can likely be removed. diff --git a/packages/runner/package.json b/packages/runner/package.json index 5d7182edbc..73c2531d54 100644 --- a/packages/runner/package.json +++ b/packages/runner/package.json @@ -19,11 +19,9 @@ "@fortawesome/fontawesome-free": "6.0.0", "@packages/driver": "0.0.0-development", "@packages/icons": "0.0.0-development", - "@packages/network": "0.0.0-development", "@packages/reporter": "0.0.0-development", - "@packages/rewriter": "0.0.0-development", - "@packages/socket": "0.0.0-development", "@packages/web-config": "0.0.0-development", + "@popperjs/core": "2.9.2", "babel-plugin-prismjs": "1.0.2", "bluebird": "3.5.3", "classnames": "2.3.1", @@ -36,6 +34,8 @@ "prop-types": "15.7.2", "react": "16.8.6", "react-dom": "16.8.6", + "react-popper": "2.2.5", + "react-shadow-dom-retarget-events": "1.0.11", "rimraf": "3.0.2", "webpack": "^4.44.2", "webpack-cli": "3.3.2" diff --git a/packages/runner-shared/src/dimensions.js b/packages/runner/src/dom/dimensions.js similarity index 100% rename from packages/runner-shared/src/dimensions.js rename to packages/runner/src/dom/dimensions.js diff --git a/packages/runner-shared/src/dom.js b/packages/runner/src/dom/dom.js similarity index 96% rename from packages/runner-shared/src/dom.js rename to packages/runner/src/dom/dom.js index 547ae45a93..d8a5b42b43 100644 --- a/packages/runner-shared/src/dom.js +++ b/packages/runner/src/dom/dom.js @@ -3,12 +3,12 @@ import retargetEvents from 'react-shadow-dom-retarget-events' import $Cypress from '@packages/driver' import $dimensions from './dimensions' -import { selectorPlaygroundHighlight } from './selector-playground/highlight' -import { studioAssertionsMenu } from './studio/assertions-menu' +import { selectorPlaygroundHighlight } from '../selector-playground/highlight' +import { studioAssertionsMenu } from '../studio/assertions-menu' // The '!' tells webpack to disable normal loaders, and keep loaders with `enforce: 'pre'` and `enforce: 'post'` // This disables the CSSExtractWebpackPlugin and allows us to get the CSS as a raw string instead of saving it to a separate file. -import selectorPlaygroundCSS from '!./selector-playground/selector-playground.scss' -import studioAssertionsMenuCSS from '!./studio/assertions-menu.scss' +import selectorPlaygroundCSS from '!../selector-playground/selector-playground.scss' +import studioAssertionsMenuCSS from '!../studio/assertions-menu.scss' const $ = $Cypress.$ const styles = (styleString) => { diff --git a/packages/runner/src/dom/index.ts b/packages/runner/src/dom/index.ts new file mode 100644 index 0000000000..436c9b729f --- /dev/null +++ b/packages/runner/src/dom/index.ts @@ -0,0 +1 @@ +export * from './dom' diff --git a/packages/runner/src/main.jsx b/packages/runner/src/main.jsx index 584695d7ff..f84214f920 100644 --- a/packages/runner/src/main.jsx +++ b/packages/runner/src/main.jsx @@ -1,3 +1,3 @@ -import { UnifiedRunner } from '@packages/runner-ct/unified-runner' +import { UnifiedRunner } from '../unified-runner' window.UnifiedRunner = UnifiedRunner diff --git a/packages/runner-shared/src/selector-playground/highlight.jsx b/packages/runner/src/selector-playground/highlight.jsx similarity index 100% rename from packages/runner-shared/src/selector-playground/highlight.jsx rename to packages/runner/src/selector-playground/highlight.jsx diff --git a/packages/runner-shared/src/selector-playground/selector-playground.scss b/packages/runner/src/selector-playground/selector-playground.scss similarity index 100% rename from packages/runner-shared/src/selector-playground/selector-playground.scss rename to packages/runner/src/selector-playground/selector-playground.scss diff --git a/packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts b/packages/runner/src/selector-playground/selector-playground.scss.d.ts similarity index 100% rename from packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts rename to packages/runner/src/selector-playground/selector-playground.scss.d.ts diff --git a/packages/runner-shared/src/studio/assertions-menu.jsx b/packages/runner/src/studio/assertions-menu.jsx similarity index 100% rename from packages/runner-shared/src/studio/assertions-menu.jsx rename to packages/runner/src/studio/assertions-menu.jsx diff --git a/packages/runner-shared/src/studio/assertions-menu.scss b/packages/runner/src/studio/assertions-menu.scss similarity index 100% rename from packages/runner-shared/src/studio/assertions-menu.scss rename to packages/runner/src/studio/assertions-menu.scss diff --git a/packages/runner-shared/src/studio/assertions-menu.scss.d.ts b/packages/runner/src/studio/assertions-menu.scss.d.ts similarity index 100% rename from packages/runner-shared/src/studio/assertions-menu.scss.d.ts rename to packages/runner/src/studio/assertions-menu.scss.d.ts diff --git a/packages/runner/src/studio/index.js b/packages/runner/src/studio/index.js new file mode 100644 index 0000000000..22cd071dbb --- /dev/null +++ b/packages/runner/src/studio/index.js @@ -0,0 +1,5 @@ +// Studio tests have been removed with v10 update. +// You can find the tests in the PR below. +// @see https://github.com/cypress-io/cypress/pull/9542 + +export * from './studio-recorder' diff --git a/packages/runner-shared/src/studio/studio-recorder.js b/packages/runner/src/studio/studio-recorder.js similarity index 100% rename from packages/runner-shared/src/studio/studio-recorder.js rename to packages/runner/src/studio/studio-recorder.js diff --git a/packages/runner-shared/src/studio/studio-recorder.spec.js b/packages/runner/src/studio/studio-recorder.spec.js similarity index 100% rename from packages/runner-shared/src/studio/studio-recorder.spec.js rename to packages/runner/src/studio/studio-recorder.spec.js diff --git a/packages/runner-ct/unified-runner.tsx b/packages/runner/unified-runner.tsx similarity index 84% rename from packages/runner-ct/unified-runner.tsx rename to packages/runner/unified-runner.tsx index f7967c6d55..0b1da15c9f 100644 --- a/packages/runner-ct/unified-runner.tsx +++ b/packages/runner/unified-runner.tsx @@ -1,14 +1,13 @@ import React from 'react' import ReactDOM from 'react-dom' import $Cypress from '@packages/driver' -import { - StudioRecorder, - dom, -} from '@packages/runner-shared' import { Reporter } from '@packages/reporter/src/main' import shortcuts from '@packages/reporter/src/lib/shortcuts' import * as MobX from 'mobx' +import { StudioRecorder } from './src/studio' +import { dom } from './src/dom' + export const UnifiedRunner = { CypressJQuery: $Cypress.$, diff --git a/packages/runner/webpack.config.ts b/packages/runner/webpack.config.ts index 5bfa67431e..edb882efc9 100644 --- a/packages/runner/webpack.config.ts +++ b/packages/runner/webpack.config.ts @@ -1,9 +1,11 @@ import _ from 'lodash' -import { getCommonConfig, getSimpleConfig } from '@packages/web-config/webpack.config.base' +import { getCommonConfig, getSimpleConfig, getCopyWebpackPlugin } from '@packages/web-config/webpack.config.base' +import * as cyIcons from '@packages/icons' import path from 'path' import webpack from 'webpack' const commonConfig = getCommonConfig() +const CopyWebpackPlugin = getCopyWebpackPlugin() // @ts-ignore const babelLoader = _.find(commonConfig.module.rules, (rule) => { @@ -56,6 +58,16 @@ const mainConfig: webpack.Configuration = { }, } +// @ts-ignore +mainConfig.plugins = [ + // @ts-ignore + ...mainConfig.plugins, + new CopyWebpackPlugin([{ + // @ts-ignore // There's a race condition in how these types are generated. + from: cyIcons.getPathToFavicon('favicon.ico'), + }]), +] + mainConfig.resolve = { ...mainConfig.resolve, alias: { diff --git a/packages/server/lib/controllers/runner.ts b/packages/server/lib/controllers/runner.ts index 43bf3a1758..ffa8f1e417 100644 --- a/packages/server/lib/controllers/runner.ts +++ b/packages/server/lib/controllers/runner.ts @@ -92,8 +92,7 @@ export const runner = { }, handle (testingType, req: Request, res: Response) { - // FIXME: Why is runner-ct being used for all injections? Can anyone comment here as to why this changed? - const pathToFile = getPathToDist(testingType === 'e2e' ? 'runner' : 'runner-ct', req.params[0]) + const pathToFile = getPathToDist('runner', req.params[0]) return send(req, pathToFile) .pipe(res) diff --git a/packages/server/lib/routes-ct.ts b/packages/server/lib/routes-ct.ts index 8d9bd6769b..36f99a6c19 100644 --- a/packages/server/lib/routes-ct.ts +++ b/packages/server/lib/routes-ct.ts @@ -7,7 +7,7 @@ import { getPathToDist } from '@packages/resolve-dist' const debug = Debug('cypress:server:routes-ct') const serveChunk = (req: Request, res: Response, clientRoute: string) => { - let pathToFile = getPathToDist('runner-ct', req.originalUrl.replace(clientRoute, '')) + let pathToFile = getPathToDist('runner', req.originalUrl.replace(clientRoute, '')) return send(req, pathToFile).pipe(res) } @@ -47,7 +47,7 @@ export const createRoutesCT = ({ throw Error(`clientRoute is required. Received ${clientRoute}`) } - // enables runner-ct to make a dynamic import + // enables runner to make a dynamic import routesCt.get([ `${clientRoute}ctChunk-*`, `${clientRoute}vendors~ctChunk-*`, diff --git a/packages/server/lib/runner-ct.ts b/packages/server/lib/runner-ct.ts index 9cf2026954..bc6e192e5a 100644 --- a/packages/server/lib/runner-ct.ts +++ b/packages/server/lib/runner-ct.ts @@ -13,7 +13,7 @@ interface ServeOptions { const debug = Debug('cypress:server:runner-ct') export const handle = (req, res) => { - const pathToFile = getPathToDist('runner-ct', req.params[0]) + const pathToFile = getPathToDist('runner', req.params[0]) return send(req, pathToFile) .pipe(res) @@ -47,7 +47,7 @@ export const makeServeConfig = (options) => { export const serve = (req, res, options: ServeOptions) => { const config = makeServeConfig(options) - const runnerPath = process.env.CYPRESS_INTERNAL_RUNNER_PATH || getPathToIndex('runner-ct') + const runnerPath = process.env.CYPRESS_INTERNAL_RUNNER_PATH || getPathToIndex('runner') return res.render(runnerPath, config) } diff --git a/scripts/gulp/monorepoPaths.ts b/scripts/gulp/monorepoPaths.ts index dc3f5c3d53..0328cb681b 100644 --- a/scripts/gulp/monorepoPaths.ts +++ b/scripts/gulp/monorepoPaths.ts @@ -27,8 +27,6 @@ export const monorepoPaths = { pkgRewriter: path.join(__dirname, '../../packages/rewriter'), pkgRoot: path.join(__dirname, '../../packages/root'), pkgRunner: path.join(__dirname, '../../packages/runner'), - pkgRunnerCt: path.join(__dirname, '../../packages/runner-ct'), - pkgRunnerShared: path.join(__dirname, '../../packages/runner-shared'), pkgScaffoldConfig: path.join(__dirname, '../../packages/scaffold-config'), pkgServer: path.join(__dirname, '../../packages/server'), pkgSocket: path.join(__dirname, '../../packages/socket'), diff --git a/scripts/unit/binary/util/packages-spec.js b/scripts/unit/binary/util/packages-spec.js index 6bb51f7ae8..5572e21df4 100644 --- a/scripts/unit/binary/util/packages-spec.js +++ b/scripts/unit/binary/util/packages-spec.js @@ -55,8 +55,6 @@ describe('rewritePackageNames', () => { it('renames requires', () => { const fileStr = ` const a = require('@packages/server') - const b = require('@packages/runner-ct/') - const c = require("@packages/runner-ct/lib/quux.js") ` const stub = sinon.stub() @@ -65,13 +63,9 @@ describe('rewritePackageNames', () => { expect(newStr).to.eq(` const a = require('../../build/packages/server') - const b = require('../../build/packages/runner-ct/') - const c = require("../../build/packages/runner-ct/lib/quux.js") `) expect(stub.getCall(0).args[0]).to.eq(`require('../../build/packages/server'`) - expect(stub.getCall(1).args[0]).to.eq(`require('../../build/packages/runner-ct/`) - expect(stub.getCall(2).args[0]).to.eq(`require("../../build/packages/runner-ct/`) }) }) diff --git a/yarn.lock b/yarn.lock index 2eee991457..2b89bd23b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -896,7 +896,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7", "@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.17.2", "@babel/core@^7.17.9", "@babel/core@^7.4.5", "@babel/core@^7.5.4", "@babel/core@^7.7.5": +"@babel/core@^7", "@babel/core@^7.0.0", "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.17.2", "@babel/core@^7.17.9", "@babel/core@^7.4.5", "@babel/core@^7.5.4", "@babel/core@^7.7.5": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== @@ -2076,7 +2076,7 @@ levenary "^1.1.1" semver "^5.5.0" -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.4.5": +"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.4.5": version "7.16.11" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== @@ -2977,30 +2977,11 @@ resolved "https://registry.yarnpkg.com/@fontsource/open-sans/-/open-sans-4.3.0.tgz#960c3d9df5e841369e47d775dbb1a80212ff08d1" integrity sha512-U4mz+KC0WT0AbjR5BanmfXbtkirFU3puOCOblJ3dm8ekV+SfZ4QSjpEryNCaY16gqNgKtwMWMOtVvlNPmc9gfw== -"@fortawesome/fontawesome-common-types@^0.2.34": - version "0.2.35" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.35.tgz#01dd3d054da07a00b764d78748df20daf2b317e9" - integrity sha512-IHUfxSEDS9dDGqYwIW7wTN6tn/O8E0n5PcAHz9cAaBoZw6UpG20IG/YM3NNLaGPwPqgjBAFjIURzqoQs3rrtuw== - "@fortawesome/fontawesome-free@6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0.tgz#6f3bd8e42997c7d536a1246877ed8bcd4f005a54" integrity sha512-6LB4PYBST1Rx40klypw1SmSDArjFOcfBf2LeX9Zg5EKJT2eXiyiJq+CyBYKeXyK0sXS2FsCJWSPr/luyhuvh0Q== -"@fortawesome/free-regular-svg-icons@5.15.2": - version "5.15.2" - resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.2.tgz#61eeb8c206e792c530eaa58279cc32c55332fe8f" - integrity sha512-Uv5NQCYjyisNVTu/1Xjs+z8vwQjbfT6hiqYvQNfF0n8qdgfWLM581bAfVMQ3BCs1SPy+eEUKNcGkK4n0FihFHg== - dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.34" - -"@fortawesome/react-fontawesome@^0.1.17": - version "0.1.17" - resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.17.tgz#06fc06cb1a721e38e5b50b4a1cb851e9b9c77d7a" - integrity sha512-dX43Z5IvMaW7fwzU8farosYjKNGfRb2HB/DgjVBHeJZ/NSnuuaujPPx0YOdcAq+n3mqn70tyCde2HM1mqbhiuw== - dependencies: - prop-types "^15.8.1" - "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -7142,11 +7123,6 @@ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== -"@types/sockjs-client@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/sockjs-client/-/sockjs-client-1.1.0.tgz#978e7ae2a0a54af366c2cb0cdb73fdbf0d7a9c8f" - integrity sha512-F3gD7AakaPGzzdTmvN8HYxlNL+vTnMykYSUoukRTRGUntH4lwjxG5wx3ZwdYBTA3sTo4duxHY+rRZMbIEBxhRQ== - "@types/sockjs@^0.3.33": version "0.3.33" resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" @@ -7360,7 +7336,7 @@ "@types/webpack-sources" "*" source-map "^0.6.0" -"@types/webpack@^4", "@types/webpack@^4.4.31", "@types/webpack@^4.41.12", "@types/webpack@^4.41.21", "@types/webpack@^4.41.8": +"@types/webpack@^4", "@types/webpack@^4.41.12", "@types/webpack@^4.41.21", "@types/webpack@^4.41.8": version "4.41.32" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== @@ -8324,7 +8300,7 @@ abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1: dependencies: xtend "~3.0.0" -accepts@^1.3.5, accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8: +accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7, 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== @@ -8781,7 +8757,7 @@ any-observable@^0.3.0: resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== -any-promise@^1.0.0, any-promise@^1.1.0: +any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= @@ -9153,7 +9129,7 @@ array.prototype.find@^2.1.1: define-properties "^1.1.3" es-abstract "^1.17.4" -array.prototype.flat@^1.2.3, array.prototype.flat@^1.2.5: +array.prototype.flat@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== @@ -11498,14 +11474,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cache-content-type@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== - dependencies: - mime-types "^2.1.18" - ylru "^1.2.0" - cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -11738,11 +11706,6 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -cash-dom@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/cash-dom/-/cash-dom-8.1.0.tgz#ed8e278231c071b6596618131bd4320c57d32a31" - integrity sha512-QTa50rFuPaX8klEDEbwLr+jVutwpvZEBQ0NpMMyng+je7gNe9Bz/JsOLHIG24tvNSSSIN/Q1QD0bnF6PQzWKHA== - center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -11758,13 +11721,6 @@ chai-as-promised@7.1.1: dependencies: check-error "^1.0.2" -chai-enzyme@1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/chai-enzyme/-/chai-enzyme-1.0.0-beta.1.tgz#a2ba3f23b99b0c3f67e3485e32b35e797255acda" - integrity sha512-vWT101M7qjq6kM/29G4vHrgLM4Mj1gCnKuvOSF03s8pFVsqol4B6USoGM/aYRKqaaIHs8/AxmHjWGFplQWhIQw== - dependencies: - html "^1.0.0" - chai-string@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.5.0.tgz#0bdb2d8a5f1dbe90bc78ec493c1c1c180dd4d3d2" @@ -12236,14 +12192,6 @@ clean-webpack-plugin@2.0.2: dependencies: del "^4.0.0" -clean-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz#a99d8ec34c1c628a4541567aa7b457446460c62b" - integrity sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A== - dependencies: - "@types/webpack" "^4.4.31" - del "^4.1.1" - cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" @@ -12874,7 +12822,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.4.4, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: +concat-stream@1.6.2, concat-stream@^1.4.4, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@^1.6.2, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -13015,7 +12963,7 @@ content-disposition@0.5.3: dependencies: safe-buffer "5.1.2" -content-disposition@0.5.4, content-disposition@^0.5.4, content-disposition@~0.5.2: +content-disposition@0.5.4, 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== @@ -13200,14 +13148,6 @@ cookiejar@^2.1.0, cookiejar@^2.1.2: resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== -cookies@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== - dependencies: - depd "~2.0.0" - keygrip "~1.1.0" - copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -14169,7 +14109,7 @@ deep-eql@^3.0.0, deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-equal@^1.0.1, deep-equal@~1.0.1: +deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= @@ -14397,7 +14337,7 @@ depd@^1.1.2, depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -depd@^2.0.0, depd@~2.0.0: +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== @@ -14471,7 +14411,7 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@^1.0.4, destroy@~1.0.4: +destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= @@ -14672,11 +14612,6 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= - disparity@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/disparity/-/disparity-3.0.0.tgz#605288e8ebf38c5ccfe1e0dbc49ca6f724096500" @@ -15402,22 +15337,7 @@ enzyme-adapter-react-16@1.12.1: react-test-renderer "^16.0.0-0" semver "^5.6.0" -enzyme-adapter-react-16@1.15.2: - version "1.15.2" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501" - integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q== - dependencies: - enzyme-adapter-utils "^1.13.0" - enzyme-shallow-equal "^1.0.1" - has "^1.0.3" - object.assign "^4.1.0" - object.values "^1.1.1" - prop-types "^15.7.2" - react-is "^16.12.0" - react-test-renderer "^16.0.0-0" - semver "^5.7.0" - -enzyme-adapter-utils@^1.11.0, enzyme-adapter-utils@^1.13.0: +enzyme-adapter-utils@^1.11.0: version "1.14.0" resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0" integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg== @@ -15430,42 +15350,6 @@ enzyme-adapter-utils@^1.11.0, enzyme-adapter-utils@^1.13.0: prop-types "^15.7.2" semver "^5.7.1" -enzyme-shallow-equal@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e" - integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q== - dependencies: - has "^1.0.3" - object-is "^1.1.2" - -enzyme@3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" - has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" - object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" - eol@0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" @@ -15765,7 +15649,7 @@ escape-goat@^2.0.0: resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== -escape-html@1.0.3, escape-html@^1.0.3, escape-html@~1.0.3: +escape-html@1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= @@ -15937,7 +15821,7 @@ eslint-plugin-jsx-a11y@6.2.3: has "^1.0.3" jsx-ast-utils "^2.2.1" -eslint-plugin-mocha@8.1.0, eslint-plugin-mocha@^8.0.0, eslint-plugin-mocha@^8.1.0: +eslint-plugin-mocha@8.1.0, eslint-plugin-mocha@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-8.1.0.tgz#b9aebbede46a808e46e622c8fd99d2a2f353e725" integrity sha512-1EgHvXKRl7W3mq3sntZAi5T24agRMyiTPL4bSXe+B4GksYOjAPEWYx+J3eJg4It1l2NMNZJtk0gQyQ6mfiPhQg== @@ -15960,11 +15844,6 @@ eslint-plugin-react-hooks@^1.6.1: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== -eslint-plugin-react-hooks@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz#318dbf312e06fab1c835a4abef00121751ac1172" - integrity sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA== - eslint-plugin-react@7.14.3: version "7.14.3" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13" @@ -16340,13 +16219,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== - dependencies: - merge "^1.2.0" - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -17626,7 +17498,7 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -fresh@0.5.2, fresh@~0.5.2: +fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= @@ -19265,11 +19137,6 @@ hosted-git-info@^5.0.0: dependencies: lru-cache "^7.5.1" -hotkeys-js@3.8.2: - version "3.8.2" - resolved "https://registry.yarnpkg.com/hotkeys-js/-/hotkeys-js-3.8.2.tgz#177c3e7dc19279c881e69983177849bed76e4747" - integrity sha512-HZZ9RVNr3nBbs2nW968o4rp3xXSdPjJ4B7GTXE375WwboltDJMsP9mcHfAAv+igsTeVxetr10mEbnoac/1U+oQ== - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -19290,14 +19157,6 @@ hsla-regex@^1.0.0: resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -html-element-map@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.0.tgz#fcf226985d7111e6c2b958169312ec750d02f0d3" - integrity sha512-AqCt/m9YaiMwaaAyOPdq4Ga0cM+jdDWWGueUMkdROZcTeClaGpN0AQeyGchZhTegQoABmc6+IqH7oCR/8vhQYg== - dependencies: - array-filter "^1.0.0" - call-bind "^1.0.2" - html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -19364,7 +19223,7 @@ html-tags@^3.0.0, html-tags@^3.1.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== -"html-webpack-plugin-4@npm:html-webpack-plugin@^4", html-webpack-plugin@4.5.2, html-webpack-plugin@^4.5.0: +"html-webpack-plugin-4@npm:html-webpack-plugin@^4", html-webpack-plugin@4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== @@ -19402,13 +19261,6 @@ html-webpack-plugin@4.0.0-beta.5: tapable "^1.1.0" util.promisify "1.0.0" -html@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz#a544fa9ea5492bfb3a2cca8210a10be7b5af1f61" - integrity sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E= - dependencies: - concat-stream "^1.4.7" - htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" @@ -19436,14 +19288,6 @@ htmlparser2@^6.0.0, htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-assert@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== - dependencies: - deep-equal "~1.0.1" - http-errors "~1.7.2" - http-cache-semantics@3.8.1, http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -19481,7 +19325,7 @@ http-errors@1.8.0: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@1.8.1, http-errors@^1.6.3: +http-errors@1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== @@ -20303,7 +20147,7 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: +is-boolean-object@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== @@ -20320,7 +20164,7 @@ is-buffer@~2.0.3: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== @@ -20765,7 +20609,7 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.0.3, is-regex@^1.0.5, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: +is-regex@^1.0.3, is-regex@^1.1.0, is-regex@^1.1.1, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -20841,11 +20685,6 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= - is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -22312,13 +22151,6 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" -keygrip@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== - dependencies: - tsscmp "1.0.6" - keyv@3.0.0, keyv@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -22391,55 +22223,6 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -koa-compose@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= - dependencies: - any-promise "^1.1.0" - -koa-compose@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== - -koa-convert@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= - dependencies: - co "^4.6.0" - koa-compose "^3.0.0" - -koa@^2.13.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" - integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== - dependencies: - accepts "^1.3.5" - cache-content-type "^1.0.0" - content-disposition "~0.5.2" - content-type "^1.0.4" - cookies "~0.8.0" - debug "~3.1.0" - delegates "^1.0.0" - depd "^2.0.0" - destroy "^1.0.4" - encodeurl "^1.0.2" - escape-html "^1.0.3" - fresh "~0.5.2" - http-assert "^1.3.0" - http-errors "^1.6.3" - is-generator-function "^1.0.7" - koa-compose "^4.1.0" - koa-convert "^1.2.0" - on-finished "^2.3.0" - only "~0.0.2" - parseurl "^1.3.2" - statuses "^1.5.0" - type-is "^1.6.16" - vary "^1.1.2" - kolorist@^1.5.0, kolorist@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" @@ -23197,11 +22980,6 @@ lodash.difference@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= - lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" @@ -23242,11 +23020,6 @@ lodash.isboolean@^3.0.3: resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= - lodash.isfunction@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" @@ -24132,7 +23905,7 @@ mime-types@2.1.27: dependencies: mime-db "1.44.0" -mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.21, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.34, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.21, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.34, mime-types@~2.1.17, mime-types@~2.1.19, 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== @@ -24956,11 +24729,6 @@ moment@^2.9.0: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== -moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== - morgan@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59" @@ -25116,11 +24884,6 @@ nanoid@3.1.20: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== -nanoid@3.1.31: - version "3.1.31" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.31.tgz#f5b58a1ce1b7604da5f0605757840598d8974dc6" - integrity sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A== - nanoid@3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" @@ -25173,16 +24936,6 @@ ncp@^1.0.1: resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246" integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY= -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -26114,12 +25867,12 @@ object-hash@^1.3.1: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== -object-inspect@^1.11.0, object-inspect@^1.7.0, object-inspect@^1.9.0: +object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.12.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== -object-is@^1.0.2, object-is@^1.1.2, object-is@^1.1.4: +object-is@^1.1.2, object-is@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== @@ -26188,7 +25941,7 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: for-own "^1.0.0" isobject "^3.0.0" -object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.2, object.entries@^1.1.5: +object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== @@ -26328,11 +26081,6 @@ onigasm@^2.2.5: dependencies: lru-cache "^5.1.1" -only@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= - open@8.2.1: version "8.2.1" resolved "https://registry.yarnpkg.com/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" @@ -27102,7 +26850,7 @@ parseuri@0.0.6: resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== -parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: +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== @@ -28540,7 +28288,7 @@ prop-types@15.7.2: object-assign "^4.1.1" react-is "^16.8.1" -prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -28930,11 +28678,6 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= - ramda@0.25.0, ramda@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.25.0.tgz#8fdf68231cffa90bc2f9460390a0cb74a29b29a9" @@ -28955,14 +28698,6 @@ ramda@0.27.1, ramda@^0.27.1: resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - randexp@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.5.3.tgz#f31c2de3148b30bdeb84b7c3f59b0ebb9fec3738" @@ -29133,11 +28868,6 @@ react-dev-utils@^9.1.0: strip-ansi "5.2.0" text-table "0.2.0" -react-devtools-inline@^4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/react-devtools-inline/-/react-devtools-inline-4.10.1.tgz#7eed62ae7d42b025a6da40f8b5ca7878f3546493" - integrity sha512-Ngar+Fl0LVC5JilIoVFma5Mh31KM3vp7/jFGc7QpbCSZs8H0yI3VUVApzEyqVVUcOIRIc31cGbX79UzDSF6CVQ== - "react-dom-15.6.1@npm:react-dom@15.6.1": version "15.6.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.1.tgz#2cb0ed4191038e53c209eb3a79a23e2a4cf99470" @@ -29225,11 +28955,6 @@ react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.1, react-is@^16.8.6: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - react-popper@2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96" @@ -29344,22 +29069,6 @@ react-shadow-dom-retarget-events@1.0.11: resolved "https://registry.yarnpkg.com/react-shadow-dom-retarget-events/-/react-shadow-dom-retarget-events-1.0.11.tgz#e57ce3ba0bc8159fec4861778daf02161440f156" integrity sha512-4ExKxKEWUCEmVBZmtly5lgHd9vz/NDKv5H7KmFZZxHZW/W6EmmzyOA928OqeWPxcfXUjfNG8q3hpwCD9O7CRRg== -react-split-pane@^0.1.92: - version "0.1.92" - resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.92.tgz#68242f72138aed95dd5910eeb9d99822c4fc3a41" - integrity sha512-GfXP1xSzLMcLJI5BM36Vh7GgZBpy+U/X0no+VM3fxayv+p1Jly5HpMofZJraeaMl73b3hvlr+N9zJKvLB/uz9w== - dependencies: - prop-types "^15.7.2" - react-lifecycles-compat "^3.0.4" - react-style-proptype "^3.2.2" - -react-style-proptype@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.2.2.tgz#d8e998e62ce79ec35b087252b90f19f1c33968a0" - integrity sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ== - dependencies: - prop-types "^15.5.4" - react-style-singleton@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.1.tgz#ce7f90b67618be2b6b94902a30aaea152ce52e66" @@ -30596,14 +30305,6 @@ rollup@^2.38.5, rollup@^2.75.6: optionalDependencies: fsevents "~2.3.2" -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE= - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -30749,17 +30450,6 @@ sass-loader@7.2.0: pify "^4.0.1" semver "^5.5.0" -sass-loader@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" - integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== - dependencies: - klona "^2.0.4" - loader-utils "^2.0.0" - neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" - sass@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/sass/-/sass-1.44.0.tgz#619aa0a2275c097f9af5e6b8fe8a95e3056430fb" @@ -32368,7 +32058,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0: +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -32580,15 +32270,6 @@ string.prototype.padend@^3.0.0: define-properties "^1.1.3" es-abstract "^1.18.0-next.2" -string.prototype.trim@^1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd" - integrity sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" @@ -33821,7 +33502,7 @@ ts-loader@8.0.13: micromatch "^4.0.0" semver "^6.0.0" -ts-loader@^8.0.2, ts-loader@^8.0.5: +ts-loader@^8.0.2: version "8.1.0" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.1.0.tgz#d6292487df279c7cc79b6d3b70bb9d31682b693e" integrity sha512-YiQipGGAFj2zBfqLhp28yUvPP9jUGqHxRzrGYuc82Z2wM27YIHbElXiaZDc93c3x0mz4zvBmS6q/DgExpdj37A== @@ -33989,11 +33670,6 @@ tslint@^6.1.3: tslib "^1.13.0" tsutils "^2.29.0" -tsscmp@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== - tsutils@^2.29.0: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" @@ -34119,7 +33795,7 @@ type-fest@^2.3.4: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.3.4.tgz#59bd28c5715a7ea39f8fb0d7e424355ae231a24e" integrity sha512-2UdQc7cx8F4Ky81Xj7NYQKPhZVtDFbtorrkairIW66rW7xQj5msAhioXa04HqEdP4MD4K2G6QAF7Zyiw/Hju1Q== -type-is@^1.6.16, type-is@^1.6.4, type-is@~1.6.17, type-is@~1.6.18: +type-is@^1.6.4, type-is@~1.6.17, 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== @@ -34876,7 +34552,7 @@ variable-diff@1.1.0: chalk "^1.1.1" object-assign "^4.0.1" -vary@^1, vary@^1.1.2, vary@~1.1.2: +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -35350,14 +35026,6 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watch@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz#340a717bde765726fa0aa07d721e0147a551df0c" - integrity sha1-NApxe952Vyb6CqB9ch4BR6VR3ww= - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - watchify@3.11.1: version "3.11.1" resolved "https://registry.yarnpkg.com/watchify/-/watchify-3.11.1.tgz#8e4665871fff1ef64c0430d1a2c9d084d9721881" @@ -36892,11 +36560,6 @@ yeast@0.1.2: resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= -ylru@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== - yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"