Browse Source

test: cypress upgrade wip

shijia.me 2 years ago
parent
commit
03a20696ec
51 changed files with 219 additions and 116 deletions
  1. 3 6
      .vscode/settings.json
  2. 1 0
      babel.config.js
  3. 24 0
      cypress.config.ts
  4. 0 4
      cypress.json
  5. 8 0
      cypress/component/button.cy.tsx
  6. 0 0
      cypress/e2e/anchor.spec.js
  7. 0 0
      cypress/e2e/autoComplete.spec.js
  8. 0 0
      cypress/e2e/avatar.spec.js
  9. 0 0
      cypress/e2e/breadcrumb.spec.js
  10. 0 0
      cypress/e2e/calendar.spec.js
  11. 0 0
      cypress/e2e/carousel.spec.js
  12. 0 0
      cypress/e2e/cascader.spec.js
  13. 0 0
      cypress/e2e/checkbox.spec.js
  14. 0 0
      cypress/e2e/datePicker.spec.js
  15. 0 0
      cypress/e2e/form.spec.js
  16. 0 0
      cypress/e2e/helloworld.spec.js
  17. 0 0
      cypress/e2e/image.spec.js
  18. 0 0
      cypress/e2e/input.spec.js
  19. 0 0
      cypress/e2e/inputNumber.spec.js
  20. 0 0
      cypress/e2e/modal.spec.js
  21. 0 0
      cypress/e2e/navigation.spec.js
  22. 0 0
      cypress/e2e/notification.spec.js
  23. 0 0
      cypress/e2e/overflowList.spec.js
  24. 0 0
      cypress/e2e/popconfirm.spec.js
  25. 0 0
      cypress/e2e/popover.spec.js
  26. 0 0
      cypress/e2e/radio.spec.js
  27. 0 0
      cypress/e2e/rating.spec.js
  28. 0 0
      cypress/e2e/scrollList.spec.js
  29. 0 0
      cypress/e2e/select.spec.js
  30. 0 0
      cypress/e2e/slider.spec.js
  31. 0 0
      cypress/e2e/table.spec.js
  32. 0 0
      cypress/e2e/tabs.spec.js
  33. 0 0
      cypress/e2e/tag.spec.js
  34. 0 0
      cypress/e2e/tagInput.spec.js
  35. 0 0
      cypress/e2e/textarea.spec.js
  36. 0 0
      cypress/e2e/timePicker.spec.js
  37. 0 0
      cypress/e2e/toast.spec.js
  38. 0 0
      cypress/e2e/tooltip.spec.js
  39. 0 0
      cypress/e2e/tree.spec.js
  40. 0 0
      cypress/e2e/treeSelect.spec.js
  41. 0 0
      cypress/e2e/typography.spec.js
  42. 0 0
      cypress/e2e/upload.spec.js
  43. 37 0
      cypress/support/commands.ts
  44. 12 0
      cypress/support/component-index.html
  45. 39 0
      cypress/support/component.ts
  46. 0 0
      cypress/support/e2e.js
  47. 4 4
      package.json
  48. 4 1
      tsconfig.eslint.json
  49. 3 3
      tsconfig.json
  50. 47 0
      webpack.config.js
  51. 37 98
      yarn.lock

+ 3 - 6
.vscode/settings.json

@@ -1,7 +1,7 @@
 {
     "[typescript]": {
         "editor.formatOnSave": false,
-        "editor.defaultFormatter": "dbaeumer.vscode-eslint"
+        "editor.defaultFormatter": "esbenp.prettier-vscode"
     },
     "[javascript]": {
         "editor.formatOnSave": false,
@@ -17,7 +17,7 @@
         "editor.defaultFormatter": "michelemelluso.code-beautifier"
     },
     "[typescriptreact]": {
-        "editor.defaultFormatter": "vscode.typescript-language-features"
+        "editor.defaultFormatter": "esbenp.prettier-vscode"
     },
     "typescript.updateImportsOnFileMove.enabled": "always",
     "files.autoSave": "onFocusChange",
@@ -40,8 +40,5 @@
         "public/page-data/en-US/other/locale",
         "public/page-data/zh-CN/other/locale"
     ],
