From 860f8debfe500180f8ce5967b5f1d5b7d1e74733 Mon Sep 17 00:00:00 2001 From: Jess Date: Mon, 20 Dec 2021 23:47:51 -0500 Subject: [PATCH 01/20] docs: additional cypress + vitest comparison content --- docs/guide/comparisons.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/guide/comparisons.md b/docs/guide/comparisons.md index 5036f9b79d61..6c7753e33a57 100644 --- a/docs/guide/comparisons.md +++ b/docs/guide/comparisons.md @@ -8,7 +8,21 @@ ## Cypress -[Cypress](https://www.cypress.io/) is an amazing option for E2E testing. But with [Cypress Component Testing](https://docs.cypress.io/guides/component-testing/introduction), they now offer a way to test your components in a real browser environment instead of relying on node DOM libraries. You also see the real rendered Component in the browser with their failed state instead of having a simple diff in the CLI. Cypress has been [integrating Vite in their products](https://www.youtube.com/watch?v=7S5cbY8iYLk): re-building their App UI using [Vitesse](https://github.com/antfu/vitesse) and using Vite to drive your project's code processing while testing. But Cypress isn't a good option for unit testings in a headless environment. Using Cypress (for E2E and Component Testing) and Vitest (for units tests) together would cover your Web Apps testing needs. +[Cypress](https://www.cypress.io/) is a browser-based test runner and a complimentary tool to Vitest. If you'd like to use Cypress, we suggest using Vitest for all headless logic in your application and Cypress for all browser-based logic. + +Cypress is known as an end-to-end testing tool, however their [new component test runner](https://on.cypress.io/component) has great support for testing Vite components and is an ideal choice to test anything that renders in a browser. + +Browser-based runners, like Cypress and Web Test, will catch issues that Vitest cannot because they use the real browser and real browser APIs. + +Cypress's test driver is focused on determining if elements are visible, accessible, and interactive. Cypress is purpose-built for UI development and testing and its DX is centered around test driving your visual components. You see your component rendered alongside the test reporter. Once the test is complete, the component remains interactive and you can debug any failures that occur using your browser devtools. + +In contrast, Vitest is focused on delivering the best DX possible for lightning fast, *headless* testing. Node-based runners like Vitest support various partially-implemented browser environments, like `jsdom`, which implement enough for you to quickly unit test any code that references browser APIs. The tradeoff is that these browser environments have limitations in what they can implement. For example, [jsdom is missing a number of features](https://github.com/jsdom/jsdom/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc) like `window.navigation` or a layout engine (`offsetTop`, etc). + +Lastly, in contrast to the Web Test Runner, the Cypress test runner is more like an IDE than a test runner because you also see the real rendered component in the browser, along with its test results and logs. + +Cypress has also been [integrating Vite in their products](https://www.youtube.com/watch?v=7S5cbY8iYLk): re-building their App's UI using [Vitesse](https://github.com/antfu/vitesse) and using Vite to test drive their project's development. + +We believe that Cypress isn't a good option for unit testing headless code, but that using Cypress (for E2E and Component Testing) and Vitest (for unit tests) would cover your app's testing needs. ## Web Test Runner From d9d4754a5086404b2ff5165b6ccc29613920e42a Mon Sep 17 00:00:00 2001 From: Michel EDIGHOFFER Date: Wed, 19 Jan 2022 17:15:16 +0100 Subject: [PATCH 02/20] feat: ui testing --- .github/workflows/test.yml | 3 + package.json | 3 +- packages/ui/client/pages/VitestUi.ui.spec.ts | 7 + packages/ui/cypress.json | 4 + packages/ui/cypress/plugins/index.ts | 15 + packages/ui/cypress/support/index.js | 2 + packages/ui/package.json | 7 +- packages/ui/vite.config.ts | 4 + pnpm-lock.yaml | 780 +++++++++++++++++-- 9 files changed, 752 insertions(+), 73 deletions(-) create mode 100644 packages/ui/client/pages/VitestUi.ui.spec.ts create mode 100644 packages/ui/cypress.json create mode 100644 packages/ui/cypress/plugins/index.ts create mode 100644 packages/ui/cypress/support/index.js diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cca0ef80a475..ba71c910451f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -44,6 +44,9 @@ jobs: - name: Test run: pnpm run test:ci + - name: Test UI + run: pnpm run ui:test + - name: Lint run: pnpm run lint --if-present diff --git a/package.json b/package.json index a98bc95b0ca5..f69a2e220736 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "test:ci": "cross-env CI=true pnpm -r --stream --filter !@vitest/monorepo --filter !@vitest/test-fails run test --", "typecheck": "tsc --noEmit", "ui:build": "vite build packages/ui", - "ui:dev": "vite packages/ui" + "ui:dev": "vite packages/ui", + "ui:test": "npm -C packages/ui test" }, "devDependencies": { "@antfu/eslint-config": "^0.16.0", diff --git a/packages/ui/client/pages/VitestUi.ui.spec.ts b/packages/ui/client/pages/VitestUi.ui.spec.ts new file mode 100644 index 000000000000..13159b582764 --- /dev/null +++ b/packages/ui/client/pages/VitestUi.ui.spec.ts @@ -0,0 +1,7 @@ +import { mount } from '@cypress/vue' +import App from './index.vue' +describe('App', () => { + it('should render', () => { + mount(App) + }) +}) diff --git a/packages/ui/cypress.json b/packages/ui/cypress.json new file mode 100644 index 000000000000..697d8601b01d --- /dev/null +++ b/packages/ui/cypress.json @@ -0,0 +1,4 @@ +{ + "testFiles": "**/*.ui.spec.{js,ts}", + "componentFolder": "client" + } \ No newline at end of file diff --git a/packages/ui/cypress/plugins/index.ts b/packages/ui/cypress/plugins/index.ts new file mode 100644 index 000000000000..9302b20a19b6 --- /dev/null +++ b/packages/ui/cypress/plugins/index.ts @@ -0,0 +1,15 @@ +import path from 'path' +import { startDevServer } from '@cypress/vite-dev-server' + +const plugin: Cypress.PluginConfig = (on, config) => { + on('dev-server:start', options => startDevServer({ + options, + viteConfig: { + configFile: path.resolve(__dirname, '..', '..', 'vite.config.ts'), + }, + })) + + return config +} + +export default plugin diff --git a/packages/ui/cypress/support/index.js b/packages/ui/cypress/support/index.js new file mode 100644 index 000000000000..ec2253ef9c57 --- /dev/null +++ b/packages/ui/cypress/support/index.js @@ -0,0 +1,2 @@ +// Needed to process uno styles +import 'uno.css' diff --git a/packages/ui/package.json b/packages/ui/package.json index c0912f6405a1..e0f0dc725e4e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -23,12 +23,16 @@ "build:node": "rollup -c", "dev:client": "vite", "dev": "rollup -c --watch --watch.include=node/**", - "dev:ui": "run-p dev dev:client" + "dev:ui": "run-p dev dev:client", + "test": "cypress run-ct", + "test:open": "cypress open-ct" }, "dependencies": { "sirv": "^2.0.2" }, "devDependencies": { + "@cypress/vite-dev-server": "^2.2.2", + "@cypress/vue": "^2.2.3", "@types/codemirror": "^5.60.5", "@types/d3-force": "^3.0.3", "@types/d3-selection": "^3.0.2", @@ -39,6 +43,7 @@ "@vueuse/core": "^7.5.3", "codemirror": "^5.65.0", "codemirror-theme-vars": "^0.1.1", + "cypress": "^9.3.0", "d3-graph-controller": "^2.2.1", "picocolors": "^1.0.0", "rollup": "^2.64.0", diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index 3f02f2465073..c039271a0f85 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -59,5 +59,9 @@ export default defineConfig({ include: [ 'vue', ], + // FIXME: Cypress won't start without that exclude. But tests won't work on running + // exclude: [ + // 'vue-template-compiler', + // ], }, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c624055970f..426fdb55933e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,7 +52,7 @@ importers: node-fetch: 3.1.1 npm-run-all: 4.1.5 pathe: 0.2.0 - pnpm: 6.27.0 + pnpm: 6.27.1 rimraf: 3.0.2 rollup: 2.64.0 rollup-plugin-dts: 4.1.0_rollup@2.64.0+typescript@4.5.4 @@ -106,7 +106,7 @@ importers: lit: 2.1.1 devDependencies: '@vitest/ui': link:../../packages/ui - happy-dom: 2.27.0 + happy-dom: 2.27.2 vite: 2.7.13 vitest: link:../../packages/vitest @@ -157,7 +157,7 @@ importers: '@types/react-test-renderer': 17.0.1 '@vitejs/plugin-react': 1.1.4 '@vitest/ui': link:../../packages/ui - happy-dom: 2.27.0 + happy-dom: 2.27.2 jsdom: 19.0.0 react-test-renderer: 17.0.2_react@17.0.2 vitest: link:../../packages/vitest @@ -395,7 +395,7 @@ importers: devDependencies: '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 - happy-dom: 2.27.0 + happy-dom: 2.27.2 unplugin-auto-import: 0.5.11_0300e2fc4592cc668512bad114c07138 unplugin-vue-components: 0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba vitest: link:../../packages/vitest @@ -412,7 +412,7 @@ importers: devDependencies: '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 - happy-dom: 2.27.0 + happy-dom: 2.27.2 vitest: link:../../packages/vitest examples/vue-jsx: @@ -428,13 +428,15 @@ importers: '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 '@vitejs/plugin-vue-jsx': 1.3.3 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 - happy-dom: 2.27.0 + happy-dom: 2.27.2 vite: 2.7.13 vitest: link:../../packages/vitest vue: 3.2.26 packages/ui: specifiers: + '@cypress/vite-dev-server': ^2.2.2 + '@cypress/vue': ^2.2.3 '@types/codemirror': ^5.60.5 '@types/d3-force': ^3.0.3 '@types/d3-selection': ^3.0.2 @@ -445,6 +447,7 @@ importers: '@vueuse/core': ^7.5.3 codemirror: ^5.65.0 codemirror-theme-vars: ^0.1.1 + cypress: ^9.3.0 d3-graph-controller: ^2.2.1 picocolors: ^1.0.0 rollup: ^2.64.0 @@ -460,6 +463,8 @@ importers: dependencies: sirv: 2.0.2 devDependencies: + '@cypress/vite-dev-server': 2.2.2_vite@2.7.13 + '@cypress/vue': 2.2.3_cypress@9.3.0+vue@3.2.26 '@types/codemirror': 5.60.5 '@types/d3-force': 3.0.3 '@types/d3-selection': 3.0.2 @@ -470,6 +475,7 @@ importers: '@vueuse/core': 7.5.3_vue@3.2.26 codemirror: 5.65.0 codemirror-theme-vars: 0.1.1 + cypress: 9.3.0 d3-graph-controller: 2.2.1 picocolors: 1.0.0 rollup: 2.64.0 @@ -574,7 +580,7 @@ importers: fast-glob: 3.2.11 find-up: 6.2.0 flatted: 3.2.4 - happy-dom: 2.27.0 + happy-dom: 2.27.2 jsdom: 19.0.0 log-update: 5.0.0 magic-string: 0.25.7 @@ -939,6 +945,7 @@ packages: requiresBuild: true dependencies: '@babel/highlight': 7.16.0 + dev: true /@babel/code-frame/7.16.7: resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} @@ -946,7 +953,6 @@ packages: requiresBuild: true dependencies: '@babel/highlight': 7.16.7 - dev: true /@babel/compat-data/7.16.4: resolution: {integrity: sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==} @@ -963,12 +969,12 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/generator': 7.16.7 + '@babel/generator': 7.16.8 '@babel/helper-module-transforms': 7.16.7 '@babel/helpers': 7.16.7 - '@babel/parser': 7.16.7 + '@babel/parser': 7.16.8 '@babel/template': 7.16.7 - '@babel/traverse': 7.16.7 + '@babel/traverse': 7.16.8 '@babel/types': 7.16.8 convert-source-map: 1.7.0 debug: 4.3.3 @@ -1107,7 +1113,7 @@ packages: '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.16.7 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 - '@babel/traverse': 7.16.7 + '@babel/traverse': 7.16.8 debug: 4.3.3 lodash.debounce: 4.0.8 resolve: 1.21.0 @@ -1157,7 +1163,7 @@ packages: resolution: {integrity: sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.16.8 dev: true /@babel/helper-module-imports/7.16.0: @@ -1194,7 +1200,7 @@ packages: resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.16.7 + '@babel/types': 7.16.8 dev: true /@babel/helper-plugin-utils/7.10.4: @@ -1229,8 +1235,8 @@ packages: '@babel/helper-environment-visitor': 7.16.7 '@babel/helper-member-expression-to-functions': 7.16.7 '@babel/helper-optimise-call-expression': 7.16.7 - '@babel/traverse': 7.16.7 - '@babel/types': 7.16.7 + '@babel/traverse': 7.16.8 + '@babel/types': 7.16.8 transitivePeerDependencies: - supports-color dev: true @@ -1263,7 +1269,6 @@ packages: /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-option/7.16.7: resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} @@ -1300,6 +1305,7 @@ packages: '@babel/helper-validator-identifier': 7.15.7 chalk: 2.4.2 js-tokens: 4.0.0 + dev: true /@babel/highlight/7.16.7: resolution: {integrity: sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==} @@ -1308,7 +1314,6 @@ packages: '@babel/helper-validator-identifier': 7.16.7 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/parser/7.16.7: resolution: {integrity: sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==} @@ -1492,7 +1497,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.16.4 + '@babel/compat-data': 7.16.8 '@babel/core': 7.16.7 '@babel/helper-compilation-targets': 7.16.7_@babel+core@7.16.7 '@babel/helper-plugin-utils': 7.16.7 @@ -2496,6 +2501,72 @@ packages: minimist: 1.2.5 dev: true + /@cypress/mount-utils/1.0.2: + resolution: {integrity: sha512-Fn3fdTiyayHoy8Ol0RSu4MlBH2maQ2ZEXeEVKl/zHHXEQpld5HX3vdNLhK5YLij8cLynA4DxOT/nO9iEnIiOXw==} + dev: true + + /@cypress/request/2.88.10: + resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==} + engines: {node: '>= 6'} + dependencies: + aws-sign2: 0.7.0 + aws4: 1.11.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + http-signature: 1.3.6 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.34 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + dev: true + + /@cypress/vite-dev-server/2.2.2_vite@2.7.13: + resolution: {integrity: sha512-02y/Fm0N+CQjKbSjjRtktPgPbp91kOvtc8+WW2l2odIYQkKlG6IOCpmgc898muW0lBAcCszdEIHR/ItdZDiYPw==} + peerDependencies: + vite: '>= 2.1.3' + dependencies: + debug: 4.3.3 + get-port: 5.1.1 + vite: 2.7.13 + transitivePeerDependencies: + - supports-color + dev: true + + /@cypress/vue/2.2.3_cypress@9.3.0+vue@3.2.26: + resolution: {integrity: sha512-KgrUjiLVyoiU5xb5JAhsdFLDzyh7Njhm4TMuINFsoBZkt4PJptGCsMzdaI7lk1XX20NGvg8MPIFbbQi+L0L8qQ==} + engines: {node: '>=8'} + peerDependencies: + '@cypress/webpack-dev-server': '*' + cypress: '>=4.5.0' + vue: ^2.0.0 + peerDependenciesMeta: + '@cypress/webpack-dev-server': + optional: true + dependencies: + '@cypress/mount-utils': 1.0.2 + '@vue/test-utils': 1.3.0_vue@3.2.26 + cypress: 9.3.0 + vue: 3.2.26 + transitivePeerDependencies: + - vue-template-compiler + dev: true + + /@cypress/xvfb/1.2.4: + resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} + dependencies: + debug: 3.2.7 + lodash.once: 4.1.1 + dev: true + /@date-io/core/2.11.0: resolution: {integrity: sha512-DvPBnNoeuLaoSJZaxgpu54qzRhRKjSYVyQjhznTFrllKuDpm0sDFjHo6lvNLCM/cfMx2gb2PM2zY2kc9C8nmuw==} dev: false @@ -2631,7 +2702,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 '@emotion/cache': 10.0.29 '@emotion/css': 10.0.27 '@emotion/serialize': 0.11.16 @@ -2727,7 +2798,7 @@ packages: '@emotion/core': ^10.0.28 react: '>=16.3.0' dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 '@emotion/core': 10.3.1_react@17.0.2 '@emotion/is-prop-valid': 0.8.8 '@emotion/serialize': 0.11.16 @@ -2897,7 +2968,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.0 - '@types/node': 17.0.5 + '@types/node': 17.0.10 '@types/yargs': 15.0.14 chalk: 4.1.2 dev: true @@ -5107,14 +5178,14 @@ packages: resolution: {integrity: sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==} engines: {node: '>=12'} dependencies: - '@babel/code-frame': 7.16.0 - '@babel/runtime': 7.16.3 + '@babel/code-frame': 7.16.7 + '@babel/runtime': 7.16.7 '@types/aria-query': 4.2.2 aria-query: 5.0.0 chalk: 4.1.2 dom-accessibility-api: 0.5.10 lz-string: 1.4.4 - pretty-format: 27.4.2 + pretty-format: 27.4.6 dev: true /@testing-library/jest-dom/5.16.1: @@ -5312,7 +5383,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 3.0.5 - '@types/node': 17.0.8 + '@types/node': 17.0.10 dev: true /@types/graceful-fs/4.1.5: @@ -5335,7 +5406,7 @@ packages: resolution: {integrity: sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==} dependencies: '@types/through': 0.0.30 - rxjs: 7.4.0 + rxjs: 7.5.2 dev: true /@types/is-function/1.0.1: @@ -5436,10 +5507,6 @@ packages: resolution: {integrity: sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==} dev: true - /@types/node/17.0.5: - resolution: {integrity: sha512-w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==} - dev: true - /@types/node/17.0.8: resolution: {integrity: sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==} dev: true @@ -5546,6 +5613,14 @@ packages: '@types/node': 17.0.10 dev: true + /@types/sinonjs__fake-timers/8.1.1: + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + dev: true + + /@types/sizzle/2.3.3: + resolution: {integrity: sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==} + dev: true + /@types/source-list-map/0.1.2: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==} dev: true @@ -5643,7 +5718,7 @@ packages: resolution: {integrity: sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==} requiresBuild: true dependencies: - '@types/node': 17.0.5 + '@types/node': 17.0.8 dev: true optional: true @@ -6105,6 +6180,18 @@ packages: resolution: {integrity: sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==} dev: true + /@vue/test-utils/1.3.0_vue@3.2.26: + resolution: {integrity: sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==} + peerDependencies: + vue: 2.x + vue-template-compiler: ^2.x + dependencies: + dom-event-types: 1.0.0 + lodash: 4.17.21 + pretty: 2.0.0 + vue: 3.2.26 + dev: true + /@vue/test-utils/2.0.0-rc.18_vue@3.2.26: resolution: {integrity: sha512-aifolXjVdsogjaLmDoZ0FU8vN+R67aWmg9OuVeED4w5Ij5GFQLrlhM19uhWe/r5xXUL4fXMk3pX5wW6FJP1NcQ==} peerDependencies: @@ -6328,6 +6415,10 @@ packages: resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} dev: true + /abbrev/1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: true + /accepts/1.3.7: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} @@ -6498,6 +6589,11 @@ packages: engines: {node: '>=6'} dev: true + /ansi-colors/4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + /ansi-escapes/4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -6589,6 +6685,10 @@ packages: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: true + /arch/2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + dev: true + /are-we-there-yet/2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -6748,6 +6848,17 @@ packages: safer-buffer: 2.1.2 dev: true + /asn1/0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /assert-plus/1.0.0: + resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=} + engines: {node: '>=0.8'} + dev: true + /assert/1.5.0: resolution: {integrity: sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==} dependencies: @@ -6771,11 +6882,20 @@ packages: tslib: 2.3.1 dev: true + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + /async-each/1.0.3: resolution: {integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==} dev: true optional: true + /async/3.2.3: + resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==} + dev: true + /asynckit/0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} dev: true @@ -6809,6 +6929,14 @@ packages: engines: {node: '>= 0.4'} dev: true + /aws-sign2/0.7.0: + resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=} + dev: true + + /aws4/1.11.0: + resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} + dev: true + /axios/0.24.0: resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} dependencies: @@ -6912,7 +7040,7 @@ packages: dependencies: '@babel/runtime': 7.16.7 cosmiconfig: 6.0.0 - resolve: 1.20.0 + resolve: 1.21.0 /babel-plugin-macros/3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} @@ -7021,6 +7149,12 @@ packages: resolution: {integrity: sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=} dev: true + /bcrypt-pbkdf/1.0.2: + resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=} + dependencies: + tweetnacl: 0.14.5 + dev: true + /better-opn/2.1.1: resolution: {integrity: sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==} engines: {node: '>8.0.0'} @@ -7067,6 +7201,10 @@ packages: readable-stream: 3.6.0 dev: true + /blob-util/2.0.2: + resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + dev: true + /bluebird/3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true @@ -7223,7 +7361,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001285 + caniuse-lite: 1.0.30001298 electron-to-chromium: 1.4.12 escalade: 3.1.1 node-releases: 2.0.1 @@ -7396,6 +7534,11 @@ packages: unset-value: 1.0.0 dev: true + /cachedir/2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -7432,10 +7575,6 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001285: - resolution: {integrity: sha512-KAOkuUtcQ901MtmvxfKD+ODHH9YVDYnBt+TGYSz2KIfnq22CiArbUxXPN9067gNbgMlnNYRSwho8OPXZPALB9Q==} - dev: true - /caniuse-lite/1.0.30001298: resolution: {integrity: sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ==} dev: true @@ -7529,6 +7668,11 @@ packages: resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} dev: false + /check-more-types/2.24.0: + resolution: {integrity: sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=} + engines: {node: '>= 0.8.0'} + dev: true + /cheerio-select/1.5.0: resolution: {integrity: sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==} dependencies: @@ -7682,6 +7826,14 @@ packages: colors: 1.4.0 dev: true + /cli-truncate/2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + /cli-truncate/3.1.0: resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7813,6 +7965,11 @@ packages: engines: {node: '>= 6'} dev: true + /commander/5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + /commander/6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -7826,6 +7983,11 @@ packages: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} dev: true + /common-tags/1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + /commondir/1.0.1: resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} dev: true @@ -7871,6 +8033,22 @@ packages: typedarray: 0.0.6 dev: true + /condense-newlines/0.2.1: + resolution: {integrity: sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-whitespace: 0.3.0 + kind-of: 3.2.2 + dev: true + + /config-chain/1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + dev: true + /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: true @@ -7951,6 +8129,10 @@ packages: requiresBuild: true dev: true + /core-util-is/1.0.2: + resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} + dev: true + /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true @@ -8162,6 +8344,56 @@ packages: resolution: {integrity: sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=} dev: true + /cypress/9.3.0: + resolution: {integrity: sha512-Hnqp1hoiBuiWYM+r3/RZKZCMzQ+1kiJqJejsgX8+cT9nwZXjEcCW8xQjNIT0GibiCemeK4y4ZNQbn+Jp1Tg7uw==} + engines: {node: '>=12.0.0'} + hasBin: true + requiresBuild: true + dependencies: + '@cypress/request': 2.88.10 + '@cypress/xvfb': 1.2.4 + '@types/node': 14.18.5 + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.3 + arch: 2.2.0 + blob-util: 2.0.2 + bluebird: 3.7.2 + buffer: 5.7.1 + cachedir: 2.3.0 + chalk: 4.1.2 + check-more-types: 2.24.0 + cli-cursor: 3.1.0 + cli-table3: 0.6.1 + commander: 5.1.0 + common-tags: 1.8.2 + dayjs: 1.10.7 + debug: 4.3.3_supports-color@8.1.1 + enquirer: 2.3.6 + eventemitter2: 6.4.5 + execa: 4.1.0 + executable: 4.1.1 + extract-zip: 2.0.1_supports-color@8.1.1 + figures: 3.2.0 + fs-extra: 9.1.0 + getos: 3.2.1 + is-ci: 3.0.1 + is-installed-globally: 0.4.0 + lazy-ass: 1.6.0 + listr2: 3.14.0_enquirer@2.3.6 + lodash: 4.17.21 + log-symbols: 4.1.0 + minimist: 1.2.5 + ospath: 1.2.2 + pretty-bytes: 5.6.0 + proxy-from-env: 1.0.0 + request-progress: 3.0.0 + supports-color: 8.1.1 + tmp: 0.2.1 + untildify: 4.0.0 + url: 0.11.0 + yauzl: 2.10.0 + dev: true + /d3-array/2.12.1: resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} dependencies: @@ -8290,6 +8522,13 @@ packages: d3-transition: 3.0.1_d3-selection@3.0.0 dev: true + /dashdash/1.14.1: + resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + dev: true + /data-uri-to-buffer/4.0.0: resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} engines: {node: '>= 12'} @@ -8309,6 +8548,10 @@ packages: engines: {node: '>=0.11'} dev: true + /dayjs/1.10.7: + resolution: {integrity: sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==} + dev: true + /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} dependencies: @@ -8345,6 +8588,19 @@ packages: ms: 2.1.2 dev: true + /debug/4.3.3_supports-color@8.1.1: + resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 8.1.1 + dev: true + /decamelize/1.2.0: resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} engines: {node: '>=0.10.0'} @@ -8560,6 +8816,10 @@ packages: utila: 0.4.0 dev: true + /dom-event-types/1.0.0: + resolution: {integrity: sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==} + dev: true + /dom-helpers/3.4.0: resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} dependencies: @@ -8666,6 +8926,23 @@ packages: stream-shift: 1.0.1 dev: true + /ecc-jsbn/0.1.2: + resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + dev: true + + /editorconfig/0.15.3: + resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} + hasBin: true + dependencies: + commander: 2.20.3 + lru-cache: 4.1.5 + semver: 5.7.1 + sigmund: 1.0.1 + dev: true + /ee-first/1.1.1: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true @@ -8714,7 +8991,7 @@ packages: '@emotion/core': ^10.0.27 react: '>=16.3.0' dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 '@emotion/core': 10.3.1_react@17.0.2 '@emotion/weak-memoize': 0.2.5 hoist-non-react-statics: 3.3.2 @@ -8754,6 +9031,13 @@ packages: tapable: 1.1.3 dev: true + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.1 + dev: true + /entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true @@ -9806,6 +10090,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /eventemitter2/6.4.5: + resolution: {integrity: sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==} + dev: true + /eventemitter3/4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false @@ -9839,6 +10127,21 @@ packages: strip-eof: 1.0.0 dev: true + /execa/4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.6 + strip-final-newline: 2.0.0 + dev: true + /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -9869,6 +10172,13 @@ packages: strip-final-newline: 3.0.0 dev: true + /executable/4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + /expand-brackets/2.1.4: resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=} engines: {node: '>=0.10.0'} @@ -9974,6 +10284,25 @@ packages: - supports-color dev: true + /extract-zip/2.0.1_supports-color@8.1.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.3_supports-color@8.1.1 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.9.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extsprintf/1.3.0: + resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=} + engines: {'0': node >=0.6.0} + dev: true + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -10249,6 +10578,10 @@ packages: signal-exit: 3.0.6 dev: true + /forever-agent/0.6.1: + resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=} + dev: true + /fork-ts-checker-webpack-plugin/4.1.6: resolution: {integrity: sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==} engines: {node: '>=6.11.5', yarn: '>=1.0.0'} @@ -10294,6 +10627,15 @@ packages: webpack: 4.46.0 dev: true + /form-data/2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.34 + dev: true + /form-data/2.5.1: resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} engines: {node: '>= 0.12'} @@ -10511,6 +10853,11 @@ packages: engines: {node: '>=4'} dev: true + /get-port/5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} + dev: true + /get-stream/4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} @@ -10543,6 +10890,18 @@ packages: engines: {node: '>=0.10.0'} dev: true + /getos/3.2.1: + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + dependencies: + async: 3.2.3 + dev: true + + /getpass/0.1.7: + resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=} + dependencies: + assert-plus: 1.0.0 + dev: true + /github-slugger/1.4.0: resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} dev: true @@ -10621,6 +10980,13 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /global-dirs/3.0.0: + resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + dev: true + /global/4.4.0: resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} dependencies: @@ -10654,7 +11020,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.2.11 - ignore: 5.1.8 + ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -10711,8 +11077,8 @@ packages: uglify-js: 3.14.5 dev: true - /happy-dom/2.27.0: - resolution: {integrity: sha512-VucqmIeKeeVtxrTVGfrLR6dskVIk0F3/ZlHE3vL1C7Owaqodfxz+qNzpsGY0EBtTjsb4xhcS8wjp5X8/prI+2g==} + /happy-dom/2.27.2: + resolution: {integrity: sha512-JOVjQIA+YzxJLVbrpSqWZLHDDPTcjLCqPJ5wlT+IMkoY5LKp4NVU9yWmXc8yKooU8tzKHN0VK+alj4msohqsDg==} dependencies: he: 1.2.0 node-fetch: 2.6.6 @@ -10893,7 +11259,7 @@ packages: /history/5.0.0: resolution: {integrity: sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==} dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 dev: true /history/5.2.0: @@ -11037,6 +11403,15 @@ packages: '@types/node': 10.17.60 dev: true + /http-signature/1.3.6: + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.17.0 + dev: true + /https-browserify/1.0.0: resolution: {integrity: sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=} dev: true @@ -11051,6 +11426,11 @@ packages: - supports-color dev: true + /human-signals/1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + dev: true + /human-signals/2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -11095,11 +11475,6 @@ packages: engines: {node: '>= 4'} dev: true - /ignore/5.1.8: - resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} - engines: {node: '>= 4'} - dev: true - /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} @@ -11149,6 +11524,15 @@ packages: /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /ini/2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + dev: true + /inline-style-parser/0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: true @@ -11167,7 +11551,7 @@ packages: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.4.0 + rxjs: 7.5.2 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 @@ -11301,6 +11685,13 @@ packages: ci-info: 2.0.0 dev: true + /is-ci/3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.3.0 + dev: true + /is-core-module/2.8.0: resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} dependencies: @@ -11408,6 +11799,14 @@ packages: resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} dev: true + /is-installed-globally/0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.0 + is-path-inside: 3.0.3 + dev: true + /is-interactive/1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -11451,6 +11850,11 @@ packages: resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} dev: true + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + /is-plain-obj/2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -11568,6 +11972,11 @@ packages: resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} dev: true + /is-whitespace/0.3.0: + resolution: {integrity: sha1-Fjnssb4DauxppUy7QBz77XEUq38=} + engines: {node: '>=0.10.0'} + dev: true + /is-window/1.0.2: resolution: {integrity: sha1-LIlspT25feRdPDMTOmXYyfVjSA0=} dev: true @@ -11622,6 +12031,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /isstream/0.1.2: + resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} + dev: true + /istanbul-lib-coverage/3.2.0: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} @@ -11748,6 +12161,17 @@ packages: engines: {node: '>=10'} dev: true + /js-beautify/1.14.0: + resolution: {integrity: sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + config-chain: 1.1.13 + editorconfig: 0.15.3 + glob: 7.2.0 + nopt: 5.0.0 + dev: true + /js-levenshtein/1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} @@ -11780,6 +12204,10 @@ packages: argparse: 2.0.1 dev: true + /jsbn/0.1.1: + resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=} + dev: true + /jsdom/19.0.0: resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==} engines: {node: '>=12'} @@ -11844,10 +12272,18 @@ packages: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true + /json-schema/0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true + /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} dev: true + /json-stringify-safe/5.0.1: + resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} + dev: true + /json5/1.0.1: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true @@ -11891,6 +12327,16 @@ packages: graceful-fs: 4.2.8 dev: true + /jsprim/2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + dev: true + /jsx-ast-utils/3.2.0: resolution: {integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==} engines: {node: '>=4.0'} @@ -11958,6 +12404,11 @@ packages: /kolorist/1.5.1: resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==} + /lazy-ass/1.6.0: + resolution: {integrity: sha1-eZllXoZGwX8In90YfRUNMyTVRRM=} + engines: {node: '> 0.8'} + dev: true + /lazy-universal-dotenv/3.0.1: resolution: {integrity: sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==} engines: {node: '>=6.0.0', npm: '>=6.0.0', yarn: '>=1.0.0'} @@ -11988,6 +12439,26 @@ packages: /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} + /listr2/3.14.0_enquirer@2.3.6: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.16 + enquirer: 2.3.6 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.5.2 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + /lit-element/3.1.0: resolution: {integrity: sha512-4o5QiFwGSS1ViWWBV3nszQWTV0yAGY64zNrhQdwD+MNxRekIZpST7XqyzMQIJyKq+i9RFSTIdSURxPN1LsXGGA==} dependencies: @@ -12114,6 +12585,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.once/4.1.1: + resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} + dev: true + /lodash.throttle/4.1.1: resolution: {integrity: sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=} dev: false @@ -12133,6 +12608,16 @@ packages: is-unicode-supported: 0.1.0 dev: true + /log-update/4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + dev: true + /log-update/5.0.0: resolution: {integrity: sha512-HovF3knyZX9sleS0OkSJ6f53JEpbzcbomC6/WJ3iuGK8i6CRb6WZ542gO2F3pdQK8hwlijddDefVFhlMpwkOSQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -12162,6 +12647,13 @@ packages: highlight.js: 10.7.3 dev: true + /lru-cache/4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -12754,11 +13246,19 @@ packages: resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} dev: true + /nopt/5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.8 - resolve: 1.20.0 + resolve: 1.21.0 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -13068,6 +13568,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /ospath/1.2.2: + resolution: {integrity: sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=} + dev: true + /outvariant/1.2.1: resolution: {integrity: sha512-bcILvFkvpMXh66+Ubax/inxbKRyWTUiiFIW2DWkiS79wakrLGn3Ydy+GvukadiyfZjaL6C7YhIem4EZSM282wA==} dev: true @@ -13265,7 +13769,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.16.0 + '@babel/code-frame': 7.16.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.1.6 @@ -13340,6 +13844,7 @@ packages: /path-parse/1.0.6: resolution: {integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==} + dev: true /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -13411,6 +13916,11 @@ packages: hasBin: true dev: true + /pify/2.3.0: + resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} + engines: {node: '>=0.10.0'} + dev: true + /pify/3.0.0: resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} engines: {node: '>=4'} @@ -13475,8 +13985,8 @@ packages: - typescript dev: true - /pnpm/6.27.0: - resolution: {integrity: sha512-auoErIp8BCwfne9P65YQDsJVPI8S/9WgN8hsXwgE/0qukdS7Yk8+dTCyR9H+t1xywOrt1k1fgojMHZEMRLLdTw==} + /pnpm/6.27.1: + resolution: {integrity: sha512-aW+oDXiMk9mzInmIaRv9v9+FSNkXBs60rVUO6QBpalPja0eO3J5ePSyBxAbLsuhGGbEOpwRq0aNywFq8yIi9HQ==} engines: {node: '>=12.17'} hasBin: true dev: true @@ -13485,7 +13995,7 @@ packages: resolution: {integrity: sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 dev: true /posix-character-classes/0.1.1: @@ -13577,7 +14087,7 @@ packages: dependencies: nanoid: 3.1.30 picocolors: 1.0.0 - source-map-js: 1.0.1 + source-map-js: 1.0.2 /preact/10.6.4: resolution: {integrity: sha512-WyosM7pxGcndU8hY0OQlLd54tOU+qmG45QXj2dAYrL11HoyU/EzOSTlpJsirbBr1QW7lICxSsVJJmcmUglovHQ==} @@ -13605,6 +14115,11 @@ packages: hasBin: true dev: true + /pretty-bytes/5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + /pretty-error/2.1.2: resolution: {integrity: sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==} dependencies: @@ -13646,6 +14161,15 @@ packages: engines: {node: '>= 0.8'} dev: true + /pretty/2.0.0: + resolution: {integrity: sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=} + engines: {node: '>=0.10.0'} + dependencies: + condense-newlines: 0.2.1 + extend-shallow: 2.0.1 + js-beautify: 1.14.0 + dev: true + /prismjs/1.25.0: resolution: {integrity: sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==} dev: true @@ -13732,6 +14256,10 @@ packages: xtend: 4.0.2 dev: true + /proto-list/1.2.4: + resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} + dev: true + /proxy-addr/2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -13740,6 +14268,10 @@ packages: ipaddr.js: 1.9.1 dev: true + /proxy-from-env/1.0.0: + resolution: {integrity: sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=} + dev: true + /proxy-from-env/1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true @@ -13748,6 +14280,10 @@ packages: resolution: {integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=} dev: true + /pseudomap/1.0.2: + resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} + dev: true + /psl/1.8.0: resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} dev: true @@ -13841,6 +14377,11 @@ packages: side-channel: 1.0.4 dev: true + /qs/6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true + /qs/6.9.6: resolution: {integrity: sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==} engines: {node: '>=0.6'} @@ -14395,7 +14936,7 @@ packages: /regenerator-transform/0.14.5: resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==} dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 dev: true /regex-not/1.0.2: @@ -14544,6 +15085,12 @@ packages: engines: {node: '>=0.10'} dev: true + /request-progress/3.0.0: + resolution: {integrity: sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=} + dependencies: + throttleit: 1.0.0 + dev: true + /require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} @@ -14580,6 +15127,7 @@ packages: dependencies: is-core-module: 2.8.0 path-parse: 1.0.6 + dev: true /resolve/1.21.0: resolution: {integrity: sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==} @@ -14622,6 +15170,10 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true + /rfdc/1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + /rifm/0.12.1_react@17.0.2: resolution: {integrity: sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==} peerDependencies: @@ -14736,10 +15288,10 @@ packages: aproba: 1.2.0 dev: true - /rxjs/7.4.0: - resolution: {integrity: sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==} + /rxjs/7.5.2: + resolution: {integrity: sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==} dependencies: - tslib: 2.1.0 + tslib: 2.3.1 dev: true /safe-buffer/5.1.1: @@ -14997,6 +15549,10 @@ packages: object-inspect: 1.11.0 dev: true + /sigmund/1.0.1: + resolution: {integrity: sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=} + dev: true + /signal-exit/3.0.6: resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} dev: true @@ -15023,6 +15579,24 @@ packages: engines: {node: '>=8'} dev: true + /slice-ansi/3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + /slice-ansi/5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -15065,14 +15639,9 @@ packages: resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} dev: true - /source-map-js/1.0.1: - resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==} - engines: {node: '>=0.10.0'} - /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map-resolve/0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} @@ -15188,6 +15757,22 @@ packages: resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} dev: true + /sshpk/1.17.0: + resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + dev: true + /ssri/6.0.2: resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} dependencies: @@ -15457,6 +16042,13 @@ packages: has-flag: 4.0.0 dev: true + /supports-color/8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -15718,6 +16310,10 @@ packages: engines: {node: '>=10'} dev: true + /throttleit/1.0.0: + resolution: {integrity: sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=} + dev: true + /through/2.3.8: resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} dev: true @@ -15759,6 +16355,13 @@ packages: os-tmpdir: 1.0.2 dev: true + /tmp/0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: true + /tmpl/1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true @@ -15816,6 +16419,14 @@ packages: resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} engines: {node: '>=6'} + /tough-cookie/2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.8.0 + punycode: 2.1.1 + dev: true + /tough-cookie/4.0.0: resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} engines: {node: '>=6'} @@ -15889,10 +16500,6 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.1.0: - resolution: {integrity: sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==} - dev: true - /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} @@ -15910,6 +16517,16 @@ packages: resolution: {integrity: sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=} dev: true + /tunnel-agent/0.6.0: + resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /tweetnacl/0.14.5: + resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=} + dev: true + /type-check/0.3.2: resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} engines: {node: '>= 0.8.0'} @@ -16163,7 +16780,7 @@ packages: /unload/2.2.0: resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} dependencies: - '@babel/runtime': 7.16.3 + '@babel/runtime': 7.16.7 detect-node: 2.1.0 dev: false @@ -16297,6 +16914,11 @@ packages: isobject: 3.0.1 dev: true + /untildify/4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /upath/1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} @@ -16420,6 +17042,11 @@ packages: hasBin: true dev: true + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + /v8-compile-cache/2.2.0: resolution: {integrity: sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==} dev: true @@ -16449,6 +17076,15 @@ packages: resolution: {integrity: sha512-qdUjDHDqSY3oaKxjwwZYnlPiqwtFO7Uhzi0g6tgLXJX4OTR5xq7UITHIvxddC8Jf4IisBBTYhn7GjpvxtNJ6/g==} dev: true + /verror/1.10.0: + resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + dev: true + /vfile-location/3.2.0: resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} dev: true @@ -16922,8 +17558,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: false - optional: true /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -17002,6 +17636,10 @@ packages: engines: {node: '>=10'} dev: true + /yallist/2.1.2: + resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} + dev: true + /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true From 4150f7455b0aea91da950f96cef131783b10171b Mon Sep 17 00:00:00 2001 From: Michel EDIGHOFFER Date: Wed, 19 Jan 2022 17:35:25 +0100 Subject: [PATCH 03/20] fix: seperate cypress tests --- package.json | 2 +- packages/ui/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f69a2e220736..8e39d3d41633 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "typecheck": "tsc --noEmit", "ui:build": "vite build packages/ui", "ui:dev": "vite packages/ui", - "ui:test": "npm -C packages/ui test" + "ui:test": "npm -C packages/ui test:run" }, "devDependencies": { "@antfu/eslint-config": "^0.16.0", diff --git a/packages/ui/package.json b/packages/ui/package.json index e0f0dc725e4e..dc1626020d6a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -24,7 +24,7 @@ "dev:client": "vite", "dev": "rollup -c --watch --watch.include=node/**", "dev:ui": "run-p dev dev:client", - "test": "cypress run-ct", + "test:run": "cypress run-ct", "test:open": "cypress open-ct" }, "dependencies": { From 6c8ec2afaaff4d5df57cf4a48326a0f75ddeb0f6 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Wed, 19 Jan 2022 23:42:16 -0500 Subject: [PATCH 04/20] feat: adding cypress component testing for ui --- .../ui/client/components/IconButton.cy.tsx | 23 + .../dashboard/DashboardEntry.cy.tsx | 30 ++ .../components/dashboard/DashboardEntry.vue | 2 +- .../dashboard/TestFilesEntry.cy.tsx | 20 + .../components/dashboard/TestFilesEntry.vue | 5 +- .../components/dashboard/TestsEntry.cy.tsx | 30 ++ .../components/dashboard/TestsEntry.vue | 10 +- .../dashboard/TestsFilesContainer.cy.tsx | 11 + .../views/ViewConsoleOutput.spec.tsx | 13 + .../components/views/ViewConsoleOutput.vue | 2 +- .../client/components/views/ViewEditor.cy.tsx | 21 + .../ui/client/components/views/ViewEditor.vue | 1 + packages/ui/client/pages/App.cy.tsx | 9 + packages/ui/client/pages/VitestUi.ui.spec.ts | 7 - packages/ui/cypress.json | 9 +- packages/ui/cypress/plugins/index.ts | 2 +- packages/ui/cypress/plugins/vite.config.ts | 7 + packages/ui/cypress/support/index.js | 2 - packages/ui/cypress/support/index.ts | 18 + packages/ui/cypress/support/mount.ts | 39 ++ packages/ui/package.json | 4 +- packages/ui/tsconfig.json | 3 + packages/ui/vite.config.ts | 11 +- pnpm-lock.yaml | 409 +++++++++++------- 24 files changed, 508 insertions(+), 180 deletions(-) create mode 100644 packages/ui/client/components/IconButton.cy.tsx create mode 100644 packages/ui/client/components/dashboard/DashboardEntry.cy.tsx create mode 100644 packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx create mode 100644 packages/ui/client/components/dashboard/TestsEntry.cy.tsx create mode 100644 packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx create mode 100644 packages/ui/client/components/views/ViewConsoleOutput.spec.tsx create mode 100644 packages/ui/client/components/views/ViewEditor.cy.tsx create mode 100644 packages/ui/client/pages/App.cy.tsx delete mode 100644 packages/ui/client/pages/VitestUi.ui.spec.ts create mode 100644 packages/ui/cypress/plugins/vite.config.ts delete mode 100644 packages/ui/cypress/support/index.js create mode 100644 packages/ui/cypress/support/index.ts create mode 100644 packages/ui/cypress/support/mount.ts diff --git a/packages/ui/client/components/IconButton.cy.tsx b/packages/ui/client/components/IconButton.cy.tsx new file mode 100644 index 000000000000..03f539272d70 --- /dev/null +++ b/packages/ui/client/components/IconButton.cy.tsx @@ -0,0 +1,23 @@ +import IconButton from './IconButton.vue' + +const title = 'A star' +const icon = 'i-carbon-star-filled' + +describe('IconButton', () => { + it('should render the title', () => { + cy.mount() + .get(`[aria-label="${title}"][role=button]`) + .should('be.visible') + }) + + it('can be overridden with a slot', () => { + cy.mount( + ⭐️ + ) + .get(`.${icon}`) + .should('not.exist') + .get('button') + .contains('⭐️') + .should('be.visible') + }) +}) diff --git a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx new file mode 100644 index 000000000000..7eea2d455985 --- /dev/null +++ b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx @@ -0,0 +1,30 @@ +import faker from '@faker-js/faker' +import DashboardEntry from './DashboardEntry.vue' + +const body = () => (
{ faker.lorem.words(2) }
) +const header = () => (
{ faker.hacker.phrase() }
) +const bodySelector = '[data-testid=body-content]' +const headerSelector = '[data-testid=header-content]' +const tailSelector = '[data-testid=tail]' + +describe('DashboardEntry', () => { + it('tail is rendered by default', () => { + cy.mount() + .get(tailSelector) + .should('be.visible') + }) + + it('tail is not shown when true', () => { + cy.mount() + .get(tailSelector) + .should('not.exist') + }) + + it('renders the body and header slots', () => { + cy.mount() + .get(bodySelector) + .should('be.visible') + .get(headerSelector) + .should('be.visible') + }) +}) diff --git a/packages/ui/client/components/dashboard/DashboardEntry.vue b/packages/ui/client/components/dashboard/DashboardEntry.vue index 102651b3f567..212630a7a369 100644 --- a/packages/ui/client/components/dashboard/DashboardEntry.vue +++ b/packages/ui/client/components/dashboard/DashboardEntry.vue @@ -12,6 +12,6 @@ withDefaults(defineProps<{ tail?: boolean }>(), { tail: false }) -
+
diff --git a/packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx b/packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx new file mode 100644 index 000000000000..c9a02fd071ea --- /dev/null +++ b/packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx @@ -0,0 +1,20 @@ +import TestFilesEntry from './TestFilesEntry.vue' + +const entrySelector = '[data-testid=test-files-entry]' +const numFilesSelector = '[data-testid=num-files]' +const timingSelector = '[data-testid=run-time]' + +describe('TestFilesEntry', () => { + it('renders the headers', () => { + cy.mount() + .get(entrySelector) + .should('contain.text', 'Files') + .and('contain.text', 'Time') + + // Empty state + .get(timingSelector) + .should('have.text', '0ms') + .get(numFilesSelector) + .should('have.text', '0') + }) +}) diff --git a/packages/ui/client/components/dashboard/TestFilesEntry.vue b/packages/ui/client/components/dashboard/TestFilesEntry.vue index b149a41c3dc7..48fa0ed94187 100644 --- a/packages/ui/client/components/dashboard/TestFilesEntry.vue +++ b/packages/ui/client/components/dashboard/TestFilesEntry.vue @@ -5,13 +5,14 @@ import { filesFailed, filesSnapshotFailed, filesSuccess, time } from '../../comp - + @@ -38,7 +38,7 @@ const pending = computed(() => { {{ skipped }} - + @@ -46,7 +46,7 @@ const pending = computed(() => { {{ todo }} - + diff --git a/packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx b/packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx new file mode 100644 index 000000000000..ba0e3822ffb1 --- /dev/null +++ b/packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx @@ -0,0 +1,11 @@ +import TestsFilesContainer from './TestsFilesContainer.vue' + +const entrySelector = '[data-testid=test-files-entry]' + +describe('TestsFilesContainer', () => { + it('renders the TestEntry', () => { + cy.mount() + .get(entrySelector) + .should('be.visible') + }) +}) diff --git a/packages/ui/client/components/views/ViewConsoleOutput.spec.tsx b/packages/ui/client/components/views/ViewConsoleOutput.spec.tsx new file mode 100644 index 000000000000..3624e62b723d --- /dev/null +++ b/packages/ui/client/components/views/ViewConsoleOutput.spec.tsx @@ -0,0 +1,13 @@ +import ViewConsoleOutput from './ViewConsoleOutput.vue' + +const entrySelector = '[data-testid=logs]' + +describe('ViewConsoleOutput', () => { + it('renders', () => { + cy.mount() + .get(entrySelector) + // TODO: stub the websocket connection + // so that we can add logs and other data + .should('not.exist') + }) +}) diff --git a/packages/ui/client/components/views/ViewConsoleOutput.vue b/packages/ui/client/components/views/ViewConsoleOutput.vue index b382f93c5a8a..debfc5b5fa25 100644 --- a/packages/ui/client/components/views/ViewConsoleOutput.vue +++ b/packages/ui/client/components/views/ViewConsoleOutput.vue @@ -18,7 +18,7 @@ function getTaskName(id?: string) { diff --git a/packages/ui/client/pages/App.cy.tsx b/packages/ui/client/pages/App.cy.tsx new file mode 100644 index 000000000000..ea25dd78f431 --- /dev/null +++ b/packages/ui/client/pages/App.cy.tsx @@ -0,0 +1,9 @@ +import App from './index.vue' + +// When mocking WebSockets, we'll want to follow the guide here +// https://glebbahmutov.com/blog/test-socketio-chat-using-cypress/#use-socketio-from-cypress +describe('App', () => { + it('should render', () => { + cy.mount() + }) +}) diff --git a/packages/ui/client/pages/VitestUi.ui.spec.ts b/packages/ui/client/pages/VitestUi.ui.spec.ts deleted file mode 100644 index 13159b582764..000000000000 --- a/packages/ui/client/pages/VitestUi.ui.spec.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { mount } from '@cypress/vue' -import App from './index.vue' -describe('App', () => { - it('should render', () => { - mount(App) - }) -}) diff --git a/packages/ui/cypress.json b/packages/ui/cypress.json index 697d8601b01d..0947e2003adf 100644 --- a/packages/ui/cypress.json +++ b/packages/ui/cypress.json @@ -1,4 +1,7 @@ { - "testFiles": "**/*.ui.spec.{js,ts}", - "componentFolder": "client" - } \ No newline at end of file + "testFiles": "**/*.cy.{js,ts,jsx,tsx}", + "componentFolder": "client", + "supportFile": "cypress/support/index.ts", + "pluginsFile": "cypress/plugins/index.ts", + "fixturesFolder": false + } diff --git a/packages/ui/cypress/plugins/index.ts b/packages/ui/cypress/plugins/index.ts index 9302b20a19b6..94bdd82abfc8 100644 --- a/packages/ui/cypress/plugins/index.ts +++ b/packages/ui/cypress/plugins/index.ts @@ -5,7 +5,7 @@ const plugin: Cypress.PluginConfig = (on, config) => { on('dev-server:start', options => startDevServer({ options, viteConfig: { - configFile: path.resolve(__dirname, '..', '..', 'vite.config.ts'), + configFile: path.resolve(__dirname, './vite.config.ts'), }, })) diff --git a/packages/ui/cypress/plugins/vite.config.ts b/packages/ui/cypress/plugins/vite.config.ts new file mode 100644 index 000000000000..75925489ffa9 --- /dev/null +++ b/packages/ui/cypress/plugins/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vueJsx from '@vitejs/plugin-vue-jsx' +import { config } from '../../vite.config' + +config.plugins?.push(vueJsx()) + +export default defineConfig(config) diff --git a/packages/ui/cypress/support/index.js b/packages/ui/cypress/support/index.js deleted file mode 100644 index ec2253ef9c57..000000000000 --- a/packages/ui/cypress/support/index.js +++ /dev/null @@ -1,2 +0,0 @@ -// Needed to process uno styles -import 'uno.css' diff --git a/packages/ui/cypress/support/index.ts b/packages/ui/cypress/support/index.ts new file mode 100644 index 000000000000..841f2f030141 --- /dev/null +++ b/packages/ui/cypress/support/index.ts @@ -0,0 +1,18 @@ +import faker from '@faker-js/faker' +// Needed to process uno styles +import 'uno.css' +import 'd3-graph-controller/default.css' +import 'splitpanes/dist/splitpanes.css' +import '@unocss/reset/tailwind.css' +import 'codemirror/lib/codemirror.css' +import 'codemirror-theme-vars/base.css' +import 'tippy.js/dist/tippy.css' +import '../../client/styles/main.css' + +import { registerMount } from './mount' + +before(() => { + faker.seed(0) +}) + +registerMount() diff --git a/packages/ui/cypress/support/mount.ts b/packages/ui/cypress/support/mount.ts new file mode 100644 index 000000000000..c145ea04e09d --- /dev/null +++ b/packages/ui/cypress/support/mount.ts @@ -0,0 +1,39 @@ +import { mount } from '@cypress/vue' +import type { Component } from 'vue' +import { createRouter, createWebHistory } from 'vue-router' +import routes from 'virtual:generated-pages' +import tooltip from '../../client/directives/tooltip' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, +}) + +const plugins = [() => router] +export const registerMount = () => Cypress.Commands.add( + 'mount', + // eslint-disable-next-line @typescript-eslint/no-unused-vars + [0]>(comp: any, options: any = {}) => { + options.global = options.global || {} + options.global.stubs = options.global.stubs || {} + options.global.stubs.transition = false + options.global.plugins = options.global.plugins || [] + options.global.directives = { tooltip } + plugins?.forEach((pluginFn: () => any) => { + options?.global?.plugins?.push(pluginFn()) + }) + + return mount(comp, options) + }, +) + +declare global { + namespace Cypress { + interface Chainable { + /** + * Install all vue plugins and globals then mount + */ + mount(comp: Component, options?: unknown): Cypress.Chainable + } + } +} diff --git a/packages/ui/package.json b/packages/ui/package.json index dc1626020d6a..f8f89ff46a64 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -32,13 +32,15 @@ }, "devDependencies": { "@cypress/vite-dev-server": "^2.2.2", - "@cypress/vue": "^2.2.3", + "@cypress/vue": "^3.1.0", + "@faker-js/faker": "^6.0.0-alpha.3", "@types/codemirror": "^5.60.5", "@types/d3-force": "^3.0.3", "@types/d3-selection": "^3.0.2", "@types/ws": "^8.2.2", "@unocss/reset": "^0.22.4", "@vitejs/plugin-vue": "^2.0.1", + "@vitejs/plugin-vue-jsx": "^1.3.3", "@vitest/ws-client": "workspace:*", "@vueuse/core": "^7.5.3", "codemirror": "^5.65.0", diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index f264cd9af614..0c424c62653b 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -1,4 +1,7 @@ { + "compilerOptions": { + "jsx": "preserve" + }, "extends": "../../tsconfig.json", "exclude": ["dist", "node_modules"] } diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index c039271a0f85..8898c41be886 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -1,4 +1,5 @@ import { resolve } from 'pathe' +import type { UserConfig } from 'vite' import { defineConfig } from 'vite' import Vue from '@vitejs/plugin-vue' import Components from 'unplugin-vue-components/vite' @@ -7,7 +8,7 @@ import Unocss from 'unocss/vite' import Pages from 'vite-plugin-pages' import { presetAttributify, presetIcons, presetUno } from 'unocss' -export default defineConfig({ +export const config: UserConfig = { root: __dirname, base: '/__vitest__/', resolve: { @@ -59,9 +60,7 @@ export default defineConfig({ include: [ 'vue', ], - // FIXME: Cypress won't start without that exclude. But tests won't work on running - // exclude: [ - // 'vue-template-compiler', - // ], }, -}) +} + +export default defineConfig(config) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 426fdb55933e..f5b7e1b6678f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,9 +91,9 @@ importers: vite: latest vitest: latest devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_@vitest+ui@0.1.24+c8@7.11.0 examples/lit: specifiers: @@ -105,10 +105,10 @@ importers: dependencies: lit: 2.1.1 devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 happy-dom: 2.27.2 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_45e2ace200ce71b01f594f053dac1578 examples/mocks: specifiers: @@ -123,9 +123,9 @@ importers: axios: 0.25.0 tinyspy: 0.2.8 devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_@vitest+ui@0.1.24+c8@7.11.0 examples/puppeteer: specifiers: @@ -134,10 +134,10 @@ importers: vite: latest vitest: latest devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 puppeteer: 13.0.0 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_@vitest+ui@0.1.24+c8@7.11.0 examples/react: specifiers: @@ -156,11 +156,11 @@ importers: '@types/react': 17.0.38 '@types/react-test-renderer': 17.0.1 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 happy-dom: 2.27.2 jsdom: 19.0.0 react-test-renderer: 17.0.2_react@17.0.2 - vitest: link:../../packages/vitest + vitest: 0.1.24_196ea32bb70f2e1a5b5a7788346e4d46 examples/react-enzyme: specifiers: @@ -181,11 +181,11 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 enzyme: 3.11.0 enzyme-adapter-react-16: 1.15.6_fae758709a8810ba97b4c03852dde4d0 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_@vitest+ui@0.1.24+c8@7.11.0 examples/react-mui: specifiers: @@ -224,11 +224,11 @@ importers: '@testing-library/jest-dom': 5.16.1 '@testing-library/react': 12.1.2_react-dom@17.0.2+react@17.0.2 '@testing-library/user-event': 13.5.0 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 date-fns: 2.28.0 jsdom: 19.0.0 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_b20e5fe96237b85dc61747daf6e4f52a examples/react-storybook-testing: specifiers: @@ -275,7 +275,7 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 babel-loader: 8.2.3_@babel+core@7.16.7 jsdom: 19.0.0 msw: 0.36.5 @@ -283,7 +283,7 @@ importers: storybook-builder-vite: 0.1.13_a5ce969bcf8d8747b3a0d666bc290993 typescript: 4.5.4 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_b20e5fe96237b85dc61747daf6e4f52a examples/react-testing-lib: specifiers: @@ -311,10 +311,10 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 jsdom: 19.0.0 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_b20e5fe96237b85dc61747daf6e4f52a examples/react-testing-lib-msw: specifiers: @@ -342,12 +342,12 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 cross-fetch: 3.1.4 jsdom: 19.0.0 msw: 0.36.5 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_b20e5fe96237b85dc61747daf6e4f52a examples/ruby: specifiers: @@ -362,7 +362,7 @@ importers: '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 jsdom: 19.0.0 vite-plugin-ruby: 3.0.8_vite@2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_c8@7.11.0+jsdom@19.0.0 vue: 3.2.26 examples/svelte: @@ -376,10 +376,10 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': 1.0.0-next.34_svelte@3.46.2+vite@2.7.13 '@testing-library/svelte': 3.0.3_svelte@3.46.2 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.1.24 jsdom: 19.0.0 svelte: 3.46.2 - vitest: link:../../packages/vitest + vitest: 0.1.24_b20e5fe96237b85dc61747daf6e4f52a examples/vitesse: specifiers: @@ -398,7 +398,7 @@ importers: happy-dom: 2.27.2 unplugin-auto-import: 0.5.11_0300e2fc4592cc668512bad114c07138 unplugin-vue-components: 0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba - vitest: link:../../packages/vitest + vitest: 0.1.24_c8@7.11.0+happy-dom@2.27.2 examples/vue: specifiers: @@ -413,7 +413,7 @@ importers: '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 happy-dom: 2.27.2 - vitest: link:../../packages/vitest + vitest: 0.1.24_c8@7.11.0+happy-dom@2.27.2 examples/vue-jsx: specifiers: @@ -430,19 +430,21 @@ importers: '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 happy-dom: 2.27.2 vite: 2.7.13 - vitest: link:../../packages/vitest + vitest: 0.1.24_c8@7.11.0+happy-dom@2.27.2 vue: 3.2.26 packages/ui: specifiers: '@cypress/vite-dev-server': ^2.2.2 - '@cypress/vue': ^2.2.3 + '@cypress/vue': ^3.1.0 + '@faker-js/faker': ^6.0.0-alpha.3 '@types/codemirror': ^5.60.5 '@types/d3-force': ^3.0.3 '@types/d3-selection': ^3.0.2 '@types/ws': ^8.2.2 '@unocss/reset': ^0.22.4 '@vitejs/plugin-vue': ^2.0.1 + '@vitejs/plugin-vue-jsx': ^1.3.3 '@vitest/ws-client': workspace:* '@vueuse/core': ^7.5.3 codemirror: ^5.65.0 @@ -464,13 +466,15 @@ importers: sirv: 2.0.2 devDependencies: '@cypress/vite-dev-server': 2.2.2_vite@2.7.13 - '@cypress/vue': 2.2.3_cypress@9.3.0+vue@3.2.26 + '@cypress/vue': 3.1.0_cypress@9.3.0+vue@3.2.26 + '@faker-js/faker': 6.0.0-alpha.3 '@types/codemirror': 5.60.5 '@types/d3-force': 3.0.3 '@types/d3-selection': 3.0.2 '@types/ws': 8.2.2 '@unocss/reset': 0.22.4 '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue-jsx': 1.3.3 '@vitest/ws-client': link:../ws-client '@vueuse/core': 7.5.3_vue@3.2.26 codemirror: 5.65.0 @@ -2541,23 +2545,24 @@ packages: - supports-color dev: true - /@cypress/vue/2.2.3_cypress@9.3.0+vue@3.2.26: - resolution: {integrity: sha512-KgrUjiLVyoiU5xb5JAhsdFLDzyh7Njhm4TMuINFsoBZkt4PJptGCsMzdaI7lk1XX20NGvg8MPIFbbQi+L0L8qQ==} + /@cypress/vue/3.1.0_cypress@9.3.0+vue@3.2.26: + resolution: {integrity: sha512-E2aFQtPvLLW9yKZz7t94VN1SuO53Jx9wN12gi7pvpHId5E6p+8Z+v2zlzzREpA8Gbi2QGNMwK8ciSYcwZG2bXg==} engines: {node: '>=8'} peerDependencies: '@cypress/webpack-dev-server': '*' - cypress: '>=4.5.0' - vue: ^2.0.0 + babel-loader: '*' + cypress: '>=7.0.0' + vue: '>=3.0.0' peerDependenciesMeta: '@cypress/webpack-dev-server': optional: true + babel-loader: + optional: true dependencies: '@cypress/mount-utils': 1.0.2 - '@vue/test-utils': 1.3.0_vue@3.2.26 + '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 cypress: 9.3.0 vue: 3.2.26 - transitivePeerDependencies: - - vue-template-compiler dev: true /@cypress/xvfb/1.2.4: @@ -2875,6 +2880,10 @@ packages: - supports-color dev: true + /@faker-js/faker/6.0.0-alpha.3: + resolution: {integrity: sha512-8B+7Jlwb9ogcoluzxB6AaSRZn2gnoewTA/WygAYhWNxkrFKjQL0TDXK6AW6uJlASMKl7qG/qbEVtpjLByuL0ZQ==} + dev: true + /@gar/promisify/1.1.2: resolution: {integrity: sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==} dev: true @@ -5284,11 +5293,9 @@ packages: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: '@types/chai': 4.3.0 - dev: false /@types/chai/4.3.0: resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==} - dev: false /@types/codemirror/5.60.5: resolution: {integrity: sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==} @@ -5999,6 +6006,12 @@ packages: vue: 3.2.27 dev: true + /@vitest/ui/0.1.24: + resolution: {integrity: sha512-DSy/wBVkXoPz0L3O5ky8jvj4G8j0Kub7rS2EiU8X9GR+c6k5LhquTSJ92cNzeFdVCa7Suo/myvuUyogakv6cYg==} + dependencies: + sirv: 2.0.2 + dev: true + /@vue/babel-helper-vue-transform-on/1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: true @@ -6180,18 +6193,6 @@ packages: resolution: {integrity: sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA==} dev: true - /@vue/test-utils/1.3.0_vue@3.2.26: - resolution: {integrity: sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==} - peerDependencies: - vue: 2.x - vue-template-compiler: ^2.x - dependencies: - dom-event-types: 1.0.0 - lodash: 4.17.21 - pretty: 2.0.0 - vue: 3.2.26 - dev: true - /@vue/test-utils/2.0.0-rc.18_vue@3.2.26: resolution: {integrity: sha512-aifolXjVdsogjaLmDoZ0FU8vN+R67aWmg9OuVeED4w5Ij5GFQLrlhM19uhWe/r5xXUL4fXMk3pX5wW6FJP1NcQ==} peerDependencies: @@ -6415,10 +6416,6 @@ packages: resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} dev: true - /abbrev/1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: true - /accepts/1.3.7: resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} engines: {node: '>= 0.6'} @@ -6868,7 +6865,6 @@ packages: /assertion-error/1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: false /assign-symbols/1.0.0: resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} @@ -7614,7 +7610,6 @@ packages: get-func-name: 2.0.0 pathval: 1.1.1 type-detect: 4.0.8 - dev: false /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -7666,7 +7661,6 @@ packages: /check-error/1.0.2: resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} - dev: false /check-more-types/2.24.0: resolution: {integrity: sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=} @@ -8033,22 +8027,6 @@ packages: typedarray: 0.0.6 dev: true - /condense-newlines/0.2.1: - resolution: {integrity: sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-whitespace: 0.3.0 - kind-of: 3.2.2 - dev: true - - /config-chain/1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - dependencies: - ini: 1.3.8 - proto-list: 1.2.4 - dev: true - /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} dev: true @@ -8629,7 +8607,6 @@ packages: engines: {node: '>=0.12'} dependencies: type-detect: 4.0.8 - dev: false /deep-equal/2.0.5: resolution: {integrity: sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==} @@ -8816,10 +8793,6 @@ packages: utila: 0.4.0 dev: true - /dom-event-types/1.0.0: - resolution: {integrity: sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==} - dev: true - /dom-helpers/3.4.0: resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} dependencies: @@ -8933,16 +8906,6 @@ packages: safer-buffer: 2.1.2 dev: true - /editorconfig/0.15.3: - resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==} - hasBin: true - dependencies: - commander: 2.20.3 - lru-cache: 4.1.5 - semver: 5.7.1 - sigmund: 1.0.1 - dev: true - /ee-first/1.1.1: resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true @@ -10833,7 +10796,6 @@ packages: /get-func-name/2.0.0: resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} - dev: false /get-intrinsic/1.1.1: resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} @@ -11524,10 +11486,6 @@ packages: /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - /ini/2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} @@ -11972,11 +11930,6 @@ packages: resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} dev: true - /is-whitespace/0.3.0: - resolution: {integrity: sha1-Fjnssb4DauxppUy7QBz77XEUq38=} - engines: {node: '>=0.10.0'} - dev: true - /is-window/1.0.2: resolution: {integrity: sha1-LIlspT25feRdPDMTOmXYyfVjSA0=} dev: true @@ -12161,17 +12114,6 @@ packages: engines: {node: '>=10'} dev: true - /js-beautify/1.14.0: - resolution: {integrity: sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - config-chain: 1.1.13 - editorconfig: 0.15.3 - glob: 7.2.0 - nopt: 5.0.0 - dev: true - /js-levenshtein/1.1.6: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} @@ -12647,13 +12589,6 @@ packages: highlight.js: 10.7.3 dev: true - /lru-cache/4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 - dev: true - /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -13246,14 +13181,6 @@ packages: resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} dev: true - /nopt/5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: true - /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: @@ -13873,7 +13800,6 @@ packages: /pathval/1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: false /pbkdf2/3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} @@ -14161,15 +14087,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /pretty/2.0.0: - resolution: {integrity: sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=} - engines: {node: '>=0.10.0'} - dependencies: - condense-newlines: 0.2.1 - extend-shallow: 2.0.1 - js-beautify: 1.14.0 - dev: true - /prismjs/1.25.0: resolution: {integrity: sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==} dev: true @@ -14256,10 +14173,6 @@ packages: xtend: 4.0.2 dev: true - /proto-list/1.2.4: - resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} - dev: true - /proxy-addr/2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -14280,10 +14193,6 @@ packages: resolution: {integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=} dev: true - /pseudomap/1.0.2: - resolution: {integrity: sha1-8FKijacOYYkX7wqKw0wa5aaChrM=} - dev: true - /psl/1.8.0: resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} dev: true @@ -15549,10 +15458,6 @@ packages: object-inspect: 1.11.0 dev: true - /sigmund/1.0.1: - resolution: {integrity: sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=} - dev: true - /signal-exit/3.0.6: resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} dev: true @@ -16335,12 +16240,10 @@ packages: /tinypool/0.1.1: resolution: {integrity: sha512-sW2fQZ2BRb/GX5v55NkHiTrbMLx0eX0xNpP+VGhOe2f7Oo04+LeClDyM19zCE/WCy7jJ8kzIJ0Ojrxj3UhN9Sg==} engines: {node: '>=14.0.0'} - dev: false /tinyspy/0.2.8: resolution: {integrity: sha512-4VXqQzzh9gC5uOLk77cLr9R3wqJq07xJlgM9IUdCNJCet139r+046ETKbU1x7mGs7B0k7eopyH5U6yflbBXNyA==} engines: {node: '>=14.0.0'} - dev: false /tippy.js/6.3.7: resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} @@ -17195,6 +17098,214 @@ packages: - stylus dev: true + /vitest/0.1.24_196ea32bb70f2e1a5b5a7788346e4d46: + resolution: {integrity: sha512-m1x3hKO/QCpPPFOvSqpB1QoDxkICn0HQuwrqerrBqS53x3dh1WF0CUfRnYHCekBNKFsVXgdvfJFAoGKXKsEF4A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.1.24 + c8: 7.11.0 + chai: 4.3.4 + happy-dom: 2.27.2 + jsdom: 19.0.0 + local-pkg: 0.4.1 + tinypool: 0.1.1 + tinyspy: 0.2.8 + vite: 2.7.13 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.1.24_45e2ace200ce71b01f594f053dac1578: + resolution: {integrity: sha512-m1x3hKO/QCpPPFOvSqpB1QoDxkICn0HQuwrqerrBqS53x3dh1WF0CUfRnYHCekBNKFsVXgdvfJFAoGKXKsEF4A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.1.24 + c8: 7.11.0 + chai: 4.3.4 + happy-dom: 2.27.2 + local-pkg: 0.4.1 + tinypool: 0.1.1 + tinyspy: 0.2.8 + vite: 2.7.13 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.1.24_@vitest+ui@0.1.24+c8@7.11.0: + resolution: {integrity: sha512-m1x3hKO/QCpPPFOvSqpB1QoDxkICn0HQuwrqerrBqS53x3dh1WF0CUfRnYHCekBNKFsVXgdvfJFAoGKXKsEF4A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.1.24 + c8: 7.11.0 + chai: 4.3.4 + local-pkg: 0.4.1 + tinypool: 0.1.1 + tinyspy: 0.2.8 + vite: 2.7.13 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.1.24_b20e5fe96237b85dc61747daf6e4f52a: + resolution: {integrity: sha512-m1x3hKO/QCpPPFOvSqpB1QoDxkICn0HQuwrqerrBqS53x3dh1WF0CUfRnYHCekBNKFsVXgdvfJFAoGKXKsEF4A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.1.24 + c8: 7.11.0 + chai: 4.3.4 + jsdom: 19.0.0 + local-pkg: 0.4.1 + tinypool: 0.1.1 + tinyspy: 0.2.8 + vite: 2.7.13 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.1.24_c8@7.11.0+happy-dom@2.27.2: + resolution: {integrity: sha512-m1x3hKO/QCpPPFOvSqpB1QoDxkICn0HQuwrqerrBqS53x3dh1WF0CUfRnYHCekBNKFsVXgdvfJFAoGKXKsEF4A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + c8: 7.11.0 + chai: 4.3.4 + happy-dom: 2.27.2 + local-pkg: 0.4.1 + tinypool: 0.1.1 + tinyspy: 0.2.8 + vite: 2.7.13 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.1.24_c8@7.11.0+jsdom@19.0.0: + resolution: {integrity: sha512-m1x3hKO/QCpPPFOvSqpB1QoDxkICn0HQuwrqerrBqS53x3dh1WF0CUfRnYHCekBNKFsVXgdvfJFAoGKXKsEF4A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + c8: 7.11.0 + chai: 4.3.4 + jsdom: 19.0.0 + local-pkg: 0.4.1 + tinypool: 0.1.1 + tinyspy: 0.2.8 + vite: 2.7.13 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + /vm-browserify/1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true @@ -17636,10 +17747,6 @@ packages: engines: {node: '>=10'} dev: true - /yallist/2.1.2: - resolution: {integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=} - dev: true - /yallist/3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true From 205e9877f37c56345a61770c1ff900814841e9f9 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 20 Jan 2022 16:50:42 -0500 Subject: [PATCH 05/20] chore: share the common deps for global app setup --- packages/ui/client/global-setup.ts | 22 ++++++++++++++++++++++ packages/ui/client/main.ts | 26 +++++++++----------------- packages/ui/cypress/support/index.ts | 10 +--------- packages/ui/cypress/support/mount.ts | 12 ++---------- 4 files changed, 34 insertions(+), 36 deletions(-) create mode 100644 packages/ui/client/global-setup.ts diff --git a/packages/ui/client/global-setup.ts b/packages/ui/client/global-setup.ts new file mode 100644 index 000000000000..109be4befa02 --- /dev/null +++ b/packages/ui/client/global-setup.ts @@ -0,0 +1,22 @@ +import { createRouter as _createRouter, createWebHistory } from 'vue-router' +import routes from 'virtual:generated-pages' +import tooltip from './directives/tooltip' +import 'd3-graph-controller/default.css' +import 'splitpanes/dist/splitpanes.css' +import '@unocss/reset/tailwind.css' +import 'codemirror/lib/codemirror.css' +import 'codemirror-theme-vars/base.css' +import 'tippy.js/dist/tippy.css' +import './styles/main.css' +import 'uno.css' + +export const directives = { + tooltip, +} + +export const createRouter = () => _createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, +}) + +export const plugins = [createRouter] diff --git a/packages/ui/client/main.ts b/packages/ui/client/main.ts index d460f2718efb..667af79307b6 100644 --- a/packages/ui/client/main.ts +++ b/packages/ui/client/main.ts @@ -1,23 +1,15 @@ import { createApp } from 'vue' -import { createRouter, createWebHistory } from 'vue-router' -import routes from 'virtual:generated-pages' -import tooltip from './directives/tooltip' +import { directives, plugins } from './global-setup' import App from './App.vue' -import 'd3-graph-controller/default.css' -import 'splitpanes/dist/splitpanes.css' -import '@unocss/reset/tailwind.css' -import 'codemirror/lib/codemirror.css' -import 'codemirror-theme-vars/base.css' -import 'tippy.js/dist/tippy.css' -import './styles/main.css' -import 'uno.css' - const app = createApp(App) -const router = createRouter({ - history: createWebHistory(import.meta.env.BASE_URL), - routes, + +plugins.forEach((plugin) => { + app.use(plugin) }) -app.use(router) -app.directive('tooltip', tooltip) + +Object.entries(directives).forEach(([name, directive]) => { + app.directive(name, directive) +}) + app.mount('#app') diff --git a/packages/ui/cypress/support/index.ts b/packages/ui/cypress/support/index.ts index 841f2f030141..b7c0bd73efcd 100644 --- a/packages/ui/cypress/support/index.ts +++ b/packages/ui/cypress/support/index.ts @@ -1,13 +1,5 @@ import faker from '@faker-js/faker' -// Needed to process uno styles -import 'uno.css' -import 'd3-graph-controller/default.css' -import 'splitpanes/dist/splitpanes.css' -import '@unocss/reset/tailwind.css' -import 'codemirror/lib/codemirror.css' -import 'codemirror-theme-vars/base.css' -import 'tippy.js/dist/tippy.css' -import '../../client/styles/main.css' +import '../../client/global-setup' import { registerMount } from './mount' diff --git a/packages/ui/cypress/support/mount.ts b/packages/ui/cypress/support/mount.ts index c145ea04e09d..c7ba18462b29 100644 --- a/packages/ui/cypress/support/mount.ts +++ b/packages/ui/cypress/support/mount.ts @@ -1,15 +1,7 @@ import { mount } from '@cypress/vue' import type { Component } from 'vue' -import { createRouter, createWebHistory } from 'vue-router' -import routes from 'virtual:generated-pages' -import tooltip from '../../client/directives/tooltip' +import { directives, plugins } from '../../client/global-setup' -const router = createRouter({ - history: createWebHistory(import.meta.env.BASE_URL), - routes, -}) - -const plugins = [() => router] export const registerMount = () => Cypress.Commands.add( 'mount', // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -18,7 +10,7 @@ export const registerMount = () => Cypress.Commands.add( options.global.stubs = options.global.stubs || {} options.global.stubs.transition = false options.global.plugins = options.global.plugins || [] - options.global.directives = { tooltip } + options.global.directives = directives plugins?.forEach((pluginFn: () => any) => { options?.global?.plugins?.push(pluginFn()) }) From d042221a23ff39ef7091d89759e2616e30f16ebb Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 20 Jan 2022 17:01:24 -0500 Subject: [PATCH 06/20] spacing --- packages/ui/cypress.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/cypress.json b/packages/ui/cypress.json index 0947e2003adf..db3936c9c25b 100644 --- a/packages/ui/cypress.json +++ b/packages/ui/cypress.json @@ -1,7 +1,7 @@ { - "testFiles": "**/*.cy.{js,ts,jsx,tsx}", - "componentFolder": "client", - "supportFile": "cypress/support/index.ts", - "pluginsFile": "cypress/plugins/index.ts", - "fixturesFolder": false - } + "testFiles": "**/*.cy.{js,ts,jsx,tsx}", + "componentFolder": "client", + "supportFile": "cypress/support/index.ts", + "pluginsFile": "cypress/plugins/index.ts", + "fixturesFolder": false +} From 0f0cf9f7624d8d2019dfe344aa794dd4fbea85a7 Mon Sep 17 00:00:00 2001 From: Jess Date: Sat, 22 Jan 2022 18:56:44 -0500 Subject: [PATCH 07/20] Update package.json Co-authored-by: Michel EDIGHOFFER --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4dc751401998..7f718fc9e27e 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "typecheck": "tsc --noEmit", "ui:build": "vite build packages/ui", "ui:dev": "vite packages/ui", - "ui:test": "npm -C packages/ui test:run" + "ui:test": "npm -C packages/ui run test:run" }, "devDependencies": { "@antfu/eslint-config": "^0.16.0", From ea4c8a5ada814044a7fc7d11b19563ffad4fc43d Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Sat, 22 Jan 2022 20:22:55 -0500 Subject: [PATCH 08/20] chore: adding OptimizationPersist + PkgConfig to reduce flake --- packages/ui/package.json | 24 ++++++++++++++++++++++++ packages/ui/vite.config.ts | 6 ++++++ pnpm-lock.yaml | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/packages/ui/package.json b/packages/ui/package.json index bd425b275fd4..7281a3e537d4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -43,10 +43,12 @@ "@vitejs/plugin-vue-jsx": "^1.3.3", "@vitest/ws-client": "workspace:*", "@vueuse/core": "^7.5.3", + "birpc": "^0.1.0", "codemirror": "^5.65.0", "codemirror-theme-vars": "^0.1.1", "cypress": "^9.3.0", "d3-graph-controller": "^2.2.1", + "flatted": "^3.2.4", "floating-vue": "^2.0.0-beta.3", "picocolors": "^1.0.0", "rollup": "^2.64.0", @@ -54,8 +56,30 @@ "unocss": "^0.22.4", "unplugin-auto-import": "^0.5.11", "unplugin-vue-components": "^0.17.13", + "vite-plugin-optimize-persist": "^0.1.2", + "vite-plugin-package-config": "^0.1.1", "vite-plugin-pages": "^0.20.0", "vue": "^3.2.25", "vue-router": "^4.0.12" + }, + "vite": { + "optimizeDeps": { + "include": [ + "@cypress/vue", + "@faker-js/faker", + "@vueuse/core", + "birpc", + "codemirror", + "codemirror/addon/display/placeholder", + "codemirror/mode/javascript/javascript", + "codemirror/mode/jsx/jsx", + "codemirror/mode/xml/xml", + "d3-graph-controller", + "flatted", + "floating-vue", + "splitpanes", + "vue-router" + ] + } } } diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index 8898c41be886..112f25fde225 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -7,6 +7,8 @@ import AutoImport from 'unplugin-auto-import/vite' import Unocss from 'unocss/vite' import Pages from 'vite-plugin-pages' import { presetAttributify, presetIcons, presetUno } from 'unocss' +import OptimizationPersist from 'vite-plugin-optimize-persist' +import PkgConfig from 'vite-plugin-package-config' export const config: UserConfig = { root: __dirname, @@ -52,6 +54,10 @@ export const config: UserConfig = { '@vueuse/core', ], }), + // @ts-ignore + PkgConfig.default(), + // @ts-ignore + OptimizationPersist.default(), ], build: { outDir: './dist/client', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 667a567d006c..473e50f5b389 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -447,10 +447,12 @@ importers: '@vitejs/plugin-vue-jsx': ^1.3.3 '@vitest/ws-client': workspace:* '@vueuse/core': ^7.5.3 + birpc: ^0.1.0 codemirror: ^5.65.0 codemirror-theme-vars: ^0.1.1 cypress: ^9.3.0 d3-graph-controller: ^2.2.1 + flatted: ^3.2.4 floating-vue: ^2.0.0-beta.3 picocolors: ^1.0.0 rollup: ^2.64.0 @@ -459,6 +461,8 @@ importers: unocss: ^0.22.4 unplugin-auto-import: ^0.5.11 unplugin-vue-components: ^0.17.13 + vite-plugin-optimize-persist: ^0.1.2 + vite-plugin-package-config: ^0.1.1 vite-plugin-pages: ^0.20.0 vue: ^3.2.25 vue-router: ^4.0.12 @@ -477,10 +481,12 @@ importers: '@vitejs/plugin-vue-jsx': 1.3.3 '@vitest/ws-client': link:../ws-client '@vueuse/core': 7.5.3_vue@3.2.26 + birpc: 0.1.0 codemirror: 5.65.0 codemirror-theme-vars: 0.1.1 cypress: 9.3.0 d3-graph-controller: 2.2.1 + flatted: 3.2.4 floating-vue: 2.0.0-beta.3_vue@3.2.26 picocolors: 1.0.0 rollup: 2.64.0 @@ -488,6 +494,8 @@ importers: unocss: 0.22.4 unplugin-auto-import: 0.5.11_420fb798aa2a20fbf563b9961b692a6d unplugin-vue-components: 0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba + vite-plugin-optimize-persist: 0.1.2_e332eb06172b7009694b58948ff59ced + vite-plugin-package-config: 0.1.1_vite@2.7.13 vite-plugin-pages: 0.20.0_vite@2.7.13 vue: 3.2.26 vue-router: 4.0.12_vue@3.2.26 @@ -17051,6 +17059,31 @@ packages: vite: 2.7.13 dev: true + /vite-plugin-optimize-persist/0.1.2_e332eb06172b7009694b58948ff59ced: + resolution: {integrity: sha512-H/Ebn2kZO8PvwUF08SsT5K5xMJNCWKoGX71+e9/ER3yNj7GHiFjNQlvGg5ih/zEx09MZ9m7WCxOwmEKbeIVzww==} + peerDependencies: + vite: ^2.0.0 + vite-plugin-package-config: ^0.1.0 + dependencies: + debug: 4.3.3 + fs-extra: 10.0.0 + vite: 2.7.13 + vite-plugin-package-config: 0.1.1_vite@2.7.13 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-package-config/0.1.1_vite@2.7.13: + resolution: {integrity: sha512-w9B3I8ZnqoyhlbzimXjXNk85imrMZgvI9m8f6j3zonK5IVA5KXzpT+PZOHlDz8lqh1vqvoEI1uhy+ZDoLAiA/w==} + peerDependencies: + vite: ^2.0.0 + dependencies: + debug: 4.3.3 + vite: 2.7.13 + transitivePeerDependencies: + - supports-color + dev: true + /vite-plugin-pages/0.20.0_vite@2.7.13: resolution: {integrity: sha512-yM+8ORpssLknR59HL26kz2g7BU79CGkgyw28rLpsbpjX7GgYBDgTHp4llMrpRD8JAeJBndP7CdUmpBM3ReG4Sw==} peerDependencies: From 343ca1ff88a172705e40f78d8fdb5944e68932fd Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Sat, 22 Jan 2022 20:49:37 -0500 Subject: [PATCH 09/20] chore: workaround for unocss hmr --- .gitignore | 3 +++ .../ui/client/components/dashboard/DashboardEntry.cy.tsx | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5951cc9933ad..17bcf572f85a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ dist .idea .DS_Store bench/test/*/*/ +cypress/videos +cypress/downloads +cypress/screenshots diff --git a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx index 7eea2d455985..d961278fd88a 100644 --- a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx +++ b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx @@ -7,11 +7,16 @@ const bodySelector = '[data-testid=body-content]' const headerSelector = '[data-testid=header-content]' const tailSelector = '[data-testid=tail]' +// Used as a workaround until unocss HMR is compatible w Cy. +it('initial', () => { + cy.mount() +}) + describe('DashboardEntry', () => { - it('tail is rendered by default', () => { + it('tail is rendered by default 2', () => { cy.mount() .get(tailSelector) - .should('be.visible') + .should('exist') }) it('tail is not shown when true', () => { From c5317d8f65486dfed901a89ea89b11e81a11d1d4 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Sat, 22 Jan 2022 21:06:48 -0500 Subject: [PATCH 10/20] chore: adding ts-ignore comments --- packages/ui/vite.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index 112f25fde225..9357456a02be 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -54,9 +54,9 @@ export const config: UserConfig = { '@vueuse/core', ], }), - // @ts-ignore + // @ts-ignore Unsure why this is not working -- it's what the documentation says to do PkgConfig.default(), - // @ts-ignore + // @ts-ignore Unsure why this is not working -- it's what the documentation says to do OptimizationPersist.default(), ], build: { From 8fb64c2657412b51ed19b5db79e1f5d639142253 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Sat, 22 Jan 2022 21:07:59 -0500 Subject: [PATCH 11/20] chore: reordering data-testid --- packages/ui/client/components/dashboard/DashboardEntry.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/client/components/dashboard/DashboardEntry.vue b/packages/ui/client/components/dashboard/DashboardEntry.vue index 212630a7a369..144a8b60f950 100644 --- a/packages/ui/client/components/dashboard/DashboardEntry.vue +++ b/packages/ui/client/components/dashboard/DashboardEntry.vue @@ -12,6 +12,6 @@ withDefaults(defineProps<{ tail?: boolean }>(), { tail: false })
-
+
From c16d45740e2689a2a9cd9c6cf27db7b7bb907f42 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Sat, 22 Jan 2022 21:12:14 -0500 Subject: [PATCH 12/20] chore: ts-expect-error --- packages/ui/vite.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index 9357456a02be..a76127613115 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -54,9 +54,9 @@ export const config: UserConfig = { '@vueuse/core', ], }), - // @ts-ignore Unsure why this is not working -- it's what the documentation says to do + // @ts-expect-error Unsure why this is not working -- it's what the documentation says to do PkgConfig.default(), - // @ts-ignore Unsure why this is not working -- it's what the documentation says to do + // @ts-expect-error Unsure why this is not working -- it's what the documentation says to do OptimizationPersist.default(), ], build: { From 09bdb650366900425754b985ab98cbc28bd83d2f Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Mon, 24 Jan 2022 21:26:27 -0500 Subject: [PATCH 13/20] --allow-empty --- packages/ui/client/components/dashboard/DashboardEntry.cy.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx index d961278fd88a..d09f6e5897f6 100644 --- a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx +++ b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx @@ -13,7 +13,7 @@ it('initial', () => { }) describe('DashboardEntry', () => { - it('tail is rendered by default 2', () => { + it('tail is rendered by default', () => { cy.mount() .get(tailSelector) .should('exist') From 8c1269fbd913e29590854abb21e6b9c36b57be58 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Wed, 26 Jan 2022 19:10:37 -0500 Subject: [PATCH 14/20] bug: reproduction of failing vite + cypress setup --- .../ui/client/components/IconButton.cy.tsx | 23 ------- .../dashboard/DashboardEntry.cy.tsx | 63 ++++++++++--------- .../dashboard/TestFilesEntry.cy.tsx | 20 ------ .../components/dashboard/TestsEntry.cy.tsx | 30 --------- .../dashboard/TestsFilesContainer.cy.tsx | 11 ---- .../views/ViewConsoleOutput.spec.tsx | 13 ---- .../client/components/views/ViewEditor.cy.tsx | 21 ------- packages/ui/client/pages/App.cy.tsx | 9 --- packages/ui/cypress/support/index.ts | 8 +-- packages/ui/vite.config.ts | 4 +- 10 files changed, 39 insertions(+), 163 deletions(-) delete mode 100644 packages/ui/client/components/IconButton.cy.tsx delete mode 100644 packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx delete mode 100644 packages/ui/client/components/dashboard/TestsEntry.cy.tsx delete mode 100644 packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx delete mode 100644 packages/ui/client/components/views/ViewConsoleOutput.spec.tsx delete mode 100644 packages/ui/client/components/views/ViewEditor.cy.tsx delete mode 100644 packages/ui/client/pages/App.cy.tsx diff --git a/packages/ui/client/components/IconButton.cy.tsx b/packages/ui/client/components/IconButton.cy.tsx deleted file mode 100644 index 03f539272d70..000000000000 --- a/packages/ui/client/components/IconButton.cy.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import IconButton from './IconButton.vue' - -const title = 'A star' -const icon = 'i-carbon-star-filled' - -describe('IconButton', () => { - it('should render the title', () => { - cy.mount() - .get(`[aria-label="${title}"][role=button]`) - .should('be.visible') - }) - - it('can be overridden with a slot', () => { - cy.mount( - ⭐️ - ) - .get(`.${icon}`) - .should('not.exist') - .get('button') - .contains('⭐️') - .should('be.visible') - }) -}) diff --git a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx index d09f6e5897f6..952723d52ce4 100644 --- a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx +++ b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx @@ -1,35 +1,38 @@ -import faker from '@faker-js/faker' -import DashboardEntry from './DashboardEntry.vue' +// import faker from '@faker-js/faker' +// import DashboardEntry from './DashboardEntry.vue' -const body = () => (
{ faker.lorem.words(2) }
) -const header = () => (
{ faker.hacker.phrase() }
) -const bodySelector = '[data-testid=body-content]' -const headerSelector = '[data-testid=header-content]' -const tailSelector = '[data-testid=tail]' - -// Used as a workaround until unocss HMR is compatible w Cy. -it('initial', () => { - cy.mount() +it('runs', () => { + expect(true).to.be.true; }) +// const body = () => (
{ faker.lorem.words(2) }
) +// const header = () => (
{ faker.hacker.phrase() }
) +// const bodySelector = '[data-testid=body-content]' +// const headerSelector = '[data-testid=header-content]' +// const tailSelector = '[data-testid=tail]' -describe('DashboardEntry', () => { - it('tail is rendered by default', () => { - cy.mount() - .get(tailSelector) - .should('exist') - }) +// // Used as a workaround until unocss HMR is compatible w Cy. +// it('initial', () => { +// cy.mount() +// }) - it('tail is not shown when true', () => { - cy.mount() - .get(tailSelector) - .should('not.exist') - }) +// describe('DashboardEntry', () => { +// it('tail is rendered by default', () => { +// cy.mount() +// .get(tailSelector) +// .should('exist') +// }) - it('renders the body and header slots', () => { - cy.mount() - .get(bodySelector) - .should('be.visible') - .get(headerSelector) - .should('be.visible') - }) -}) +// it('tail is not shown when true', () => { +// cy.mount() +// .get(tailSelector) +// .should('not.exist') +// }) + +// it('renders the body and header slots', () => { +// cy.mount() +// .get(bodySelector) +// .should('be.visible') +// .get(headerSelector) +// .should('be.visible') +// }) +// }) diff --git a/packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx b/packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx deleted file mode 100644 index c9a02fd071ea..000000000000 --- a/packages/ui/client/components/dashboard/TestFilesEntry.cy.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import TestFilesEntry from './TestFilesEntry.vue' - -const entrySelector = '[data-testid=test-files-entry]' -const numFilesSelector = '[data-testid=num-files]' -const timingSelector = '[data-testid=run-time]' - -describe('TestFilesEntry', () => { - it('renders the headers', () => { - cy.mount() - .get(entrySelector) - .should('contain.text', 'Files') - .and('contain.text', 'Time') - - // Empty state - .get(timingSelector) - .should('have.text', '0ms') - .get(numFilesSelector) - .should('have.text', '0') - }) -}) diff --git a/packages/ui/client/components/dashboard/TestsEntry.cy.tsx b/packages/ui/client/components/dashboard/TestsEntry.cy.tsx deleted file mode 100644 index 6bb63b7f82b2..000000000000 --- a/packages/ui/client/components/dashboard/TestsEntry.cy.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import TestsEntry from './TestsEntry.vue' - -const passEntrySelector = '[data-testid=pass-entry]' -const failEntrySelector = '[data-testid=fail-entry]' -const totalEntrySelector = '[data-testid=total-entry]' -const todoEntrySelector = '[data-testid=todo-entry]' -const skippedEntrySelector = '[data-testid=skipped-entry]' - -describe('TestsEntry', () => { - it('renders the headers for pass, fail, and total', () => { - cy.mount() - .get(passEntrySelector) - .should('contain.text', 'Pass') - .and('contain.text', '0') - .get(failEntrySelector) - .and('contain.text', 'Fail') - .and('contain.text', '0') - .get(totalEntrySelector) - .and('contain.text', 'Total') - .and('contain.text', '0') - }) - - it('does not render skipped and todo unless there are tests matched', () => { - cy.mount() - .get(skippedEntrySelector) - .should('not.exist') - .get(todoEntrySelector) - .should('not.exist') - }) -}) diff --git a/packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx b/packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx deleted file mode 100644 index ba0e3822ffb1..000000000000 --- a/packages/ui/client/components/dashboard/TestsFilesContainer.cy.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import TestsFilesContainer from './TestsFilesContainer.vue' - -const entrySelector = '[data-testid=test-files-entry]' - -describe('TestsFilesContainer', () => { - it('renders the TestEntry', () => { - cy.mount() - .get(entrySelector) - .should('be.visible') - }) -}) diff --git a/packages/ui/client/components/views/ViewConsoleOutput.spec.tsx b/packages/ui/client/components/views/ViewConsoleOutput.spec.tsx deleted file mode 100644 index 3624e62b723d..000000000000 --- a/packages/ui/client/components/views/ViewConsoleOutput.spec.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import ViewConsoleOutput from './ViewConsoleOutput.vue' - -const entrySelector = '[data-testid=logs]' - -describe('ViewConsoleOutput', () => { - it('renders', () => { - cy.mount() - .get(entrySelector) - // TODO: stub the websocket connection - // so that we can add logs and other data - .should('not.exist') - }) -}) diff --git a/packages/ui/client/components/views/ViewEditor.cy.tsx b/packages/ui/client/components/views/ViewEditor.cy.tsx deleted file mode 100644 index ddb625928ebe..000000000000 --- a/packages/ui/client/components/views/ViewEditor.cy.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import faker from '@faker-js/faker' -import ViewEditor from './ViewEditor.vue' - -const viewEditorSelector = '[data-testid=code-mirror]' - -// TODO: stub out the rpc call in order to fully test this component -describe('ViewEditor', () => { - it('renders codemirror with line numbers', () => { - const file = { - filepath: faker.system.filePath(), - collectDuration: faker.time.recent(), - tasks: [], - } - cy.mount() - .get(viewEditorSelector) - .type(`// ${faker.git.commitSha()}{enter}`, { delay: 0 }) - .get(viewEditorSelector) - .should('contain.text', '1') - .and('contain.text', '2') - }) -}) diff --git a/packages/ui/client/pages/App.cy.tsx b/packages/ui/client/pages/App.cy.tsx deleted file mode 100644 index ea25dd78f431..000000000000 --- a/packages/ui/client/pages/App.cy.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import App from './index.vue' - -// When mocking WebSockets, we'll want to follow the guide here -// https://glebbahmutov.com/blog/test-socketio-chat-using-cypress/#use-socketio-from-cypress -describe('App', () => { - it('should render', () => { - cy.mount() - }) -}) diff --git a/packages/ui/cypress/support/index.ts b/packages/ui/cypress/support/index.ts index b7c0bd73efcd..0e25f5176268 100644 --- a/packages/ui/cypress/support/index.ts +++ b/packages/ui/cypress/support/index.ts @@ -1,10 +1,10 @@ -import faker from '@faker-js/faker' +// import faker from '@faker-js/faker' import '../../client/global-setup' import { registerMount } from './mount' -before(() => { - faker.seed(0) -}) +// before(() => { +// faker.seed(0) +// }) registerMount() diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index a76127613115..e2852756b6b3 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -55,9 +55,9 @@ export const config: UserConfig = { ], }), // @ts-expect-error Unsure why this is not working -- it's what the documentation says to do - PkgConfig.default(), + // PkgConfig.default(), // @ts-expect-error Unsure why this is not working -- it's what the documentation says to do - OptimizationPersist.default(), + // OptimizationPersist.default(), ], build: { outDir: './dist/client', From bc8514f17f97febb802f4947170560964e9f198b Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 17 Mar 2022 02:49:43 -0400 Subject: [PATCH 15/20] chore: adding Vite 2.9.0-beta.3 to cold-start stability issues for UI component tests --- package.json | 2 +- packages/ui/vite.config.ts | 4 +- pnpm-lock.yaml | 923 +++++++++++++++++++++++++++++++------ 3 files changed, 779 insertions(+), 150 deletions(-) diff --git a/package.json b/package.json index 7f718fc9e27e..dcc6eff579eb 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "rollup-plugin-esbuild": "^4.8.2", "rollup-plugin-license": "^2.6.1", "typescript": "^4.5.4", - "vite": "^2.7.13", + "vite": "2.9.0-beta.3", "vitepress": "^0.21.6", "vitest": "workspace:*", "vue": "^3.2.25" diff --git a/packages/ui/vite.config.ts b/packages/ui/vite.config.ts index e2852756b6b3..a76127613115 100644 --- a/packages/ui/vite.config.ts +++ b/packages/ui/vite.config.ts @@ -55,9 +55,9 @@ export const config: UserConfig = { ], }), // @ts-expect-error Unsure why this is not working -- it's what the documentation says to do - // PkgConfig.default(), + PkgConfig.default(), // @ts-expect-error Unsure why this is not working -- it's what the documentation says to do - // OptimizationPersist.default(), + OptimizationPersist.default(), ], build: { outDir: './dist/client', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 473e50f5b389..d47b4d72827a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,7 +29,7 @@ importers: rollup-plugin-esbuild: ^4.8.2 rollup-plugin-license: ^2.6.1 typescript: ^4.5.4 - vite: ^2.7.13 + vite: 2.9.0-beta.3 vitepress: ^0.21.6 vitest: workspace:* vue: ^3.2.25 @@ -59,7 +59,7 @@ importers: rollup-plugin-esbuild: 4.8.2_esbuild@0.13.15+rollup@2.64.0 rollup-plugin-license: 2.6.1_rollup@2.64.0 typescript: 4.5.4 - vite: 2.7.13 + vite: 2.9.0-beta.3 vitepress: 0.21.6 vitest: link:packages/vitest vue: 3.2.26 @@ -80,9 +80,9 @@ importers: devDependencies: '@iconify-json/carbon': 1.0.14 '@unocss/reset': 0.22.4 - '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue': 2.0.1_vite@2.9.0-beta.3+vue@3.2.26 unocss: 0.22.4 - unplugin-vue-components: 0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba + unplugin-vue-components: 0.17.13_dbf9aa64b4b40c62aed53ec3f23e23f7 vitepress: 0.21.6 examples/basic: @@ -91,9 +91,9 @@ importers: vite: latest vitest: latest devDependencies: - '@vitest/ui': link:../../packages/ui - vite: 2.7.13 - vitest: link:../../packages/vitest + '@vitest/ui': 0.7.0 + vite: 2.8.6 + vitest: 0.7.0_@vitest+ui@0.7.0+c8@7.11.0 examples/lit: specifiers: @@ -105,10 +105,10 @@ importers: dependencies: lit: 2.1.1 devDependencies: - '@vitest/ui': link:../../packages/ui - happy-dom: 2.28.0 - vite: 2.7.13 - vitest: link:../../packages/vitest + '@vitest/ui': 0.7.0 + happy-dom: 2.49.0 + vite: 2.8.6 + vitest: 0.7.0_ade40f3b5d56ba266e920981620ace78 examples/mocks: specifiers: @@ -123,9 +123,9 @@ importers: axios: 0.25.0 tinyspy: 0.2.8 devDependencies: - '@vitest/ui': link:../../packages/ui - vite: 2.7.13 - vitest: link:../../packages/vitest + '@vitest/ui': 0.7.0 + vite: 2.8.6 + vitest: 0.7.0_@vitest+ui@0.7.0+c8@7.11.0 examples/puppeteer: specifiers: @@ -134,10 +134,10 @@ importers: vite: latest vitest: latest devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 puppeteer: 13.0.0 - vite: 2.7.13 - vitest: link:../../packages/vitest + vite: 2.8.6 + vitest: 0.7.0_@vitest+ui@0.7.0+c8@7.11.0 examples/react: specifiers: @@ -156,11 +156,11 @@ importers: '@types/react': 17.0.38 '@types/react-test-renderer': 17.0.1 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 happy-dom: 2.27.2 jsdom: 19.0.0 react-test-renderer: 17.0.2_react@17.0.2 - vitest: link:../../packages/vitest + vitest: 0.7.0_1e66918cbf66fd00be2e69108cd60a00 examples/react-enzyme: specifiers: @@ -181,11 +181,11 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 enzyme: 3.11.0 enzyme-adapter-react-16: 1.15.6_fae758709a8810ba97b4c03852dde4d0 - vite: 2.7.13 - vitest: link:../../packages/vitest + vite: 2.8.6 + vitest: 0.7.0_@vitest+ui@0.7.0+c8@7.11.0 examples/react-mui: specifiers: @@ -211,7 +211,7 @@ importers: dependencies: '@emotion/react': 11.7.1_react@17.0.2 '@emotion/styled': 11.6.0_79c1490562c3c65ef55eb132a37e39b4 - '@mui/lab': 5.0.0-alpha.65_a972faa7626ac7c3e5604c6f037ed921 + '@mui/lab': 5.0.0-alpha.73_a972faa7626ac7c3e5604c6f037ed921 '@mui/material': 5.3.0_c84e354a724f4213aa6539fdea9d08aa history: 5.2.0 notistack: 2.0.3_14774c92b113a8e5ca091ba9293b0c1b @@ -224,11 +224,11 @@ importers: '@testing-library/jest-dom': 5.16.1 '@testing-library/react': 12.1.2_react-dom@17.0.2+react@17.0.2 '@testing-library/user-event': 13.5.0 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 date-fns: 2.28.0 jsdom: 19.0.0 - vite: 2.7.13 - vitest: link:../../packages/vitest + vite: 2.8.6 + vitest: 0.7.0_efa29fb81c2b3f66e25d9bb42566060c examples/react-storybook-testing: specifiers: @@ -275,15 +275,15 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 babel-loader: 8.2.3_@babel+core@7.16.7 jsdom: 19.0.0 msw: 0.36.5 msw-storybook-addon: 1.6.0_0d0889b94ade397d91737adfcd83ca29 - storybook-builder-vite: 0.1.13_a5ce969bcf8d8747b3a0d666bc290993 + storybook-builder-vite: 0.1.13_3bc90c858d65790b329a232215878bb1 typescript: 4.5.4 - vite: 2.7.13 - vitest: link:../../packages/vitest + vite: 2.8.6 + vitest: 0.7.0_efa29fb81c2b3f66e25d9bb42566060c examples/react-testing-lib: specifiers: @@ -311,10 +311,10 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 jsdom: 19.0.0 - vite: 2.7.13 - vitest: link:../../packages/vitest + vite: 2.8.6 + vitest: 0.7.0_efa29fb81c2b3f66e25d9bb42566060c examples/react-testing-lib-msw: specifiers: @@ -342,12 +342,12 @@ importers: '@types/react': 17.0.38 '@types/react-dom': 17.0.11 '@vitejs/plugin-react': 1.1.4 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 cross-fetch: 3.1.4 jsdom: 19.0.0 msw: 0.36.5 - vite: 2.7.13 - vitest: link:../../packages/vitest + vite: 2.8.6 + vitest: 0.7.0_efa29fb81c2b3f66e25d9bb42566060c examples/ruby: specifiers: @@ -358,11 +358,11 @@ importers: vitest: latest vue: ^3.2.26 devDependencies: - '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue': 2.0.1_vite@2.9.0-beta.3+vue@3.2.26 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 jsdom: 19.0.0 - vite-plugin-ruby: 3.0.8_vite@2.7.13 - vitest: link:../../packages/vitest + vite-plugin-ruby: 3.0.8_vite@2.9.0-beta.3 + vitest: 0.7.0_c8@7.11.0+jsdom@19.0.0 vue: 3.2.26 examples/svelte: @@ -374,12 +374,12 @@ importers: svelte: ^3.46.2 vitest: latest devDependencies: - '@sveltejs/vite-plugin-svelte': 1.0.0-next.34_svelte@3.46.2+vite@2.7.13 + '@sveltejs/vite-plugin-svelte': 1.0.0-next.34_svelte@3.46.2+vite@2.9.0-beta.3 '@testing-library/svelte': 3.0.3_svelte@3.46.2 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.7.0 jsdom: 19.0.0 svelte: 3.46.2 - vitest: link:../../packages/vitest + vitest: 0.7.0_efa29fb81c2b3f66e25d9bb42566060c examples/vitesse: specifiers: @@ -393,12 +393,12 @@ importers: dependencies: vue: 3.2.26 devDependencies: - '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue': 2.0.1_vite@2.9.0-beta.3+vue@3.2.26 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 - happy-dom: 2.28.0 - unplugin-auto-import: 0.5.11_0300e2fc4592cc668512bad114c07138 - unplugin-vue-components: 0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba - vitest: link:../../packages/vitest + happy-dom: 2.49.0 + unplugin-auto-import: 0.5.11_738b314ffda06fe24ae851999b0b5fc1 + unplugin-vue-components: 0.17.13_dbf9aa64b4b40c62aed53ec3f23e23f7 + vitest: 0.7.0_c8@7.11.0+happy-dom@2.49.0 examples/vue: specifiers: @@ -410,10 +410,10 @@ importers: dependencies: vue: 3.2.26 devDependencies: - '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue': 2.0.1_vite@2.9.0-beta.3+vue@3.2.26 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 - happy-dom: 2.28.0 - vitest: link:../../packages/vitest + happy-dom: 2.49.0 + vitest: 0.7.0_c8@7.11.0+happy-dom@2.49.0 examples/vue-jsx: specifiers: @@ -425,12 +425,12 @@ importers: vitest: latest vue: ^3.2.26 devDependencies: - '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue': 2.0.1_vite@2.8.6+vue@3.2.26 '@vitejs/plugin-vue-jsx': 1.3.3 '@vue/test-utils': 2.0.0-rc.18_vue@3.2.26 - happy-dom: 2.28.0 - vite: 2.7.13 - vitest: link:../../packages/vitest + happy-dom: 2.49.0 + vite: 2.8.6 + vitest: 0.7.0_c8@7.11.0+happy-dom@2.49.0 vue: 3.2.26 packages/ui: @@ -469,7 +469,7 @@ importers: dependencies: sirv: 2.0.2 devDependencies: - '@cypress/vite-dev-server': 2.2.2_vite@2.7.13 + '@cypress/vite-dev-server': 2.2.2_vite@2.9.0-beta.3 '@cypress/vue': 3.1.0_cypress@9.3.0+vue@3.2.26 '@faker-js/faker': 6.0.0-alpha.3 '@types/codemirror': 5.60.5 @@ -477,7 +477,7 @@ importers: '@types/d3-selection': 3.0.2 '@types/ws': 8.2.2 '@unocss/reset': 0.22.4 - '@vitejs/plugin-vue': 2.0.1_vite@2.7.13+vue@3.2.26 + '@vitejs/plugin-vue': 2.0.1_vite@2.9.0-beta.3+vue@3.2.26 '@vitejs/plugin-vue-jsx': 1.3.3 '@vitest/ws-client': link:../ws-client '@vueuse/core': 7.5.3_vue@3.2.26 @@ -492,11 +492,11 @@ importers: rollup: 2.64.0 splitpanes: 3.0.6 unocss: 0.22.4 - unplugin-auto-import: 0.5.11_420fb798aa2a20fbf563b9961b692a6d - unplugin-vue-components: 0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba - vite-plugin-optimize-persist: 0.1.2_e332eb06172b7009694b58948ff59ced - vite-plugin-package-config: 0.1.1_vite@2.7.13 - vite-plugin-pages: 0.20.0_vite@2.7.13 + unplugin-auto-import: 0.5.11_f1127c941ea10839e53ee0e2d3316279 + unplugin-vue-components: 0.17.13_dbf9aa64b4b40c62aed53ec3f23e23f7 + vite-plugin-optimize-persist: 0.1.2_6508d1d3df65e084d1ddebec9a189424 + vite-plugin-package-config: 0.1.1_vite@2.9.0-beta.3 + vite-plugin-pages: 0.20.0_vite@2.9.0-beta.3 vue: 3.2.26 vue-router: 4.0.12_vue@3.2.26 @@ -2427,6 +2427,12 @@ packages: dependencies: regenerator-runtime: 0.13.9 + /@babel/runtime/7.17.7: + resolution: {integrity: sha512-L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.9 + /@babel/template/7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} @@ -2541,14 +2547,14 @@ packages: uuid: 8.3.2 dev: true - /@cypress/vite-dev-server/2.2.2_vite@2.7.13: + /@cypress/vite-dev-server/2.2.2_vite@2.9.0-beta.3: resolution: {integrity: sha512-02y/Fm0N+CQjKbSjjRtktPgPbp91kOvtc8+WW2l2odIYQkKlG6IOCpmgc898muW0lBAcCszdEIHR/ItdZDiYPw==} peerDependencies: vite: '>= 2.1.3' dependencies: debug: 4.3.3 get-port: 5.1.1 - vite: 2.7.13 + vite: 2.9.0-beta.3 transitivePeerDependencies: - supports-color dev: true @@ -2580,53 +2586,53 @@ packages: lodash.once: 4.1.1 dev: true - /@date-io/core/2.11.0: - resolution: {integrity: sha512-DvPBnNoeuLaoSJZaxgpu54qzRhRKjSYVyQjhznTFrllKuDpm0sDFjHo6lvNLCM/cfMx2gb2PM2zY2kc9C8nmuw==} + /@date-io/core/2.13.1: + resolution: {integrity: sha512-pVI9nfkf2qClb2Cxdq0Q4zJhdawMG4ybWZUVGifT78FDwzRMX2SwXBb55s5NRJk0HcIicDuxktmCtemZqMH1Zg==} dev: false - /@date-io/date-fns/2.11.0_date-fns@2.28.0: - resolution: {integrity: sha512-mPQ71plBeFrArvBSHtjWMHXA89IUbZ6kuo2dsjlRC/1uNOybo91spIb+wTu03NxKTl8ut07s0jJ9svF71afpRg==} + /@date-io/date-fns/2.13.1_date-fns@2.28.0: + resolution: {integrity: sha512-8fmfwjiLMpFLD+t4NBwDx0eblWnNcgt4NgfT/uiiQTGI81fnPu9tpBMYdAcuWxaV7LLpXgzLBx1SYWAMDVUDQQ==} peerDependencies: date-fns: ^2.0.0 peerDependenciesMeta: date-fns: optional: true dependencies: - '@date-io/core': 2.11.0 + '@date-io/core': 2.13.1 date-fns: 2.28.0 dev: false - /@date-io/dayjs/2.11.0: - resolution: {integrity: sha512-w67vRK56NZJIKhJM/CrNbfnIcuMvR3ApfxzNZiCZ5w29sxgBDeKuX4M+P7A9r5HXOMGcsOcpgaoTDINNGkdpGQ==} + /@date-io/dayjs/2.13.1: + resolution: {integrity: sha512-5bL4WWWmlI4uGZVScANhHJV7Mjp93ec2gNeUHDqqLaMZhp51S0NgD25oqj/k0LqBn1cdU2MvzNpk/ObMmVv5cQ==} peerDependencies: dayjs: ^1.8.17 peerDependenciesMeta: dayjs: optional: true dependencies: - '@date-io/core': 2.11.0 + '@date-io/core': 2.13.1 dev: false - /@date-io/luxon/2.11.1: - resolution: {integrity: sha512-JUXo01kdPQxLORxqdENrgdUhooKgDUggsNRSdi2BcUhASIY2KGwwWXu8ikVHHGkw+DUF4FOEKGfkQd0RHSvX6g==} + /@date-io/luxon/2.13.1: + resolution: {integrity: sha512-yG+uM7lXfwLyKKEwjvP8oZ7qblpmfl9gxQYae55ifbwiTs0CoCTkYkxEaQHGkYtTqGTzLqcb0O9Pzx6vgWg+yg==} peerDependencies: luxon: ^1.21.3 || ^2.x peerDependenciesMeta: luxon: optional: true dependencies: - '@date-io/core': 2.11.0 + '@date-io/core': 2.13.1 dev: false - /@date-io/moment/2.11.0: - resolution: {integrity: sha512-QSL+83qezQ9Ty0dtFgAkk6eC0GMl/lgYfDajeVUDB3zVA2A038hzczRLBg29ifnBGhQMPABxuOafgWwhDjlarg==} + /@date-io/moment/2.13.1: + resolution: {integrity: sha512-XX1X/Tlvl3TdqQy2j0ZUtEJV6Rl8tOyc5WOS3ki52He28Uzme4Ro/JuPWTMBDH63weSWIZDlbR7zBgp3ZA2y1A==} peerDependencies: moment: ^2.24.0 peerDependenciesMeta: moment: optional: true dependencies: - '@date-io/core': 2.11.0 + '@date-io/core': 2.13.1 dev: false /@discoveryjs/json-ext/0.5.6: @@ -2679,7 +2685,7 @@ packages: dependencies: '@babel/helper-module-imports': 7.16.0 '@babel/plugin-syntax-jsx': 7.16.0 - '@babel/runtime': 7.16.7 + '@babel/runtime': 7.17.7 '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.5 '@emotion/serialize': 1.0.2 @@ -2747,6 +2753,12 @@ packages: '@emotion/memoize': 0.7.5 dev: false + /@emotion/is-prop-valid/1.1.2: + resolution: {integrity: sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==} + dependencies: + '@emotion/memoize': 0.7.5 + dev: false + /@emotion/memoize/0.7.4: resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} dev: true @@ -3113,10 +3125,32 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.16.7 - '@emotion/is-prop-valid': 1.1.1 - '@mui/utils': 5.3.0_react@17.0.2 - '@popperjs/core': 2.11.0 + '@babel/runtime': 7.17.7 + '@emotion/is-prop-valid': 1.1.2 + '@mui/utils': 5.4.4_react@17.0.2 + '@popperjs/core': 2.11.4 + clsx: 1.1.1 + prop-types: 15.7.2 + react: 17.0.2 + react-dom: 17.0.2_react@17.0.2 + react-is: 17.0.2 + dev: false + + /@mui/base/5.0.0-alpha.72_react-dom@17.0.2+react@17.0.2: + resolution: {integrity: sha512-WCAooa9eqbsC68LhyKtDBRumH4hV1eRZ0A3SDKFHSwYG9fCOdsFv/H1dIYRJM0rwD45bMnuDiG3Qmx7YsTiptw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^16.8.6 || ^17.0.0 + react: ^17.0.0 + react-dom: ^17.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.17.7 + '@emotion/is-prop-valid': 1.1.2 + '@mui/utils': 5.4.4_react@17.0.2 + '@popperjs/core': 2.11.4 clsx: 1.1.1 prop-types: 15.7.2 react: 17.0.2 @@ -3124,8 +3158,8 @@ packages: react-is: 17.0.2 dev: false - /@mui/lab/5.0.0-alpha.65_a972faa7626ac7c3e5604c6f037ed921: - resolution: {integrity: sha512-YiZvUGK/GbwgR4WU/JgdYrjF9AC9C4qn+mM3ShGsX0xPzTkwFG28uyKoNy2PN+/r10aQxdkkUsVQk3BCLC8/Sg==} + /@mui/lab/5.0.0-alpha.73_a972faa7626ac7c3e5604c6f037ed921: + resolution: {integrity: sha512-10Uj0Atc7gBTXKX4VV38P6RdqTQrJZxcl3HeEcytIO1S3NAGfc7gZ3Hdpnhtj5U8kcRJZZPH9LtrBbMZzxU/1A==} engines: {node: '>=12.0.0'} peerDependencies: '@mui/material': ^5.0.0 @@ -3148,15 +3182,15 @@ packages: moment: optional: true dependencies: - '@babel/runtime': 7.16.7 - '@date-io/date-fns': 2.11.0_date-fns@2.28.0 - '@date-io/dayjs': 2.11.0 - '@date-io/luxon': 2.11.1 - '@date-io/moment': 2.11.0 - '@mui/base': 5.0.0-alpha.65_react-dom@17.0.2+react@17.0.2 + '@babel/runtime': 7.17.7 + '@date-io/date-fns': 2.13.1_date-fns@2.28.0 + '@date-io/dayjs': 2.13.1 + '@date-io/luxon': 2.13.1 + '@date-io/moment': 2.13.1 + '@mui/base': 5.0.0-alpha.72_react-dom@17.0.2+react@17.0.2 '@mui/material': 5.3.0_c84e354a724f4213aa6539fdea9d08aa - '@mui/system': 5.3.0_922a85da57e3646a57465b7970b0de85 - '@mui/utils': 5.3.0_react@17.0.2 + '@mui/system': 5.5.1_922a85da57e3646a57465b7970b0de85 + '@mui/utils': 5.4.4_react@17.0.2 clsx: 1.1.1 date-fns: 2.28.0 prop-types: 15.7.2 @@ -3205,8 +3239,8 @@ packages: react-transition-group: 4.4.2_react-dom@17.0.2+react@17.0.2 dev: false - /@mui/private-theming/5.3.0_react@17.0.2: - resolution: {integrity: sha512-EBobUEyM9fMnteKrVPp8pTMUh81xXakyfdpkoh7Y19q9JpD2eh7QGAQVJVj0JBFlcUJD60NIE4K8rdokrRmLwg==} + /@mui/private-theming/5.4.4_react@17.0.2: + resolution: {integrity: sha512-V/gxttr6736yJoU9q+4xxXsa0K/w9Hn9pg99zsOHt7i/O904w2CX5NHh5WqDXtoUzVcayLF0RB17yr6l79CE+A==} engines: {node: '>=12.0.0'} peerDependencies: '@types/react': ^16.8.6 || ^17.0.0 @@ -3215,14 +3249,14 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.16.7 - '@mui/utils': 5.3.0_react@17.0.2 + '@babel/runtime': 7.17.7 + '@mui/utils': 5.4.4_react@17.0.2 prop-types: 15.7.2 react: 17.0.2 dev: false - /@mui/styled-engine/5.3.0_922a85da57e3646a57465b7970b0de85: - resolution: {integrity: sha512-I4YemFy9WnCLUdZ5T+6egpzc8e7Jq/uh9AJ3QInZHbyNu/9I2SWvNn7vHjWOT/D8Y8LMzIOhu5WwZbzjez7YRw==} + /@mui/styled-engine/5.4.4_922a85da57e3646a57465b7970b0de85: + resolution: {integrity: sha512-AKx3rSgB6dmt5f7iP4K18mLFlE5/9EfJe/5EH9Pyqez8J/CPkTgYhJ/Va6qtlrcunzpui+uG/vfuf04yAZekSg==} engines: {node: '>=12.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -3234,7 +3268,7 @@ packages: '@emotion/styled': optional: true dependencies: - '@babel/runtime': 7.16.7 + '@babel/runtime': 7.17.7 '@emotion/cache': 11.7.1 '@emotion/react': 11.7.1_react@17.0.2 '@emotion/styled': 11.6.0_79c1490562c3c65ef55eb132a37e39b4 @@ -3258,15 +3292,44 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.16.7 + '@babel/runtime': 7.17.7 '@emotion/react': 11.7.1_react@17.0.2 '@emotion/styled': 11.6.0_79c1490562c3c65ef55eb132a37e39b4 - '@mui/private-theming': 5.3.0_react@17.0.2 - '@mui/styled-engine': 5.3.0_922a85da57e3646a57465b7970b0de85 - '@mui/types': 7.1.0 - '@mui/utils': 5.3.0_react@17.0.2 + '@mui/private-theming': 5.4.4_react@17.0.2 + '@mui/styled-engine': 5.4.4_922a85da57e3646a57465b7970b0de85 + '@mui/types': 7.1.3 + '@mui/utils': 5.4.4_react@17.0.2 clsx: 1.1.1 - csstype: 3.0.10 + csstype: 3.0.11 + prop-types: 15.7.2 + react: 17.0.2 + dev: false + + /@mui/system/5.5.1_922a85da57e3646a57465b7970b0de85: + resolution: {integrity: sha512-2hynI4hN8304hOCT8sc4knJviwUUYJ7XK3mXwQ0nagVGOPnWSOad/nYADm7K0vdlCeUXLIbDbe7oNN3Kaiu2kA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^16.8.6 || ^17.0.0 + react: ^17.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.17.7 + '@emotion/react': 11.7.1_react@17.0.2 + '@emotion/styled': 11.6.0_79c1490562c3c65ef55eb132a37e39b4 + '@mui/private-theming': 5.4.4_react@17.0.2 + '@mui/styled-engine': 5.4.4_922a85da57e3646a57465b7970b0de85 + '@mui/types': 7.1.3 + '@mui/utils': 5.4.4_react@17.0.2 + clsx: 1.1.1 + csstype: 3.0.11 prop-types: 15.7.2 react: 17.0.2 dev: false @@ -3280,13 +3343,36 @@ packages: optional: true dev: false + /@mui/types/7.1.3: + resolution: {integrity: sha512-DDF0UhMBo4Uezlk+6QxrlDbchF79XG6Zs0zIewlR4c0Dt6GKVFfUtzPtHCH1tTbcSlq/L2bGEdiaoHBJ9Y1gSA==} + peerDependencies: + '@types/react': '*' + peerDependenciesMeta: + '@types/react': + optional: true + dev: false + /@mui/utils/5.3.0_react@17.0.2: resolution: {integrity: sha512-O/E9IQKPMg0OrN7+gkn7Ga5o5WA2iXQGdyqNBFPNrYzxOvwzsEtM5K7MtTCGGYKFe8mhTRM0ZOjh5OM0dglw+Q==} engines: {node: '>=12.0.0'} peerDependencies: react: ^17.0.0 dependencies: - '@babel/runtime': 7.16.7 + '@babel/runtime': 7.17.7 + '@types/prop-types': 15.7.4 + '@types/react-is': 17.0.3 + prop-types: 15.7.2 + react: 17.0.2 + react-is: 17.0.2 + dev: false + + /@mui/utils/5.4.4_react@17.0.2: + resolution: {integrity: sha512-hfYIXEuhc2mXMGN5nUPis8beH6uE/zl3uMWJcyHX0/LN/+QxO9zhYuV6l8AsAaphHFyS/fBv0SW3Nid7jw5hKQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + react: ^17.0.0 + dependencies: + '@babel/runtime': 7.17.7 '@types/prop-types': 15.7.4 '@types/react-is': 17.0.3 prop-types: 15.7.2 @@ -3383,6 +3469,11 @@ packages: /@popperjs/core/2.11.0: resolution: {integrity: sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==} + dev: true + + /@popperjs/core/2.11.4: + resolution: {integrity: sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==} + dev: false /@rollup/plugin-alias/3.1.9_rollup@2.64.0: resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} @@ -5164,7 +5255,7 @@ packages: - '@types/react' dev: true - /@sveltejs/vite-plugin-svelte/1.0.0-next.34_svelte@3.46.2+vite@2.7.13: + /@sveltejs/vite-plugin-svelte/1.0.0-next.34_svelte@3.46.2+vite@2.9.0-beta.3: resolution: {integrity: sha512-qZH2jndijrdkvevgbO7OH3iQsviM5Kz7h5APiNP4yEMZTrwq9bifzYvco6BprwtPvLb5wYlRVFZUOdusY6AovQ==} engines: {node: ^14.13.1 || >= 16} peerDependencies: @@ -5182,7 +5273,7 @@ packages: require-relative: 0.8.7 svelte: 3.46.2 svelte-hmr: 0.14.9_svelte@3.46.2 - vite: 2.7.13 + vite: 2.9.0-beta.3 transitivePeerDependencies: - supports-color dev: true @@ -5311,11 +5402,9 @@ packages: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: '@types/chai': 4.3.0 - dev: false /@types/chai/4.3.0: resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==} - dev: false /@types/codemirror/5.60.5: resolution: {integrity: sha512-TiECZmm8St5YxjFUp64LK0c8WU5bxMDt9YaAek1UqUb9swrSCoJhh92fWu1p3mTEqlHjhB5sY7OFBhWroJXZVg==} @@ -6004,7 +6093,7 @@ packages: - supports-color dev: true - /@vitejs/plugin-vue/2.0.1_vite@2.7.13+vue@3.2.26: + /@vitejs/plugin-vue/2.0.1_vite@2.7.13+vue@3.2.27: resolution: {integrity: sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -6012,18 +6101,35 @@ packages: vue: ^3.2.25 dependencies: vite: 2.7.13 + vue: 3.2.27 + dev: true + + /@vitejs/plugin-vue/2.0.1_vite@2.8.6+vue@3.2.26: + resolution: {integrity: sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==} + engines: {node: '>=12.0.0'} + peerDependencies: + vite: ^2.5.10 + vue: ^3.2.25 + dependencies: + vite: 2.8.6 vue: 3.2.26 dev: true - /@vitejs/plugin-vue/2.0.1_vite@2.7.13+vue@3.2.27: + /@vitejs/plugin-vue/2.0.1_vite@2.9.0-beta.3+vue@3.2.26: resolution: {integrity: sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==} engines: {node: '>=12.0.0'} peerDependencies: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: 2.7.13 - vue: 3.2.27 + vite: 2.9.0-beta.3 + vue: 3.2.26 + dev: true + + /@vitest/ui/0.7.0: + resolution: {integrity: sha512-qs1Zn3NGlhKtqJmaRZGwIavpdW4in1Ysy9+pqxMFrcqkoko0Eyn/XRxQHfm1RNiDlqbGGeQhJJaphonWwFZYNA==} + dependencies: + sirv: 2.0.2 dev: true /@vue/babel-helper-vue-transform-on/1.0.2: @@ -6879,7 +6985,6 @@ packages: /assertion-error/1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: false /assign-symbols/1.0.0: resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} @@ -7049,7 +7154,7 @@ packages: /babel-plugin-macros/2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} dependencies: - '@babel/runtime': 7.16.7 + '@babel/runtime': 7.17.7 cosmiconfig: 6.0.0 resolve: 1.21.0 @@ -7627,6 +7732,19 @@ packages: type-detect: 4.0.8 dev: false + /chai/4.3.6: + resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 3.0.1 + get-func-name: 2.0.0 + loupe: 2.3.4 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -7677,7 +7795,6 @@ packages: /check-error/1.0.2: resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} - dev: false /check-more-types/2.24.0: resolution: {integrity: sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=} @@ -8335,6 +8452,10 @@ packages: /csstype/3.0.10: resolution: {integrity: sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==} + /csstype/3.0.11: + resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} + dev: false + /cyclist/1.0.1: resolution: {integrity: sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=} dev: true @@ -8624,7 +8745,6 @@ packages: engines: {node: '>=0.12'} dependencies: type-detect: 4.0.8 - dev: false /deep-equal/2.0.5: resolution: {integrity: sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==} @@ -8820,8 +8940,8 @@ packages: /dom-helpers/5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} dependencies: - '@babel/runtime': 7.16.7 - csstype: 3.0.10 + '@babel/runtime': 7.17.7 + csstype: 3.0.11 dev: false /dom-serializer/1.3.2: @@ -9181,6 +9301,15 @@ packages: resolution: {integrity: sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==} dev: true + /esbuild-android-64/0.14.27: + resolution: {integrity: sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /esbuild-android-arm64/0.13.15: resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==} cpu: [arm64] @@ -9196,6 +9325,15 @@ packages: dev: true optional: true + /esbuild-android-arm64/0.14.27: + resolution: {integrity: sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /esbuild-android-arm64/0.14.5: resolution: {integrity: sha512-Sl6ysm7OAZZz+X3Mv3tOPhjMuSxNmztgoXH4ZZ3Yhbje5emEY6qiTnv3vBSljDlUl/yGaIjqC44qlj8s8G71xA==} cpu: [arm64] @@ -9219,6 +9357,15 @@ packages: dev: true optional: true + /esbuild-darwin-64/0.14.27: + resolution: {integrity: sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /esbuild-darwin-64/0.14.5: resolution: {integrity: sha512-VHZl23sM9BOZXcLxk1vTYls8TCAY+/3llw9vHKIWAHDHzBBOlVv26ORK8gnStNMqTjCSGSMoq4T5jOZf2WrJPQ==} cpu: [x64] @@ -9242,6 +9389,15 @@ packages: dev: true optional: true + /esbuild-darwin-arm64/0.14.27: + resolution: {integrity: sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /esbuild-darwin-arm64/0.14.5: resolution: {integrity: sha512-ugPOLgEQPoPLSqAFBajaczt+lcbUZR+V2fby3572h5jf/kFV6UL8LAZ1Ze58hcbKwfvbh4C09kp0PhqPgXKwOg==} cpu: [arm64] @@ -9265,6 +9421,15 @@ packages: dev: true optional: true + /esbuild-freebsd-64/0.14.27: + resolution: {integrity: sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /esbuild-freebsd-64/0.14.5: resolution: {integrity: sha512-uP0yOixSHF505o/Kzq9e4bvZblCZp9GGx+a7enLOVSuvIvLmtj2yhZLRPGfbVNkPJXktTKNRAnNGkXHl53M6sw==} cpu: [x64] @@ -9288,6 +9453,15 @@ packages: dev: true optional: true + /esbuild-freebsd-arm64/0.14.27: + resolution: {integrity: sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /esbuild-freebsd-arm64/0.14.5: resolution: {integrity: sha512-M99NPu8hlirFo6Fgx0WfX6XxUFdGclUNv3MyyfDtTdNYbccMESwLSACGpE7HvJKWscdjaqajeMu2an9adGNfCw==} cpu: [arm64] @@ -9311,6 +9485,15 @@ packages: dev: true optional: true + /esbuild-linux-32/0.14.27: + resolution: {integrity: sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-32/0.14.5: resolution: {integrity: sha512-hfqln4yb/jf/vPvI/A6aCvpIzqF3PdDmrKiikTohEUuRtvEZz234krtNwEAw5ssCue4NX8BJqrMpCTAHOl3LQw==} cpu: [ia32] @@ -9334,6 +9517,15 @@ packages: dev: true optional: true + /esbuild-linux-64/0.14.27: + resolution: {integrity: sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-64/0.14.5: resolution: {integrity: sha512-T+OuYPlhytjj5DsvjUXizNjbV+/IrZiaDc9SNUfqiUOXHu0URFqchjhPVbBiBnWykCMJFB6pqNap2Oxth4iuYw==} cpu: [x64] @@ -9357,6 +9549,15 @@ packages: dev: true optional: true + /esbuild-linux-arm/0.14.27: + resolution: {integrity: sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-arm/0.14.5: resolution: {integrity: sha512-5b10jKJ3lU4BUchOw9TgRResu8UZJf8qVjAzV5muHedonCfBzClGTT4KCNuOcLTJomH3wz6gNVJt1AxMglXnJg==} cpu: [arm] @@ -9380,6 +9581,15 @@ packages: dev: true optional: true + /esbuild-linux-arm64/0.14.27: + resolution: {integrity: sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-arm64/0.14.5: resolution: {integrity: sha512-ANOzoaH4kfbhEZT0EGY9g1tsZhDA+I0FRwBsj7D8pCU900pXF/l8YAOy5jWFQIb3vjG5+orFc5SqSzAKCisvTQ==} cpu: [arm64] @@ -9403,6 +9613,15 @@ packages: dev: true optional: true + /esbuild-linux-mips64le/0.14.27: + resolution: {integrity: sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-mips64le/0.14.5: resolution: {integrity: sha512-sSmGfOUNNB2Nd3tzp1RHSxiJmM5/RUIEP5aAtH+PpOP7FPp15Jcfwq7UNBJ82KLN3SJcwhUeEfcCaUFBzbTKxg==} cpu: [mips64el] @@ -9426,6 +9645,15 @@ packages: dev: true optional: true + /esbuild-linux-ppc64le/0.14.27: + resolution: {integrity: sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-ppc64le/0.14.5: resolution: {integrity: sha512-usfQrVVIQcpuc/U2NWc7/Ry+m622v+PjJ5eErNPdjWBPlcvD6kXaBTv94uQkVzZOHX3uYqprRrOjseed9ApSYA==} cpu: [ppc64] @@ -9434,6 +9662,24 @@ packages: dev: true optional: true + /esbuild-linux-riscv64/0.14.27: + resolution: {integrity: sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.27: + resolution: {integrity: sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-netbsd-64/0.13.15: resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==} cpu: [x64] @@ -9449,6 +9695,15 @@ packages: dev: true optional: true + /esbuild-netbsd-64/0.14.27: + resolution: {integrity: sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /esbuild-netbsd-64/0.14.5: resolution: {integrity: sha512-Q5KpvPZcPnNEaTjrvuWqvEnlhI2jyi1wWwYunlEUAhx60spQOTy10sdYOA+s1M+LPb6kwvasrZZDmYyQlcVZeA==} cpu: [x64] @@ -9481,6 +9736,15 @@ packages: dev: true optional: true + /esbuild-openbsd-64/0.14.27: + resolution: {integrity: sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /esbuild-openbsd-64/0.14.5: resolution: {integrity: sha512-RZzRUu1RYKextJgXkHhAsuhLDvm73YP/wogpUG9MaAGvKTxnKAKRuaw2zJfnbz8iBqBQB2no2PmpVBNbqUTQrw==} cpu: [x64] @@ -9513,6 +9777,15 @@ packages: dev: true optional: true + /esbuild-sunos-64/0.14.27: + resolution: {integrity: sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /esbuild-sunos-64/0.14.5: resolution: {integrity: sha512-J2ffKsBBWscQlye+/giEgKsQCppwHHFqqt/sh+ojVF+DZy1ve6RpPGwXGcGF6IaZTAI9+Vk4eHleiQxb+PC9Yw==} cpu: [x64] @@ -9536,6 +9809,15 @@ packages: dev: true optional: true + /esbuild-windows-32/0.14.27: + resolution: {integrity: sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-32/0.14.5: resolution: {integrity: sha512-OTZvuAc1JBnwmeT+hR1+Vmgz6LOD7DggpnwtKMAExruSLxUMl02Z3pyalJ7zKh3gJ/KBRM1JQZLSk4/mFWijeQ==} cpu: [ia32] @@ -9559,6 +9841,15 @@ packages: dev: true optional: true + /esbuild-windows-64/0.14.27: + resolution: {integrity: sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-64/0.14.5: resolution: {integrity: sha512-ZM9rlBDsPEeMVJ1wcpNMXUad9VzYOFeOBUXBi+16HZTvFPy2DkcC2ZWcrByP3IESToD5lvHdjSX/w8rxphjqig==} cpu: [x64] @@ -9582,6 +9873,15 @@ packages: dev: true optional: true + /esbuild-windows-arm64/0.14.27: + resolution: {integrity: sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-arm64/0.14.5: resolution: {integrity: sha512-iK41mKG2LG0AKHE+9g/jDYU5ZQpJObt1uIPSGTiiiJKI5qbHdEck6Gaqq2tmBI933F2zB9yqZIX7IAdxwN/q4A==} cpu: [arm64] @@ -9637,6 +9937,34 @@ packages: esbuild-windows-arm64: 0.13.8 dev: true + /esbuild/0.14.27: + resolution: {integrity: sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.27 + esbuild-android-arm64: 0.14.27 + esbuild-darwin-64: 0.14.27 + esbuild-darwin-arm64: 0.14.27 + esbuild-freebsd-64: 0.14.27 + esbuild-freebsd-arm64: 0.14.27 + esbuild-linux-32: 0.14.27 + esbuild-linux-64: 0.14.27 + esbuild-linux-arm: 0.14.27 + esbuild-linux-arm64: 0.14.27 + esbuild-linux-mips64le: 0.14.27 + esbuild-linux-ppc64le: 0.14.27 + esbuild-linux-riscv64: 0.14.27 + esbuild-linux-s390x: 0.14.27 + esbuild-netbsd-64: 0.14.27 + esbuild-openbsd-64: 0.14.27 + esbuild-sunos-64: 0.14.27 + esbuild-windows-32: 0.14.27 + esbuild-windows-64: 0.14.27 + esbuild-windows-arm64: 0.14.27 + dev: true + /esbuild/0.14.5: resolution: {integrity: sha512-ofwgH4ITPXhkMo2AM39oXpSe5KIyWjxicdqYVy+tLa1lMgxzPCKwaepcrSRtYbgTUMXwquxB1C3xQYpUNaPAFA==} hasBin: true @@ -10824,7 +11152,6 @@ packages: /get-func-name/2.0.0: resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} - dev: false /get-intrinsic/1.1.1: resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} @@ -11079,9 +11406,10 @@ packages: whatwg-mimetype: 2.3.0 dev: true - /happy-dom/2.28.0: - resolution: {integrity: sha512-J65003xw/uTXNczNzfTt3EJRODzWbFXVj+zqq0LNlE8tR6n26VYk4Apm0mlqUYO3THGVdKcVqSQ2P8Ss6DHSpQ==} + /happy-dom/2.49.0: + resolution: {integrity: sha512-mnPY9LmumUs8EmKyAQjutmFn/XzafvQeQ65w7MsZlHqG6OH3MratBzS0N4AAmuB3+F51KFUbUKNF763i3ZV19Q==} dependencies: + css.escape: 1.5.1 he: 1.2.0 node-fetch: 2.6.6 sync-request: 6.1.0 @@ -11695,6 +12023,12 @@ packages: dependencies: has: 1.0.3 + /is-core-module/2.8.1: + resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} + dependencies: + has: 1.0.3 + dev: true + /is-data-descriptor/0.1.4: resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=} engines: {node: '>=0.10.0'} @@ -12616,6 +12950,12 @@ packages: dependencies: js-tokens: 4.0.0 + /loupe/2.3.4: + resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} + dependencies: + get-func-name: 2.0.0 + dev: true + /lower-case/2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: @@ -13096,6 +13436,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid/3.3.1: + resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /nanomatch/1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -13840,7 +14186,6 @@ packages: /pathval/1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: false /pbkdf2/3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} @@ -14048,6 +14393,15 @@ packages: source-map: 0.6.1 dev: true + /postcss/8.4.12: + resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.1 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /postcss/8.4.5: resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==} engines: {node: ^10 || ^12 || >=14} @@ -14727,7 +15081,7 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' dependencies: - '@babel/runtime': 7.16.7 + '@babel/runtime': 7.17.7 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.7.2 @@ -15087,6 +15441,15 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + /resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + hasBin: true + dependencies: + is-core-module: 2.8.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + /resolve/2.0.0-next.3: resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} dependencies: @@ -15766,7 +16129,7 @@ packages: resolution: {integrity: sha512-iJtHSGmNgAUx0b/MCS6ASGxb//hGrHHRgzvN+K5bvkBTN7A9RTpPSf1WSp+nPGvWCJ1jRnvY7MKnuqfoi3OEqg==} dev: true - /storybook-builder-vite/0.1.13_a5ce969bcf8d8747b3a0d666bc290993: + /storybook-builder-vite/0.1.13_3bc90c858d65790b329a232215878bb1: resolution: {integrity: sha512-eSfCluvVFit46iaYYyv9l/WhHuztHQflN6EvjPc63yr5PESVQawEDZnmVPvcLxO1r7NOOJGVO4LtSPJmGIg0Qw==} peerDependencies: vite: '>=2.6.7' @@ -15778,8 +16141,8 @@ packages: es-module-lexer: 0.9.3 glob: 7.2.0 glob-promise: 4.2.2_glob@7.2.0 - vite: 2.7.13 - vite-plugin-mdx: 3.5.10_@mdx-js+mdx@1.6.22+vite@2.7.13 + vite: 2.8.6 + vite-plugin-mdx: 3.5.10_@mdx-js+mdx@1.6.22+vite@2.8.6 transitivePeerDependencies: - react - react-dom @@ -16283,11 +16646,21 @@ packages: engines: {node: '>=14.0.0'} dev: false + /tinypool/0.1.2: + resolution: {integrity: sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==} + engines: {node: '>=14.0.0'} + dev: true + /tinyspy/0.2.8: resolution: {integrity: sha512-4VXqQzzh9gC5uOLk77cLr9R3wqJq07xJlgM9IUdCNJCet139r+046ETKbU1x7mGs7B0k7eopyH5U6yflbBXNyA==} engines: {node: '>=14.0.0'} dev: false + /tinyspy/0.3.0: + resolution: {integrity: sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==} + engines: {node: '>=14.0.0'} + dev: true + /tmp/0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -16746,7 +17119,7 @@ packages: engines: {node: '>= 0.8'} dev: true - /unplugin-auto-import/0.5.11_0300e2fc4592cc668512bad114c07138: + /unplugin-auto-import/0.5.11_738b314ffda06fe24ae851999b0b5fc1: resolution: {integrity: sha512-MJ3POLe/IysRHF4yd32FkKDoxqSRoiuIHm89ys67B8FLuz2Pvh9poeqTVe6IhJsNxwv0+GSdFfj5Dpq24lhm4g==} engines: {node: '>=14'} peerDependencies: @@ -16760,7 +17133,7 @@ packages: local-pkg: 0.4.1 magic-string: 0.25.7 resolve: 1.21.0 - unplugin: 0.3.0_0300e2fc4592cc668512bad114c07138 + unplugin: 0.3.0_738b314ffda06fe24ae851999b0b5fc1 transitivePeerDependencies: - esbuild - rollup @@ -16768,7 +17141,7 @@ packages: - webpack dev: true - /unplugin-auto-import/0.5.11_420fb798aa2a20fbf563b9961b692a6d: + /unplugin-auto-import/0.5.11_f1127c941ea10839e53ee0e2d3316279: resolution: {integrity: sha512-MJ3POLe/IysRHF4yd32FkKDoxqSRoiuIHm89ys67B8FLuz2Pvh9poeqTVe6IhJsNxwv0+GSdFfj5Dpq24lhm4g==} engines: {node: '>=14'} peerDependencies: @@ -16783,7 +17156,7 @@ packages: local-pkg: 0.4.1 magic-string: 0.25.7 resolve: 1.21.0 - unplugin: 0.3.0_0300e2fc4592cc668512bad114c07138 + unplugin: 0.3.0_738b314ffda06fe24ae851999b0b5fc1 transitivePeerDependencies: - esbuild - rollup @@ -16791,7 +17164,7 @@ packages: - webpack dev: true - /unplugin-vue-components/0.17.13_19c514bd5e4e89f4f64a7d4f3f15a1ba: + /unplugin-vue-components/0.17.13_dbf9aa64b4b40c62aed53ec3f23e23f7: resolution: {integrity: sha512-WII6hAW+HSvlXDx4t0LqcAvLg4ESsoBz1nuUDMPx6ZGuKBPjSRP4Wmnk559nZ6qpaOW41iY48cBeUpWSPjH7WA==} engines: {node: '>=14'} peerDependencies: @@ -16813,7 +17186,7 @@ packages: magic-string: 0.25.7 minimatch: 3.0.4 resolve: 1.21.0 - unplugin: 0.3.0_0300e2fc4592cc668512bad114c07138 + unplugin: 0.3.0_738b314ffda06fe24ae851999b0b5fc1 vue: 3.2.26 transitivePeerDependencies: - esbuild @@ -16823,7 +17196,7 @@ packages: - webpack dev: true - /unplugin/0.3.0_0300e2fc4592cc668512bad114c07138: + /unplugin/0.3.0_738b314ffda06fe24ae851999b0b5fc1: resolution: {integrity: sha512-9yLlOo+XC4NdIRgpkDSHOAHkQDq2x4mbuVNO/eKVa3C8WTn5wWGfzEFfRJFL8euqnX3Gf7hEur0AhXxy+WSwkg==} peerDependencies: esbuild: '>=0.13' @@ -16842,7 +17215,7 @@ packages: dependencies: esbuild: 0.13.15 rollup: 2.64.0 - vite: 2.7.13 + vite: 2.9.0-beta.3 webpack-virtual-modules: 0.4.3 dev: true @@ -17045,7 +17418,7 @@ packages: vfile-message: 2.0.4 dev: true - /vite-plugin-mdx/3.5.10_@mdx-js+mdx@1.6.22+vite@2.7.13: + /vite-plugin-mdx/3.5.10_@mdx-js+mdx@1.6.22+vite@2.8.6: resolution: {integrity: sha512-tfGNRwkO23pln9EYqhbsOLEx9Qot5+enl+727gop7+HGEoC87+88hLRWGL+FU/It1Y0a5P3OAyDbTKKHX6tEJw==} peerDependencies: '@mdx-js/mdx': '*' @@ -17056,10 +17429,10 @@ packages: esbuild: 0.13.8 resolve: 1.21.0 unified: 9.2.2 - vite: 2.7.13 + vite: 2.8.6 dev: true - /vite-plugin-optimize-persist/0.1.2_e332eb06172b7009694b58948ff59ced: + /vite-plugin-optimize-persist/0.1.2_6508d1d3df65e084d1ddebec9a189424: resolution: {integrity: sha512-H/Ebn2kZO8PvwUF08SsT5K5xMJNCWKoGX71+e9/ER3yNj7GHiFjNQlvGg5ih/zEx09MZ9m7WCxOwmEKbeIVzww==} peerDependencies: vite: ^2.0.0 @@ -17067,24 +17440,24 @@ packages: dependencies: debug: 4.3.3 fs-extra: 10.0.0 - vite: 2.7.13 - vite-plugin-package-config: 0.1.1_vite@2.7.13 + vite: 2.9.0-beta.3 + vite-plugin-package-config: 0.1.1_vite@2.9.0-beta.3 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-package-config/0.1.1_vite@2.7.13: + /vite-plugin-package-config/0.1.1_vite@2.9.0-beta.3: resolution: {integrity: sha512-w9B3I8ZnqoyhlbzimXjXNk85imrMZgvI9m8f6j3zonK5IVA5KXzpT+PZOHlDz8lqh1vqvoEI1uhy+ZDoLAiA/w==} peerDependencies: vite: ^2.0.0 dependencies: debug: 4.3.3 - vite: 2.7.13 + vite: 2.9.0-beta.3 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-pages/0.20.0_vite@2.7.13: + /vite-plugin-pages/0.20.0_vite@2.9.0-beta.3: resolution: {integrity: sha512-yM+8ORpssLknR59HL26kz2g7BU79CGkgyw28rLpsbpjX7GgYBDgTHp4llMrpRD8JAeJBndP7CdUmpBM3ReG4Sw==} peerDependencies: '@vue/compiler-sfc': '>=3' @@ -17098,20 +17471,20 @@ packages: fast-glob: 3.2.10 json5: 2.2.0 local-pkg: 0.4.1 - vite: 2.7.13 + vite: 2.9.0-beta.3 yaml: 2.0.0-10 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-ruby/3.0.8_vite@2.7.13: + /vite-plugin-ruby/3.0.8_vite@2.9.0-beta.3: resolution: {integrity: sha512-FIuLpiLd234CYXl2601YG/MYUWPjcJxzQCMXIBEGuP+yZkn4ZSuKRt5Zmt844fh9XIDyxJaxirMQT6P5eTmqSw==} peerDependencies: vite: '>=2.5.0' dependencies: debug: 4.3.3 fast-glob: 3.2.11 - vite: 2.7.13 + vite: 2.9.0-beta.3 transitivePeerDependencies: - supports-color dev: true @@ -17139,6 +17512,54 @@ packages: optionalDependencies: fsevents: 2.3.2 + /vite/2.8.6: + resolution: {integrity: sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==} + engines: {node: '>=12.2.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + dependencies: + esbuild: 0.14.27 + postcss: 8.4.12 + resolve: 1.22.0 + rollup: 2.64.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vite/2.9.0-beta.3: + resolution: {integrity: sha512-x3G5GGQQlapvyjr2jhFTT16NIbKJdcfYOa6oD8OZuy+WqGTSYolowGJP7tUrTe9y5n641CBKLuhjqXc4gpwUVQ==} + engines: {node: '>=12.2.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + dependencies: + esbuild: 0.14.27 + postcss: 8.4.12 + resolve: 1.22.0 + rollup: 2.64.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /vitepress/0.21.6: resolution: {integrity: sha512-OzwD2cTfvoK5VKV0UWSqu4XvUOz4vWFJ4Bdi0z8GoVkTFXkfmbFawEDVXAZwzu0Hn4/VLopgmEyooc91iGKFlg==} engines: {node: '>=12.0.0'} @@ -17160,6 +17581,214 @@ packages: - stylus dev: true + /vitest/0.7.0_1e66918cbf66fd00be2e69108cd60a00: + resolution: {integrity: sha512-qLq4VEWJRyhscfzjhlNA+mrCrBQ2Vh7M9ew90yudOfoNUT0ilmFdRriRMN8m8BkKw/7txoTvT1X3oQB7B4Pk3A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.7.0 + c8: 7.11.0 + chai: 4.3.6 + happy-dom: 2.27.2 + jsdom: 19.0.0 + local-pkg: 0.4.1 + tinypool: 0.1.2 + tinyspy: 0.3.0 + vite: 2.8.6 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.7.0_@vitest+ui@0.7.0+c8@7.11.0: + resolution: {integrity: sha512-qLq4VEWJRyhscfzjhlNA+mrCrBQ2Vh7M9ew90yudOfoNUT0ilmFdRriRMN8m8BkKw/7txoTvT1X3oQB7B4Pk3A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.7.0 + c8: 7.11.0 + chai: 4.3.6 + local-pkg: 0.4.1 + tinypool: 0.1.2 + tinyspy: 0.3.0 + vite: 2.8.6 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.7.0_ade40f3b5d56ba266e920981620ace78: + resolution: {integrity: sha512-qLq4VEWJRyhscfzjhlNA+mrCrBQ2Vh7M9ew90yudOfoNUT0ilmFdRriRMN8m8BkKw/7txoTvT1X3oQB7B4Pk3A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.7.0 + c8: 7.11.0 + chai: 4.3.6 + happy-dom: 2.49.0 + local-pkg: 0.4.1 + tinypool: 0.1.2 + tinyspy: 0.3.0 + vite: 2.8.6 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.7.0_c8@7.11.0+happy-dom@2.49.0: + resolution: {integrity: sha512-qLq4VEWJRyhscfzjhlNA+mrCrBQ2Vh7M9ew90yudOfoNUT0ilmFdRriRMN8m8BkKw/7txoTvT1X3oQB7B4Pk3A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + c8: 7.11.0 + chai: 4.3.6 + happy-dom: 2.49.0 + local-pkg: 0.4.1 + tinypool: 0.1.2 + tinyspy: 0.3.0 + vite: 2.8.6 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.7.0_c8@7.11.0+jsdom@19.0.0: + resolution: {integrity: sha512-qLq4VEWJRyhscfzjhlNA+mrCrBQ2Vh7M9ew90yudOfoNUT0ilmFdRriRMN8m8BkKw/7txoTvT1X3oQB7B4Pk3A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + c8: 7.11.0 + chai: 4.3.6 + jsdom: 19.0.0 + local-pkg: 0.4.1 + tinypool: 0.1.2 + tinyspy: 0.3.0 + vite: 2.8.6 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + + /vitest/0.7.0_efa29fb81c2b3f66e25d9bb42566060c: + resolution: {integrity: sha512-qLq4VEWJRyhscfzjhlNA+mrCrBQ2Vh7M9ew90yudOfoNUT0ilmFdRriRMN8m8BkKw/7txoTvT1X3oQB7B4Pk3A==} + engines: {node: '>=14.14.0'} + hasBin: true + peerDependencies: + '@vitest/ui': '*' + c8: '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@vitest/ui': + optional: true + c8: + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.0 + '@types/chai-subset': 1.3.3 + '@vitest/ui': 0.7.0 + c8: 7.11.0 + chai: 4.3.6 + jsdom: 19.0.0 + local-pkg: 0.4.1 + tinypool: 0.1.2 + tinyspy: 0.3.0 + vite: 2.8.6 + transitivePeerDependencies: + - less + - sass + - stylus + dev: true + /vm-browserify/1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true From 9a9c9dfa048e353c750f9c814735ec0af7de899d Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 17 Mar 2022 03:30:30 -0400 Subject: [PATCH 16/20] chore: fixing types --- pnpm-lock.yaml | 7 +++---- test/global-setup/test/global-setup.test.ts | 1 + test/global-setup/test/setup-files.test.ts | 1 + test/snapshots/test/shapshots.test.ts | 8 +++++--- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 398acb814337..d64d46883518 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3401,7 +3401,7 @@ packages: '@mui/utils': 5.4.4_react@17.0.2 '@popperjs/core': 2.11.4 clsx: 1.1.1 - prop-types: 15.7.2 + prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-is: 17.0.2 @@ -3442,7 +3442,7 @@ packages: '@mui/utils': 5.4.4_react@17.0.2 clsx: 1.1.1 date-fns: 2.28.0 - prop-types: 15.7.2 + prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 react-is: 17.0.2 @@ -15142,7 +15142,6 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: true /property-information/5.6.0: resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} @@ -16623,7 +16622,7 @@ packages: '@babel/preset-typescript': 7.16.7_@babel+core@7.17.7 compression: 1.7.4 connect: 3.7.0 - cookie: 0.4.1 + cookie: 0.4.2 cookie-signature: 1.2.0 es-module-lexer: 0.9.3 esbuild: 0.14.27 diff --git a/test/global-setup/test/global-setup.test.ts b/test/global-setup/test/global-setup.test.ts index 79cda5af1256..f7d0df0843f7 100644 --- a/test/global-setup/test/global-setup.test.ts +++ b/test/global-setup/test/global-setup.test.ts @@ -1,4 +1,5 @@ import fetch from 'node-fetch' +import { expect } from 'vitest' beforeEach(async() => { await new Promise((resolve) => { diff --git a/test/global-setup/test/setup-files.test.ts b/test/global-setup/test/setup-files.test.ts index 10a22220baf5..e40a0ff41fe0 100644 --- a/test/global-setup/test/setup-files.test.ts +++ b/test/global-setup/test/setup-files.test.ts @@ -1,3 +1,4 @@ +import { expect } from 'vitest' test('something has been added to global by setupFiles entry', async() => { // @ts-expect-error type diff --git a/test/snapshots/test/shapshots.test.ts b/test/snapshots/test/shapshots.test.ts index eaf2644b9d76..e9bc4f1d71ca 100644 --- a/test/snapshots/test/shapshots.test.ts +++ b/test/snapshots/test/shapshots.test.ts @@ -1,3 +1,5 @@ +import { expect } from 'vitest' + const println = () => { const message = ` export default function () { @@ -27,10 +29,10 @@ test('multiline strings ', () => { test('updateInlineSnapshot should not remove end whitespace', () => { // issue #922 expect(` -my string +my string `).toMatchInlineSnapshot(` " - my string + my string " `) -}) \ No newline at end of file +}) From 70b33595f5422cc5fa6c31afaceb0941c3ae3bca Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 17 Mar 2022 03:39:16 -0400 Subject: [PATCH 17/20] chore: fixing types --- packages/ui/client/global-setup.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/ui/client/global-setup.ts b/packages/ui/client/global-setup.ts index 8e09cb31e237..4058316558c0 100644 --- a/packages/ui/client/global-setup.ts +++ b/packages/ui/client/global-setup.ts @@ -1,3 +1,5 @@ +/// + import { createRouter as _createRouter, createWebHistory } from 'vue-router' import FloatingVue, { VTooltip } from 'floating-vue' import routes from 'virtual:generated-pages' From 91fa5da8702c22cea2db8a01398eae27a3007e3e Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 17 Mar 2022 03:47:34 -0400 Subject: [PATCH 18/20] reenabling tests --- .../dashboard/DashboardEntry.cy.tsx | 60 ++++++++----------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx index 952723d52ce4..6a0478765901 100644 --- a/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx +++ b/packages/ui/client/components/dashboard/DashboardEntry.cy.tsx @@ -1,38 +1,30 @@ -// import faker from '@faker-js/faker' -// import DashboardEntry from './DashboardEntry.vue' +import faker from '@faker-js/faker' +import DashboardEntry from './DashboardEntry.vue' -it('runs', () => { - expect(true).to.be.true; -}) -// const body = () => (
{ faker.lorem.words(2) }
) -// const header = () => (
{ faker.hacker.phrase() }
) -// const bodySelector = '[data-testid=body-content]' -// const headerSelector = '[data-testid=header-content]' -// const tailSelector = '[data-testid=tail]' - -// // Used as a workaround until unocss HMR is compatible w Cy. -// it('initial', () => { -// cy.mount() -// }) +const body = () => (
{ faker.lorem.words(2) }
) +const header = () => (
{ faker.hacker.phrase() }
) +const bodySelector = '[data-testid=body-content]' +const headerSelector = '[data-testid=header-content]' +const tailSelector = '[data-testid=tail]' -// describe('DashboardEntry', () => { -// it('tail is rendered by default', () => { -// cy.mount() -// .get(tailSelector) -// .should('exist') -// }) +describe('DashboardEntry', () => { + it('tail is rendered by default', () => { + cy.mount() + .get(tailSelector) + .should('exist') + }) -// it('tail is not shown when true', () => { -// cy.mount() -// .get(tailSelector) -// .should('not.exist') -// }) + it('tail is not shown when true', () => { + cy.mount() + .get(tailSelector) + .should('not.exist') + }) -// it('renders the body and header slots', () => { -// cy.mount() -// .get(bodySelector) -// .should('be.visible') -// .get(headerSelector) -// .should('be.visible') -// }) -// }) + it('renders the body and header slots', () => { + cy.mount() + .get(bodySelector) + .should('be.visible') + .get(headerSelector) + .should('be.visible') + }) +}) From 09cf89e74bd7df3a32cf4fed635364e8438e22b4 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 17 Mar 2022 03:51:13 -0400 Subject: [PATCH 19/20] adding faker seed back in --- packages/ui/cypress/support/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ui/cypress/support/index.ts b/packages/ui/cypress/support/index.ts index 0e25f5176268..b7c0bd73efcd 100644 --- a/packages/ui/cypress/support/index.ts +++ b/packages/ui/cypress/support/index.ts @@ -1,10 +1,10 @@ -// import faker from '@faker-js/faker' +import faker from '@faker-js/faker' import '../../client/global-setup' import { registerMount } from './mount' -// before(() => { -// faker.seed(0) -// }) +before(() => { + faker.seed(0) +}) registerMount() From 939ebdbbe90d1f01811f76153d2c8553303c9847 Mon Sep 17 00:00:00 2001 From: Jessica Sachs Date: Thu, 17 Mar 2022 04:12:41 -0400 Subject: [PATCH 20/20] bumping faker version --- packages/ui/package.json | 2 +- pnpm-lock.yaml | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index cd46acd5a63a..b2d5d12e802c 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@cypress/vite-dev-server": "^2.2.2", "@cypress/vue": "^3.1.0", - "@faker-js/faker": "^6.0.0-alpha.3", + "@faker-js/faker": "^6.0.0", "@types/codemirror": "^5.60.5", "@types/d3-force": "^3.0.3", "@types/d3-selection": "^3.0.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d64d46883518..3fd5f9c1ac6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -513,7 +513,7 @@ importers: specifiers: '@cypress/vite-dev-server': ^2.2.2 '@cypress/vue': ^3.1.0 - '@faker-js/faker': ^6.0.0-alpha.3 + '@faker-js/faker': ^6.0.0 '@types/codemirror': ^5.60.5 '@types/d3-force': ^3.0.3 '@types/d3-selection': ^3.0.2 @@ -547,7 +547,7 @@ importers: devDependencies: '@cypress/vite-dev-server': 2.2.2_vite@2.8.6 '@cypress/vue': 3.1.0_cypress@9.5.2+vue@3.2.31 - '@faker-js/faker': 6.0.0-alpha.3 + '@faker-js/faker': 6.0.0 '@types/codemirror': 5.60.5 '@types/d3-force': 3.0.3 '@types/d3-selection': 3.0.2 @@ -3151,8 +3151,9 @@ packages: - supports-color dev: true - /@faker-js/faker/6.0.0-alpha.3: - resolution: {integrity: sha512-8B+7Jlwb9ogcoluzxB6AaSRZn2gnoewTA/WygAYhWNxkrFKjQL0TDXK6AW6uJlASMKl7qG/qbEVtpjLByuL0ZQ==} + /@faker-js/faker/6.0.0: + resolution: {integrity: sha512-10zLCKhp3YEmBuko71ivcMoIZcCLXgQVck6aNswX+AWwaek/L8S3yz9i8m3tHigRkcF6F2vI+qtdtyySHK+bGA==} + engines: {node: '>=14.0.0', npm: '>=7.0.0'} dev: true /@floating-ui/core/0.3.1: @@ -15656,7 +15657,7 @@ packages: '@babel/runtime': 7.17.7 dom-helpers: 5.2.1 loose-envify: 1.4.0 - prop-types: 15.7.2 + prop-types: 15.8.1 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 dev: false