-    "cSpell.words": [
-        "backtop",
-        "Splited"
-    ]
+    "cSpell.words": ["backtop", "Splited"]
 }

+ 1 - 0
babel.config.js

@@ -1,6 +1,7 @@
 const env = process.env.BABEL_ENV || process.env.NODE_ENV;
 
 module.exports = {
+    sourceType: "unambiguous",
     presets: [
         [
             '@babel/preset-env',

+ 24 - 0
cypress.config.ts

@@ -0,0 +1,24 @@
+import { defineConfig } from "cypress";
+import webpackConfig from './webpack.config';
+
+export default defineConfig({
+  projectId: "k83u7j",
+  scrollBehavior: false,
+
+  e2e: {
+    // We've imported your old cypress plugins here.
+    // You may want to clean this up later by importing these.
+    setupNodeEvents(on, config) {
+      return require("./cypress/plugins/index.js")(on, config);
+    },
+    specPattern: "cypress/e2e/**/*.{js,jsx,ts,tsx}",
+  },
+
+  component: {
+    devServer: {
+      framework: "react",
+      bundler: "webpack",
+      webpackConfig,
+    },
+  },
+});

+ 0 - 4
cypress.json

@@ -1,4 +0,0 @@
-{
-  "projectId": "k83u7j",
-  "scrollBehavior": false
-}

+ 8 - 0
cypress/component/button.cy.tsx

@@ -0,0 +1,8 @@
+import { Button } from '@douyinfe/semi-ui';
+import React from 'react';
+
+describe('button.cy.tsx', () => {
+    it('playground', () => {
+        cy.mount(<Button>按钮</Button>);
+    });
+});

+ 0 - 0
cypress/integration/anchor.spec.js → cypress/e2e/anchor.spec.js


+ 0 - 0
cypress/integration/autoComplete.spec.js → cypress/e2e/autoComplete.spec.js


+ 0 - 0
cypress/integration/avatar.spec.js → cypress/e2e/avatar.spec.js


+ 0 - 0
cypress/integration/breadcrumb.spec.js → cypress/e2e/breadcrumb.spec.js


+ 0 - 0
cypress/integration/calendar.spec.js → cypress/e2e/calendar.spec.js


+ 0 - 0
cypress/integration/carousel.spec.js → cypress/e2e/carousel.spec.js


+ 0 - 0
cypress/integration/cascader.spec.js → cypress/e2e/cascader.spec.js


+ 0 - 0
cypress/integration/checkbox.spec.js → cypress/e2e/checkbox.spec.js


+ 0 - 0
cypress/integration/datePicker.spec.js → cypress/e2e/datePicker.spec.js


+ 0 - 0
cypress/integration/form.spec.js → cypress/e2e/form.spec.js


+ 0 - 0
cypress/integration/helloworld.spec.js → cypress/e2e/helloworld.spec.js


+ 0 - 0
cypress/integration/image.spec.js → cypress/e2e/image.spec.js


+ 0 - 0
cypress/integration/input.spec.js → cypress/e2e/input.spec.js


+ 0 - 0
cypress/integration/inputNumber.spec.js → cypress/e2e/inputNumber.spec.js


+ 0 - 0
cypress/integration/modal.spec.js → cypress/e2e/modal.spec.js


+ 0 - 0
cypress/integration/navigation.spec.js → cypress/e2e/navigation.spec.js


+ 0 - 0
cypress/integration/notification.spec.js → cypress/e2e/notification.spec.js


+ 0 - 0
cypress/integration/overflowList.spec.js → cypress/e2e/overflowList.spec.js


+ 0 - 0
cypress/integration/popconfirm.spec.js → cypress/e2e/popconfirm.spec.js


+ 0 - 0
cypress/integration/popover.spec.js → cypress/e2e/popover.spec.js


+ 0 - 0
cypress/integration/radio.spec.js → cypress/e2e/radio.spec.js


+ 0 - 0
cypress/integration/rating.spec.js → cypress/e2e/rating.spec.js


+ 0 - 0
cypress/integration/scrollList.spec.js → cypress/e2e/scrollList.spec.js


+ 0 - 0
cypress/integration/select.spec.js → cypress/e2e/select.spec.js


+ 0 - 0
cypress/integration/slider.spec.js → cypress/e2e/slider.spec.js


+ 0 - 0
cypress/integration/table.spec.js → cypress/e2e/table.spec.js


+ 0 - 0
cypress/integration/tabs.spec.js → cypress/e2e/tabs.spec.js


+ 0 - 0
cypress/integration/tag.spec.js → cypress/e2e/tag.spec.js


+ 0 - 0
cypress/integration/tagInput.spec.js → cypress/e2e/tagInput.spec.js


+ 0 - 0
cypress/integration/textarea.spec.js → cypress/e2e/textarea.spec.js


+ 0 - 0
cypress/integration/timePicker.spec.js → cypress/e2e/timePicker.spec.js


+ 0 - 0
cypress/integration/toast.spec.js → cypress/e2e/toast.spec.js


+ 0 - 0
cypress/integration/tooltip.spec.js → cypress/e2e/tooltip.spec.js


+ 0 - 0
cypress/integration/tree.spec.js → cypress/e2e/tree.spec.js


+ 0 - 0
cypress/integration/treeSelect.spec.js → cypress/e2e/treeSelect.spec.js


+ 0 - 0
cypress/integration/typography.spec.js → cypress/e2e/typography.spec.js


+ 0 - 0
cypress/integration/upload.spec.js → cypress/e2e/upload.spec.js


+ 37 - 0
cypress/support/commands.ts

@@ -0,0 +1,37 @@
+/// <reference types="cypress" />
+// ***********************************************
+// This example commands.ts shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
+//
+// declare global {
+//   namespace Cypress {
+//     interface Chainable {
+//       login(email: string, password: string): Chainable<void>
+//       drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
+//       dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
+//       visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
+//     }
+//   }
+// }

+ 12 - 0
cypress/support/component-index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width,initial-scale=1.0">
+    <title>Components App</title>
+  </head>
+  <body>
+    <div data-cy-root></div>
+  </body>
+</html>

+ 39 - 0
cypress/support/component.ts

@@ -0,0 +1,39 @@
+// ***********************************************************
+// This example support/component.ts is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
+
+import { mount } from 'cypress/react'
+
+// Augment the Cypress namespace to include type definitions for
+// your custom command.
+// Alternatively, can be defined in cypress/support/component.d.ts
+// with a <reference path="./component" /> at the top of your spec.
+declare global {
+  namespace Cypress {
+    interface Chainable {
+      mount: typeof mount
+    }
+  }
+}
+
+Cypress.Commands.add('mount', mount)
+
+// Example use:
+// cy.mount(<MyComponent />)

+ 0 - 0
cypress/support/index.js → cypress/support/e2e.js


+ 4 - 4
package.json

@@ -152,7 +152,7 @@
         "chromatic": "^6.0.6",
         "crypto": "^1.0.1",
         "css-loader": "^3.6.0",
-        "cypress": "9.5.2",
+        "cypress": "12.12.0",
         "cypress-plugin-tab": "^1.0.5",
         "enzyme": "^3.11.0",
         "enzyme-adapter-react-16": "^1.15.6",
@@ -197,12 +197,12 @@
         "stylelint": "^13.13.1",
         "svgo": "^2.7.0",
         "terser-webpack-plugin": "^4.2.3",
-        "ts-loader": "^5.4.5",
+        "ts-loader": "^9.4.2",
         "typescript": "^4.8.3",
+        "webpack": "^5.77.0",
         "webpack-cli": "^3.3.12",
         "webpack-dev-server": "^3.11.2",
-        "webpackbar": "^5.0.0-3",
-        "webpack": "^5.77.0"
+        "webpackbar": "^5.0.0-3"
     },
     "husky": {
         "hooks": {

+ 4 - 1
tsconfig.eslint.json

@@ -5,5 +5,8 @@
         "packages/**/*.tsx",
         "src/**/*.ts",
         "src/**/*.tsx",
+        "./webpack.config.ts",
+        "cypress/**/*.ts",
+        "cypress/**/*.tsx"
     ]
-}
+}

+ 3 - 3
tsconfig.json

@@ -15,7 +15,7 @@
             "@douyinfe/semi-foundation/*": ["./packages/semi-foundation/*"],
             "@douyinfe/semi-theme-default/*": ["./packages/semi-theme-default/*"],
             "@douyinfe/semi-icons": ["./packages/semi-icons/src/index"],
-            "@douyinfe/semi-illustrations": ["./packages/semi-illustrations/src/index"],
+            "@douyinfe/semi-illustrations": ["./packages/semi-illustrations/src/index"]
         },
         "suppressImplicitAnyIndexErrors": true,
         "forceConsistentCasingInFileNames": true,
@@ -26,8 +26,8 @@
         "noImplicitThis": false,
         "strictNullChecks": false,
         "esModuleInterop": true,
-        "skipLibCheck": true,
+        "skipLibCheck": true
     },
-    "include": ["packages/**/*.tsx", "packages/**/*.ts"],
+    "include": ["packages/**/*.tsx", "packages/**/*.ts", "webpack.config.js", "cypress/**/*.ts", "cypress/**/*.tx"],
     "exclude": ["node_modules"]
 }

+ 47 - 0
webpack.config.js

@@ -0,0 +1,47 @@
+import path from 'path';
+import webpack from 'webpack';
+
+function resolve(dir) {
+    return path.join(__dirname, dir);
+}
+
+const config = {
+    resolve: {
+        alias: {
+            '@douyinfe/semi-foundation': resolve('packages/semi-foundation'),
+            '@douyinfe/semi-icons': resolve('packages/semi-icons/src'),
+            '@douyinfe/semi-ui': resolve('packages/semi-ui'),
+            '@douyinfe/semi-theme-default': resolve('packages/semi-theme-default'),
+            '@douyinfe/semi-illustrations': resolve('packages/semi-illustrations/src'),
+            '@douyinfe/semi-animation': resolve('packages/semi-animation'),
+            '@douyinfe/semi-animation-react': resolve('packages/semi-animation-react'),
+            '@douyinfe/semi-animation-styled': resolve('packages/semi-animation-styled'),
+        },
+        extensions: ['.tsx', '.ts', '.jsx', '.js'],
+    },
+    module: {
+        rules: [
+            {
+                test: /\.s(a|c)ss$/,
+                include: [
+                    resolve('packages/semi-ui'),
+                    resolve('packages/semi-foundation'),
+                    resolve('packages/semi-icons'),
+                ],
+                use: [
+                    'style-loader',
+                    'css-loader',
+                    'sass-loader',
+                    resolve('packages/semi-webpack/lib/semi-theme-loader.js'),
+                ],
+            },
+            {
+                test: /\.[jt]sx?$/,
+                use: 'ts-loader',
+                exclude: /node_modules/,
+            },
+        ],
+    },
+};
+
+export default config;

+ 37 - 98
yarn.lock

@@ -1646,15 +1646,6 @@
     "@douyinfe/semi-animation-styled" "2.23.2"
     classnames "^2.2.6"
 
-"@douyinfe/[email protected]":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation-react/-/semi-animation-react-2.34.2.tgz#d59f12dfe43d50c19728bef7c53a095cdf519dd5"
-  integrity sha512-Fi6RyX2yPikvbJpgbF9YtYBFjAycFNOsGG44bcEWfS1zzNzpoCEsQYfmTHQ+jcl1izXi4un7MEBmx3tM1KnPuA==
-  dependencies:
-    "@douyinfe/semi-animation" "2.12.0"
-    "@douyinfe/semi-animation-styled" "2.23.2"
-    classnames "^2.2.6"
-
 "@douyinfe/[email protected]":
   version "2.23.2"
   resolved "https://registry.npmjs.org/@douyinfe/semi-animation-styled/-/semi-animation-styled-2.23.2.tgz"
@@ -1675,13 +1666,6 @@
   dependencies:
     bezier-easing "^2.1.0"
 
-"@douyinfe/[email protected]":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation/-/semi-animation-2.34.2.tgz#c6f4de670672a78313a6c2468fca29f47ac2a91c"
-  integrity sha512-Cvs4OJq8fM072XyiU17YbI4CLTSPmcRpzCfkKRYe3ZpI9YM7Mu2KEP7OgB2Bdgr5njgjxzsR1fjIbxQV4Zjz4Q==
-  dependencies:
-    bezier-easing "^2.1.0"
-
 "@douyinfe/[email protected]":
   version "2.33.1"
   resolved "https://registry.npmjs.org/@douyinfe/semi-foundation/-/semi-foundation-2.33.1.tgz#1dfe6233e35a4ed768cb580b0c9a677d1c34ffba"
@@ -1696,20 +1680,6 @@
     memoize-one "^5.2.1"
     scroll-into-view-if-needed "^2.2.24"
 
-"@douyinfe/[email protected]":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-foundation/-/semi-foundation-2.34.2.tgz#a8a63a6762b7c1bd0a0138047956134128c31c68"
-  integrity sha512-vOwjRKm42lt5p5sNyYzHR74QWPm7khGKLMjky/vAgI0ysF3XPUXmsm5IkyRRAurXIkuSPba4hKffIa2X7JC8Xw==
-  dependencies:
-    "@douyinfe/semi-animation" "2.12.0"
-    async-validator "^3.5.0"
-    classnames "^2.2.6"
-    date-fns "^2.29.3"
-    date-fns-tz "^1.3.8"
-    lodash "^4.17.21"
-    memoize-one "^5.2.1"
-    scroll-into-view-if-needed "^2.2.24"
-
 "@douyinfe/[email protected]", "@douyinfe/semi-icons@latest":
   version "2.33.1"
   resolved "https://registry.yarnpkg.com/@douyinfe/semi-icons/-/semi-icons-2.33.1.tgz#8e2871d9bc0ab7e12df74e3c71802d53d69b7425"
@@ -1717,23 +1687,11 @@
   dependencies:
     classnames "^2.2.6"
 
-"@douyinfe/[email protected]", "@douyinfe/semi-icons@^2.0.0":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-icons/-/semi-icons-2.34.2.tgz#ce694334a621c286d7b52923b84907d4cb3f86b3"
-  integrity sha512-XiQVr14fFxveF//0qQvh7uzmXbMraRl+7P+/zYr09x7N7DnyidmQQgSUhCiU/5IXQ/yJUA+e2/SfXcZsuui0nw==
-  dependencies:
-    classnames "^2.2.6"
-
 "@douyinfe/[email protected]":
   version "2.33.1"
   resolved "https://registry.npmjs.org/@douyinfe/semi-illustrations/-/semi-illustrations-2.33.1.tgz#530ab851f4dc32a52221c4067c778c800b9b55d7"
   integrity sha512-tTTUN8QwnQiF++sk4VBNzfkG87aYZ4iUeqk2ys8/ymVUmCZQ7y46ys020GO1MfPHRR47OMFPI82FVcH1WQtE3g==
 
-"@douyinfe/[email protected]":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-illustrations/-/semi-illustrations-2.34.2.tgz#6e5fdb875a7dbd54b49036ba9154d2594feedbb1"
-  integrity sha512-NO5A9catlhxLakhUYlm0izc4VD93BHRWTl9SaUJIHVghnm3sRZPnLWI2YLGQbJVyTpA2F78cGu3qEjw3ObRrmQ==
-
 "@douyinfe/[email protected]":
   version "2.23.2"
   resolved "https://registry.npmjs.org/@douyinfe/semi-scss-compile/-/semi-scss-compile-2.23.2.tgz#30884bb194ee9ae1e81877985e5663c3297c1ced"
@@ -1807,38 +1765,6 @@
   dependencies:
     glob "^7.1.6"
 
-"@douyinfe/[email protected]":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-theme-default/-/semi-theme-default-2.34.2.tgz#7ec1005e03de6e4d1dd399d24a2a427824c460e7"
-  integrity sha512-954ytIhtIZrttVSDhxAk27vLaioSh0ikugl2ml37mhngbU7Dz+zDv+hFd8Y6SLpSNzRYQm63WgvkHgykPrIodQ==
-  dependencies:
-    glob "^7.1.6"
-
-"@douyinfe/semi-ui@^2.0.0":
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/@douyinfe/semi-ui/-/semi-ui-2.34.2.tgz#d5a07e3e3d9aa0ee8a5bbd3b73f41319386f27c5"
-  integrity sha512-kuco5bZhckUuWWV4myDMcza52PtimJ8RJobwl0rvxa2k2z5kF/tNT7DjH1NBtyKLMkKDNaCaAMaOTSohQ89XuQ==
-  dependencies:
-    "@douyinfe/semi-animation" "2.34.2"
-    "@douyinfe/semi-animation-react" "2.34.2"
-    "@douyinfe/semi-foundation" "2.34.2"
-    "@douyinfe/semi-icons" "2.34.2"
-    "@douyinfe/semi-illustrations" "2.34.2"
-    "@douyinfe/semi-theme-default" "2.34.2"
-    async-validator "^3.5.0"
-    classnames "^2.2.6"
-    copy-text-to-clipboard "^2.1.1"
-    date-fns "^2.29.3"
-    date-fns-tz "^1.3.8"
-    lodash "^4.17.21"
-    prop-types "^15.7.2"
-    react-resizable "^1.8.0"
-    react-sortable-hoc "^2.0.0"
-    react-window "^1.8.2"
-    resize-observer-polyfill "^1.5.1"
-    scroll-into-view-if-needed "^2.2.24"
-    utility-types "^3.10.0"
-
 "@douyinfe/semi-ui@latest":
   version "2.33.1"
   resolved "https://registry.yarnpkg.com/@douyinfe/semi-ui/-/semi-ui-2.33.1.tgz#3234ca96eb3560b8299bc9750fbe59446522d9bb"
@@ -8635,11 +8561,6 @@ commander@^4.0.1, commander@^4.1.1:
   resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
   integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
 
-commander@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz"
-  integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
-
 commander@^6.2.0, commander@^6.2.1:
   version "6.2.1"
   resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz"
@@ -9552,10 +9473,10 @@ cypress-plugin-tab@^1.0.5:
   dependencies:
     ally.js "^1.4.1"
 
-cypress@9.5.2:
-  version "9.5.2"
-  resolved "https://registry.npmjs.org/cypress/-/cypress-9.5.2.tgz"
-  integrity sha512-gYiQYvJozMzDOriUV1rCt6CeRM/pRK4nhwGJj3nJQyX2BoUdTCVwp30xDMKc771HiNVhBtgj5o5/iBdVDVXQUg==
+cypress@12.12.0:
+  version "12.12.0"
+  resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.12.0.tgz#0da622a34c970d8699ca6562d8e905ed7ce33c77"
+  integrity sha512-UU5wFQ7SMVCR/hyKok/KmzG6fpZgBHHfrXcHzDmPHWrT+UUetxFzQgt7cxCszlwfozckzwkd22dxMwl/vNkWRw==
   dependencies:
     "@cypress/request" "^2.88.10"
     "@cypress/xvfb" "^1.2.4"
@@ -9571,12 +9492,12 @@ [email protected]:
     check-more-types "^2.24.0"
     cli-cursor "^3.1.0"
     cli-table3 "~0.6.1"
-    commander "^5.1.0"
+    commander "^6.2.1"
     common-tags "^1.8.0"
     dayjs "^1.10.4"
-    debug "^4.3.2"
+    debug "^4.3.4"
     enquirer "^2.3.6"
-    eventemitter2 "^6.4.3"
+    eventemitter2 "6.4.7"
     execa "4.1.0"
     executable "^4.1.1"
     extract-zip "2.0.1"
@@ -9589,7 +9510,7 @@ [email protected]:
     listr2 "^3.8.3"
     lodash "^4.17.21"
     log-symbols "^4.0.0"
-    minimist "^1.2.5"
+    minimist "^1.2.8"
     ospath "^1.2.2"
     pretty-bytes "^5.6.0"
     proxy-from-env "1.0.0"
@@ -9705,7 +9626,7 @@ [email protected]:
   dependencies:
     ms "2.0.0"
 
-debug@4, [email protected], debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@~4.3.1:
+debug@4, [email protected], debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1:
   version "4.3.4"
   resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
   integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -10501,6 +10422,14 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0:
     memory-fs "^0.5.0"
     tapable "^1.0.0"
 
+enhanced-resolve@^5.0.0:
+  version "5.14.0"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.0.tgz#0b6c676c8a3266c99fa281e4433a706f5c0c61c4"
+  integrity sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==
+  dependencies:
+    graceful-fs "^4.2.4"
+    tapable "^2.2.0"
+
 enhanced-resolve@^5.10.0:
   version "5.12.0"
   resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz"
@@ -11228,11 +11157,6 @@ eslint-plugin-react@^7.20.6, eslint-plugin-react@^7.24.0:
     semver "^6.3.0"
     string.prototype.matchall "^4.0.6"
 
-eslint-plugin-semi-design@^2.33.0:
-  version "2.34.2"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-semi-design/-/eslint-plugin-semi-design-2.34.2.tgz#af2fdb2dad0bb04faf26eed00ae0c911f04949f1"
-  integrity sha512-6hDrYmjTMElEKRwQT829bUkH9A7Kb6ln0BR6jEO3i+6DvHwGBQJLKP1pSRGZBXzsW+Yqz15nnQZLFcNUPN7Iaw==
-
 eslint-rule-composer@^0.3.0:
   version "0.3.0"
   resolved "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz"
@@ -11479,10 +11403,10 @@ event-target-shim@^5.0.0:
   resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"
   integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
 
-eventemitter2@^6.4.3:
-  version "6.4.9"
-  resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz"
-  integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==
+eventemitter2@6.4.7:
+  version "6.4.7"
+  resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d"
+  integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
 
 eventemitter3@^3.1.0:
   version "3.1.2"
@@ -17849,7 +17773,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.9:
     snapdragon "^0.8.1"
     to-regex "^3.0.2"
 
-micromatch@^4.0.2, micromatch@^4.0.4:
+micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4:
   version "4.0.5"
   resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
   integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
@@ -18006,6 +17930,11 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.
   resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
   integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
 
+minimist@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+  integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
 minipass-collect@^1.0.2:
   version "1.0.2"
   resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz"
@@ -24369,6 +24298,16 @@ ts-loader@^5.4.5:
     micromatch "^3.1.4"
     semver "^5.0.1"
 
+ts-loader@^9.4.2:
+  version "9.4.2"
+  resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.4.2.tgz#80a45eee92dd5170b900b3d00abcfa14949aeb78"
+  integrity sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==
+  dependencies:
+    chalk "^4.1.0"
+    enhanced-resolve "^5.0.0"
+    micromatch "^4.0.0"
+    semver "^7.3.4"
+
 ts-node@^9:
   version "9.1.1"
   resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz"