From 55a6ed7ff5d66cb66abc62b7f221b6c71a848689 Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 09:10:27 +0200 Subject: [PATCH 01/27] chore: remove Circle CI config --- .circleci/config.yml | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 3a1d48f2f..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: 2 -jobs: - build: - docker: - - image: circleci/node:lts - working_directory: ~/repo - steps: - - run: echo "Nope" \ No newline at end of file From 1681b0b56e0169c3046f13d4bdb28e4b59bb1709 Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 09:13:11 +0200 Subject: [PATCH 02/27] ci: add contine-on-error to release CI step, becauseprereleases are flaky --- .github/workflows/ci.yml | 185 ++++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 92 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3321fc080..8dba81852 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,92 +1,93 @@ -name: CI - -on: - pull_request: - types: [opened, synchronize] - push: - branches: - - develop - - stable - - ci/* - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - uses: actions/setup-node@v1 - with: - node-version: 14.x - - - uses: bahmutov/npm-install@v1 - with: - # By default, bahmutov/npm-install uses --frozen-lockfile - install-command: yarn - - - name: Run tests and collect coverage - run: yarn test --coverage - - - name: Typecheck - run: yarn typecheck - - - name: Build - run: yarn build - - - name: Run Codechecks - run: yarn codechecks - env: - CC_SECRET: ${{ secrets.CC_SECRET }} - if: ${{ env.CC_SECRET != '' }} - - # Dependabot and PRs from forks should not release canaries, - # but secrets and env vars cannot be read in `job.if`, so we check if - # GH_TOKEN is present before attempting to release. - release_check: - runs-on: ubuntu-latest - needs: [build] - steps: - - id: can_release - run: echo '::set-output name=CAN_RELEASE::${{ env.CAN_RELEASE }}' - env: - CAN_RELEASE: ${{ secrets.AUTO_RELEASE_GH_TOKEN != '' }} - outputs: - CAN_RELEASE: ${{ steps.can_release.outputs.CAN_RELEASE }} - - release: - runs-on: ubuntu-latest - needs: [release_check] - if: > - !contains(github.event.head_commit.message, 'ci skip') && - !contains(github.event.head_commit.message, 'skip ci') && ( - github.event_name == 'push' || - github.event.pull_request.head.repo.full_name == github.repository - ) && ( - needs.release_check.outputs.CAN_RELEASE == 'true' - ) - steps: - - uses: actions/checkout@v2 - - - name: Prepare repository - run: git fetch --unshallow --tags - - - uses: actions/setup-node@v1 - with: - node-version: 14.x - - - uses: bahmutov/npm-install@v1 - - - name: Queue in release turnstile - id: turnstyle - continue-on-error: true - uses: softprops/turnstyle@v1 - with: - abort-after-seconds: 600 - - - name: Create release - if: steps.turnstyle.outcome == 'success' - env: - GITHUB_TOKEN: ${{ secrets.AUTO_RELEASE_GH_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - run: yarn release +name: CI + +on: + pull_request: + types: [opened, synchronize] + push: + branches: + - develop + - stable + - ci/* + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v1 + with: + node-version: 14.x + + - uses: bahmutov/npm-install@v1 + with: + # By default, bahmutov/npm-install uses --frozen-lockfile + install-command: yarn + + - name: Run tests and collect coverage + run: yarn test --coverage + + - name: Typecheck + run: yarn typecheck + + - name: Build + run: yarn build + + - name: Run Codechecks + run: yarn codechecks + env: + CC_SECRET: ${{ secrets.CC_SECRET }} + if: ${{ env.CC_SECRET != '' }} + + # Dependabot and PRs from forks should not release canaries, + # but secrets and env vars cannot be read in `job.if`, so we check if + # GH_TOKEN is present before attempting to release. + release_check: + runs-on: ubuntu-latest + needs: [build] + steps: + - id: can_release + run: echo '::set-output name=CAN_RELEASE::${{ env.CAN_RELEASE }}' + env: + CAN_RELEASE: ${{ secrets.AUTO_RELEASE_GH_TOKEN != '' }} + outputs: + CAN_RELEASE: ${{ steps.can_release.outputs.CAN_RELEASE }} + + release: + runs-on: ubuntu-latest + needs: [release_check] + if: > + !contains(github.event.head_commit.message, 'ci skip') && + !contains(github.event.head_commit.message, 'skip ci') && ( + github.event_name == 'push' || + github.event.pull_request.head.repo.full_name == github.repository + ) && ( + needs.release_check.outputs.CAN_RELEASE == 'true' + ) + steps: + - uses: actions/checkout@v2 + + - name: Prepare repository + run: git fetch --unshallow --tags + + - uses: actions/setup-node@v1 + with: + node-version: 14.x + + - uses: bahmutov/npm-install@v1 + + - name: Queue in release turnstile + id: turnstyle + continue-on-error: true + uses: softprops/turnstyle@v1 + with: + abort-after-seconds: 600 + + - name: Create release + if: steps.turnstyle.outcome == 'success' + continue-on-error: true + env: + GITHUB_TOKEN: ${{ secrets.AUTO_RELEASE_GH_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: yarn release From 403f4fb11fa19e16506e5f288681525b71f2bf04 Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 09:15:13 +0200 Subject: [PATCH 03/27] chore(theme-ui): remove unused build scripts --- packages/theme-ui/package.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/theme-ui/package.json b/packages/theme-ui/package.json index 46e891e98..67a2f1c9b 100644 --- a/packages/theme-ui/package.json +++ b/packages/theme-ui/package.json @@ -10,12 +10,7 @@ "author": "Brent Jackson ", "license": "MIT", "repository": "system-ui/theme-ui", - "scripts": { - "build": "yarn build:index && yarn build:jsx-runtime && yarn build:jsx-dev-runtime", - "build:jsx-runtime": "microbundle --no-compress --tsconfig tsconfig.json --cwd jsx-runtime", - "build:jsx-dev-runtime": "microbundle --no-compress --tsconfig tsconfig.json --cwd jsx-dev-runtime", - "build:index": "microbundle --no-compress --tsconfig tsconfig.json" - }, + "scripts": {}, "dependencies": { "@theme-ui/color-modes": "0.10.0", "@theme-ui/components": "0.10.0", From 11a767984e70a2a7245c545f7ad9c19c404a70fe Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 23:09:54 +0200 Subject: [PATCH 04/27] test(cypress): add e2e tests for color modes on docs index page --- .eslintrc.js | 3 + .github/workflows/ci.yml | 6 +- .github/workflows/e2e.yml | 40 + package.json | 5 +- packages/docs/src/components/layout.js | 10 +- packages/e2e/cypress.json | 15 + packages/e2e/integration/docs-color-modes.ts | 97 +++ packages/e2e/package.json | 18 + packages/e2e/plugins.js | 19 + packages/e2e/support.ts | 32 + packages/e2e/tsconfig.json | 16 + yarn.lock | 781 ++++++++++++++++++- 12 files changed, 994 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/e2e.yml create mode 100644 packages/e2e/cypress.json create mode 100644 packages/e2e/integration/docs-color-modes.ts create mode 100644 packages/e2e/package.json create mode 100644 packages/e2e/plugins.js create mode 100644 packages/e2e/support.ts create mode 100644 packages/e2e/tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js index e4861d7c1..8cd9842fe 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -12,5 +12,8 @@ module.exports = { 'no-use-before-define': 'off', 'react/react-in-jsx-scope': 'off', '@typescript-eslint/no-redeclare': 'off', + + // TypeScript checks this + 'no-undef': 'off', }, } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8dba81852..dbbb07f87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,8 @@ jobs: - uses: bahmutov/npm-install@v1 with: # By default, bahmutov/npm-install uses --frozen-lockfile - install-command: yarn + install-command: + yarn --ignore-optional --pure-lockfile --non-interactive - name: Run tests and collect coverage run: yarn test --coverage @@ -75,6 +76,9 @@ jobs: node-version: 14.x - uses: bahmutov/npm-install@v1 + with: + install-command: + yarn --ignore-optional --pure-lockfile --non-interactive - name: Queue in release turnstile id: turnstyle diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 000000000..bc28b66a8 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,40 @@ +name: 'End-to-End Tests' +on: + pull_request: + types: [opened, synchronize] + push: + branches: + - develop + - stable + - ci/* +jobs: + run-cypress: + runs-on: ubuntu-20.04 + container: cypress/browsers:node12.13.0-chrome78-ff70 + strategy: + # when one test fails, DO NOT cancel the other + # containers, because this will kill Cypress processes + # leaving the Dashboard hanging ... + # https://github.com/cypress-io/github-action/issues/48 + fail-fast: false + matrix: + containers: [1] + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v1 + with: + node-version: 14.x + + - uses: bahmutov/npm-install@v1 + with: + install-command: yarn --pure-lockfile --non-interactive + + - uses: cypress-io/github-action@v2 + with: + record: false # todo: true + parallel: false # todo: true + config-file: packages/e2e/cypress.json + # spec: packages/e2e/integration/**/*.ts + env: + CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} diff --git a/package.json b/package.json index d8a1147d4..56e48a6ee 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "scripts": { "build": "preconstruct build", "build:docs": "yarn build && yarn workspace docs build", + "serve:docs": "yarn build:docs && yarn workspace docs serve", "dev:docs": "yarn workspace docs start", "clean": "lerna run clean && rimraf packages/*/{dist,rts2_cache*}", "format": "prettier --write \"**/*.{ts,js,json}\" \"**/*.md\" \"**/*.mdx\"", @@ -66,6 +67,7 @@ "react-test-renderer": "^17.0.2", "rimraf": "^3.0.2", "ts-jest": "^26.5.5", + "ts-toolbelt": "^9.6.0", "typecov": "^0.2.3", "typescript": "^4" }, @@ -77,7 +79,8 @@ "preconstruct": { "packages": [ "packages/*", - "!packages/docs" + "!packages/docs", + "!packages/e2e" ] }, "name": "@theme-ui/monorepo" diff --git a/packages/docs/src/components/layout.js b/packages/docs/src/components/layout.js index 9c3543895..cbfb3a123 100644 --- a/packages/docs/src/components/layout.js +++ b/packages/docs/src/components/layout.js @@ -52,11 +52,8 @@ export default function DocsLayout(props) { const showNav = !props.pageContext?.frontmatter?.hidenav - const cycleMode = (e) => { - const i = modes.indexOf(mode) - const next = modes[(i + 1) % modes.length] - setMode(next) - } + const nextColorMode = modes[(modes.indexOf(mode) + 1) % modes.length] + return ( @@ -95,11 +92,12 @@ export default function DocsLayout(props) { GitHub diff --git a/packages/e2e/cypress.json b/packages/e2e/cypress.json new file mode 100644 index 000000000..cd4b7e67e --- /dev/null +++ b/packages/e2e/cypress.json @@ -0,0 +1,15 @@ +{ + "baseUrl": "http://localhost:9000", + "pluginsFile": "plugins.js", + "supportFile": "support.ts", + "screenshotsFolder": "screenshots", + "videosFolder": "videos", + "downloadsFolder": "downloads", + "fixturesFolder": "fixtures", + "integrationFolder": "integration", + "testFiles": "**/*.*", + "retries": { + "runMode": 1, + "openMode": 3 + } +} diff --git a/packages/e2e/integration/docs-color-modes.ts b/packages/e2e/integration/docs-color-modes.ts new file mode 100644 index 000000000..f95d8aa10 --- /dev/null +++ b/packages/e2e/integration/docs-color-modes.ts @@ -0,0 +1,97 @@ +const visit = ({ + preferredColorScheme, +}: { + preferredColorScheme: 'dark' | 'light' | null +}) => + cy.visit('/', { + onBeforeLoad(win) { + const _matchMedia = win.matchMedia + win.matchMedia = (query: string) => { + if (query.includes('prefers-color-scheme:')) { + const queried = query.match(/\(prefers-color-scheme:\s*(.+)\s*\)/) + const scheme = queried?.[1] + return { + matches: preferredColorScheme === scheme, + media: query, + } as MediaQueryList + } + + return _matchMedia(query) + } + }, + }) + +const colorModeSwitch = () => cy.findByLabelText(/Change color mode to \w+/) + +const colorModeSwitchByText = (...args: Parameters) => + colorModeSwitch() + .parent({ log: false }) + .findByText(...args) + +const removeGraph = () => + cy + .get('svg', { log: false }) + .then((graph) => graph.remove()) + .log('removed graph') + +const screenshot = (message?: string) => { + removeGraph() + cy.percySnapshot(message) +} + +describe('docs color modes', () => { + it('color mode is changed, loaded from local storage on reload and changed again', () => { + visit({ preferredColorScheme: 'light' }) + + colorModeSwitch().invoke('text').should('eq', 'Light') + + // no idea why calling click() just once here doesn't work + colorModeSwitch().click().click() + + colorModeSwitch() + .parent({ log: false }) + .findByText('Dark', { timeout: 6000 }) + colorModeSwitch().click() + + screenshot() + + colorModeSwitchByText('Deep') + colorModeSwitch().click() + + colorModeSwitchByText('Swiss') + colorModeSwitch().click() + + colorModeSwitchByText('Light') + colorModeSwitch().click() + colorModeSwitch().click() + + colorModeSwitchByText('Deep') + + cy.reload() + + colorModeSwitchByText('Deep') + + visit({ preferredColorScheme: 'light' }) + + colorModeSwitchByText('Deep') + + screenshot('"deep" loaded from localStorage') + + colorModeSwitch().click() + colorModeSwitchByText('Swiss') + }) + + it('visited with preferred color scheme "light" matches snapshot', () => { + visit({ preferredColorScheme: 'light' }) + colorModeSwitchByText('Light') + screenshot("preferred 'light") + }) + + it('visited with preferred color scheme "dark" matches snapshot', () => { + visit({ preferredColorScheme: 'dark' }) + colorModeSwitchByText('Dark') + screenshot("preferred 'dark'") + }) +}) + +export {} diff --git a/packages/e2e/package.json b/packages/e2e/package.json new file mode 100644 index 000000000..9e55774e3 --- /dev/null +++ b/packages/e2e/package.json @@ -0,0 +1,18 @@ +{ + "name": "e2e", + "private": true, + "version": "0.10.0", + "description": "Cypress tests ran against Theme UI docs and examples", + "scripts": { + "open": "cypress open", + "start": "percy exec -- cypress run" + }, + "optionalDependencies": { + "@bahmutov/cypress-esbuild-preprocessor": "^2.1.0", + "@percy/cypress": "^3.1.0", + "@percy/cli": "^1.0.0-beta.54", + "@testing-library/cypress": "^7.0.6", + "cypress": "7.5.0", + "esbuild": "^0.12.9" + } +} diff --git a/packages/e2e/plugins.js b/packages/e2e/plugins.js new file mode 100644 index 000000000..33cad5271 --- /dev/null +++ b/packages/e2e/plugins.js @@ -0,0 +1,19 @@ +// *********************************************************** +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +const esbuildPreprocessor = require('@bahmutov/cypress-esbuild-preprocessor') + +module.exports = (on, config) => { + on( + 'file:preprocessor', + esbuildPreprocessor({ + // any ESBuild options here + // https://esbuild.github.io/api/ + }) + ) +} diff --git a/packages/e2e/support.ts b/packages/e2e/support.ts new file mode 100644 index 000000000..100b89052 --- /dev/null +++ b/packages/e2e/support.ts @@ -0,0 +1,32 @@ +/// +import * as toolbelt from 'ts-toolbelt' + +// Workaround for @testing-library/dom problem. +// We should be able remove it in the future. +if (typeof global === 'undefined') { + Object.assign(window, { global: window }) +} + +require('@testing-library/cypress/add-commands') +require('@percy/cypress') +const { default: userEvent } = + require('@testing-library/user-event') as typeof import('@testing-library/user-event') + +declare global { + namespace Cypress { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + interface Chainable extends Chainables {} + } +} + +export {} + +const commands = {} + +type Chainables = { + [K in keyof T]: T[K] extends (...args: any[]) => any + ? ( + ...args: toolbelt.List.Tail> + ) => Cypress.Chainable> + : never +} diff --git a/packages/e2e/tsconfig.json b/packages/e2e/tsconfig.json new file mode 100644 index 000000000..94a21a073 --- /dev/null +++ b/packages/e2e/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["cypress", "node", "@percy/cypress", "@testing-library/cypress"] + }, + "files": [], + "include": [ + "../../node_modules/cypress", + "../../node_modules/@testing-library/cypress", + "../../node_modules/@percy/cypress", + "./integration/**/*.ts", + "./support.ts", + "./plugins.js" +, "integration/docs-color-modes.ts" ], + "exclude": ["../../node_modules/@types/jest"] +} diff --git a/yarn.lock b/yarn.lock index 3dc38f86a..f8c7245a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1527,6 +1527,13 @@ "@babel/helper-validator-identifier" "^7.14.5" to-fast-properties "^2.0.0" +"@bahmutov/cypress-esbuild-preprocessor@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@bahmutov/cypress-esbuild-preprocessor/-/cypress-esbuild-preprocessor-2.1.0.tgz#d57f390f48a7ca21868cd1b25f24bd51278df28e" + integrity sha512-hxkXYexf9EWXYsrnqM5YQt4SfLitYwA2w7ITCmyLfqQrqkhRj5EbMf2ds99nx+AxFEot54oinDfbKnTNV1Ov7Q== + dependencies: + debug "4.3.1" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1577,6 +1584,50 @@ ts-node "^8.0.2" url-join "^4.0.0" +"@cypress/listr-verbose-renderer@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" + integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +"@cypress/request@^2.88.5": + version "2.88.5" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" + integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== + dependencies: + debug "^3.1.0" + lodash.once "^4.1.1" + "@emotion/babel-plugin@^11.3.0": version "11.3.0" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz#3a16850ba04d8d9651f07f3fb674b3436a4fb9d7" @@ -2918,6 +2969,72 @@ node-gyp "^7.1.0" read-package-json-fast "^2.0.1" +"@oclif/command@^1.5.20", "@oclif/command@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@oclif/command/-/command-1.8.0.tgz#c1a499b10d26e9d1a611190a81005589accbb339" + integrity sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw== + dependencies: + "@oclif/config" "^1.15.1" + "@oclif/errors" "^1.3.3" + "@oclif/parser" "^3.8.3" + "@oclif/plugin-help" "^3" + debug "^4.1.1" + semver "^7.3.2" + +"@oclif/config@^1.15.1", "@oclif/config@^1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@oclif/config/-/config-1.17.0.tgz#ba8639118633102a7e481760c50054623d09fcab" + integrity sha512-Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA== + dependencies: + "@oclif/errors" "^1.3.3" + "@oclif/parser" "^3.8.0" + debug "^4.1.1" + globby "^11.0.1" + is-wsl "^2.1.1" + tslib "^2.0.0" + +"@oclif/errors@^1.2.2", "@oclif/errors@^1.3.3": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@oclif/errors/-/errors-1.3.4.tgz#a96f94536b4e25caa72eff47e8b3ed04f6995f55" + integrity sha512-pJKXyEqwdfRTUdM8n5FIHiQQHg5ETM0Wlso8bF9GodczO40mF5Z3HufnYWJE7z8sGKxOeJCdbAVZbS8Y+d5GCw== + dependencies: + clean-stack "^3.0.0" + fs-extra "^8.1" + indent-string "^4.0.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +"@oclif/linewrap@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@oclif/linewrap/-/linewrap-1.0.0.tgz#aedcb64b479d4db7be24196384897b5000901d91" + integrity sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw== + +"@oclif/parser@^3.8.0", "@oclif/parser@^3.8.3": + version "3.8.5" + resolved "https://registry.yarnpkg.com/@oclif/parser/-/parser-3.8.5.tgz#c5161766a1efca7343e1f25d769efbefe09f639b" + integrity sha512-yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg== + dependencies: + "@oclif/errors" "^1.2.2" + "@oclif/linewrap" "^1.0.0" + chalk "^2.4.2" + tslib "^1.9.3" + +"@oclif/plugin-help@^3", "@oclif/plugin-help@^3.2.0": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-3.2.2.tgz#063ee08cee556573a5198fbdfdaa32796deba0ed" + integrity sha512-SPZ8U8PBYK0n4srFjCLedk0jWU4QlxgEYLCXIBShJgOwPhTTQknkUlsEwaMIevvCU4iCQZhfMX+D8Pz5GZjFgA== + dependencies: + "@oclif/command" "^1.5.20" + "@oclif/config" "^1.15.1" + "@oclif/errors" "^1.2.2" + chalk "^4.1.0" + indent-string "^4.0.0" + lodash.template "^4.4.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" + widest-line "^3.1.0" + wrap-ansi "^4.0.0" + "@octokit/auth-token@^2.4.4": version "2.4.5" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz#568ccfb8cb46f36441fac094ce34f7a875b197f3" @@ -3077,6 +3194,149 @@ dependencies: "@octokit/openapi-types" "^6.0.0" +"@percy/cli-build@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli-build/-/cli-build-1.0.0-beta.54.tgz#81e66f0fcae572af5f7cca9c668e5764a63e5e09" + integrity sha512-FqxaZsTGuX7GUQp8HwLxqL+tvz/aG9tw27FUoA1bc3anrF52BdzWdq8jh6XWUExR5ZxjgJirboRFB0rguwqk7Q== + dependencies: + "@percy/cli-command" "^1.0.0-beta.54" + "@percy/client" "^1.0.0-beta.54" + "@percy/env" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + +"@percy/cli-command@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli-command/-/cli-command-1.0.0-beta.54.tgz#3aa6ad1416cd30502d08fa1bcd92952d293f4bef" + integrity sha512-8Uotirz0aHOPdgpj8acjxCage7PjsnkmCzxg3p6j6PtJ6F9zeStFy90X9Kv40ZnCAcKe9aXNWaFW9WDDXOnrQQ== + dependencies: + "@oclif/command" "^1.8.0" + "@oclif/config" "^1.17.0" + "@oclif/plugin-help" "^3.2.0" + "@percy/config" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + +"@percy/cli-config@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli-config/-/cli-config-1.0.0-beta.54.tgz#5f64709a5f5bd53220e26b88de1356d96567129d" + integrity sha512-0rqBkhlTVmbMbBsis8vn5hYyEuH1wsfxVxG9Ozz35VCky6yxjvKfF38arjPo7scxdblvg6NbB8MQry3z1RgDjw== + dependencies: + "@oclif/command" "^1.8.0" + "@oclif/config" "^1.17.0" + "@percy/config" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + +"@percy/cli-exec@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli-exec/-/cli-exec-1.0.0-beta.54.tgz#a39cd980df7c62042518dd169a370e2f1a28b775" + integrity sha512-WBvD2AjrPvvhJDkuPwkSs6PLxmrCzNJ/XtU92aJl9CjT7wd6BLTxpXm7P3KfH2i29lyoRsPG+UXGX8rEesD19g== + dependencies: + "@percy/cli-command" "^1.0.0-beta.54" + "@percy/core" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + cross-spawn "^7.0.3" + which "^2.0.2" + +"@percy/cli-snapshot@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli-snapshot/-/cli-snapshot-1.0.0-beta.54.tgz#15edce12dfdedbcb63b09276fc2ae2b43b7b4358" + integrity sha512-jQ22ufOk8a8yMlu9rdIfPnzdXPeYOcCoFgxG9lLCMMD2AEdfZJPynD4RtFOBr7Nw0fY9sEExPTqQ+2BTJk9Kpg== + dependencies: + "@percy/cli-command" "^1.0.0-beta.54" + "@percy/config" "^1.0.0-beta.54" + "@percy/core" "^1.0.0-beta.54" + "@percy/dom" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + globby "^11.0.1" + serve-handler "^6.1.3" + yaml "^1.10.0" + +"@percy/cli-upload@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli-upload/-/cli-upload-1.0.0-beta.54.tgz#3aa16cda92a8d9f4472069c969140fead63ab354" + integrity sha512-zpkll11pEcWGrvvvctLxvwTYnXrHPvYpcAXdhF5e0Wg/9sEs4z0N9EaUz9VblHU0FrrK73Qc7yN6Z25qCxKrNQ== + dependencies: + "@percy/cli-command" "^1.0.0-beta.54" + "@percy/client" "^1.0.0-beta.54" + "@percy/config" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + globby "^11.0.1" + image-size "^1.0.0" + +"@percy/cli@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/cli/-/cli-1.0.0-beta.54.tgz#5268a6833550e7894a3b073ed7eb861ae087592e" + integrity sha512-dhPKSuAS7z0AqNC9Ch9hjZOuO9UlM5LC0ZxwnPkLi/uw6+JiPKsRSTw1wcQqYZ7nlggQ//GhNZSw8tqYjewc4w== + dependencies: + "@oclif/plugin-help" "^3.2.0" + "@percy/cli-build" "^1.0.0-beta.54" + "@percy/cli-config" "^1.0.0-beta.54" + "@percy/cli-exec" "^1.0.0-beta.54" + "@percy/cli-snapshot" "^1.0.0-beta.54" + "@percy/cli-upload" "^1.0.0-beta.54" + +"@percy/client@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/client/-/client-1.0.0-beta.54.tgz#aae1efbc87754c9968581b15997b1d7e7d5ad33d" + integrity sha512-VU9RmlQRI5x1v+N6v/Ls/ZbXEdiqEMkeQmJg5EUs4Yi836BInVpITnGMJsWku3PZnCJjrjif6TAYf0wMPAqbxQ== + dependencies: + "@percy/env" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + +"@percy/config@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/config/-/config-1.0.0-beta.54.tgz#9939fde423c4dbd5e527ea975e3d4fdf5ff6aa56" + integrity sha512-uKF44IuuXCK8yOYLhP4WBgqI46WCMcVNyJNHxRUkZN1gV+sonKF21GXrFMdPywH2GEMS9hd/UhL7biqCbHs9pQ== + dependencies: + "@percy/logger" "^1.0.0-beta.54" + ajv "^8.0.5" + cosmiconfig "^7.0.0" + yaml "^1.10.0" + +"@percy/core@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/core/-/core-1.0.0-beta.54.tgz#914803f4dcbc0a53ba4141349894e27294597f6d" + integrity sha512-q2UbzMvSew28V3hO6gEIaxTHMzUoxi/ghdsQt+ZtRATGnjJ0SdPtwac3E9q1ltmkv8Tede8GRCmSuZ+QKi8h1A== + dependencies: + "@percy/client" "^1.0.0-beta.54" + "@percy/config" "^1.0.0-beta.54" + "@percy/dom" "^1.0.0-beta.54" + "@percy/logger" "^1.0.0-beta.54" + cross-spawn "^7.0.3" + extract-zip "^2.0.1" + rimraf "^3.0.2" + ws "^7.4.1" + +"@percy/cypress@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@percy/cypress/-/cypress-3.1.0.tgz#19533772739b35759c30e3edd3070922f6ea6b6d" + integrity sha512-x4RPo7vMEGA6hmLbQIFwawZZlmiZknhSqPyzckxXgj8VyoW17QQOINxZo/DZTfV0UoUVOzNoHNrJcV3XJnN4FQ== + dependencies: + "@percy/sdk-utils" "^1.0.0-beta.44" + +"@percy/dom@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/dom/-/dom-1.0.0-beta.54.tgz#8c1bc3dec4c229867ff67cc6a37371a7b8e01a9e" + integrity sha512-RQ6m98ytrK8i//ZWloU2B5doGXJ72gZEh6GwtxwwLGhjkYX7wY7MJjluJr3WrViQZ4z2frlb0Onqi5VEGXuXGg== + +"@percy/env@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/env/-/env-1.0.0-beta.54.tgz#16aca62ce762974a884df57217c60f036ddb25e9" + integrity sha512-bccw09z+/9H5Q7jzeGAo/c83uwJ4iB8AEH5eXZmVUwC2qDrTb7rrCqBqmPsMTwW/Zq+jKGFIBGJ6DUeIma3cig== + dependencies: + dotenv "^10.0.0" + +"@percy/logger@^1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/logger/-/logger-1.0.0-beta.54.tgz#47fec66c1e0c38cce1c1f612741e69b7ce865f81" + integrity sha512-A8ElkvS2UQ8a6ac5mb7vvQnLU5FRsznCcex+s8csaOhQxp+Wm5hkPWGkZfKsG3W4V7RIDI1FCuXLVwW3czyB0g== + +"@percy/sdk-utils@^1.0.0-beta.44": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.0.0-beta.54.tgz#e58762d1dac0625a2b8cf74e2c50fa345bfd6423" + integrity sha512-t5T5tsgLThw+Yz11tZ1oOTCc959hQioXb95PpqHg+SM2GFRdEjg6jlkJJwQJtKesfmUNDSQHhQQ7w1Kcr9eOmQ== + dependencies: + "@percy/logger" "^1.0.0-beta.54" + "@pieh/friendly-errors-webpack-plugin@1.7.0-chalk-2": version "1.7.0-chalk-2" resolved "https://registry.yarnpkg.com/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz#2e9da9d3ade9d18d013333eb408c457d04eabac0" @@ -3386,17 +3646,25 @@ dependencies: defer-to-connect "^1.0.1" +"@testing-library/cypress@^7.0.6": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@testing-library/cypress/-/cypress-7.0.6.tgz#5445dac4f4852c26901c356e9d3a69371bd20ccf" + integrity sha512-atnjqlkEt6spU4Mv7evvpA8fMXeRw7AN2uTKOR1dP6WBvBixVwAYMZY+1fMOaZULWAj9vGLCXXvmw++u3TxuCQ== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + "@testing-library/dom@^7.28.1": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.29.0.tgz#60b18065bab50a5cde21fe80275a47a43024d9cc" - integrity sha512-0hhuJSmw/zLc6ewR9cVm84TehuTd7tbqBX9pRNSp8znJ9gTmSgesdbiGZtt8R6dL+2rgaPFp9Yjr7IU1HWm49w== + version "7.31.2" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.31.2.tgz#df361db38f5212b88555068ab8119f5d841a8c4a" + integrity sha512-3UqjCpey6HiTZT92vODYLPxTBWlM8ZOOjr3LX5F37/VRipW2M1kX6I/Cm4VXzteZqfGfagg8yXywpcOgQBlNsQ== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" "@types/aria-query" "^4.2.0" aria-query "^4.2.2" chalk "^4.1.0" - dom-accessibility-api "^0.5.4" + dom-accessibility-api "^0.5.6" lz-string "^1.4.4" pretty-format "^26.6.2" @@ -3408,6 +3676,13 @@ "@babel/runtime" "^7.12.5" "@testing-library/dom" "^7.28.1" +"@testing-library/user-event@^13.1.9": + version "13.1.9" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.1.9.tgz#29e49a42659ac3c1023565ff56819e0153a82e99" + integrity sha512-NZr0zL2TMOs2qk+dNlqrAdbaRW5dAmYwd1yuQ4r7HpkVEOj0MWuUjDWwKhcLd/atdBy8ZSMHSKp+kXSQe47ezg== + dependencies: + "@babel/runtime" "^7.12.5" + "@tokenizer/token@^0.1.1": version "0.1.1" resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3" @@ -3714,6 +3989,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g== +"@types/node@^14.14.31": + version "14.17.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.4.tgz#218712242446fc868d0e007af29a4408c7765bc0" + integrity sha512-8kQ3+wKGRNN0ghtEn7EGps/B8CzuBz1nXZEIGGLP2GnwbqYn4dbTs7k+VKLTq1HvZLRCIDtN3Snx1Ege8B7L5A== + "@types/node@^8.5.7": version "8.10.66" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" @@ -3827,6 +4107,16 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== +"@types/sinonjs__fake-timers@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae" + integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg== + +"@types/sizzle@^2.3.2": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + "@types/stack-utils@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" @@ -3894,6 +4184,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yauzl@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" + integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + dependencies: + "@types/node" "*" + "@types/yoga-layout@1.9.2": version "1.9.2" resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.2.tgz#efaf9e991a7390dc081a0b679185979a83a9639a" @@ -4307,6 +4604,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.5: + version "8.6.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" + integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + all-contributors-cli@6.19.0: version "6.19.0" resolved "https://registry.yarnpkg.com/all-contributors-cli/-/all-contributors-cli-6.19.0.tgz#7e4550973afede2476b62bd159fee6d72a1ad802" @@ -4447,7 +4754,7 @@ aproba@^2.0.0: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -arch@^2.1.1: +arch@^2.1.1, arch@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== @@ -4706,7 +5013,7 @@ async@^2.6.2: dependencies: lodash "^4.17.14" -async@^3.0.1: +async@^3.0.1, async@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== @@ -5156,6 +5463,11 @@ bl@^4.0.0: inherits "^2.0.4" readable-stream "^3.4.0" +blob-util@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + bluebird@^3.0.5, bluebird@^3.5.0, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -5401,6 +5713,11 @@ buble@0.19.6: regexpu-core "^4.2.0" vlq "^1.0.0" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -5598,6 +5915,11 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + call-bind@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" @@ -5853,6 +6175,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= + cheerio@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.18.0.tgz#4e1c06377e725b740e996e0dfec353863de677fa" @@ -5947,6 +6274,11 @@ ci-info@2.0.0, ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -6002,11 +6334,25 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +clean-stack@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" + integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== + dependencies: + escape-string-regexp "4.0.0" + cli-boxes@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -6021,6 +6367,16 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + cli-table@^0.3.1: version "0.3.6" resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz#e9d6aa859c7fe636981fd3787378c2a20bce92fc" @@ -6273,6 +6629,11 @@ colors@1.0.3: resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= +colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + colors@~0.6.0-1: version "0.6.2" resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" @@ -6352,7 +6713,7 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^5.0.0: +commander@^5.0.0, commander@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== @@ -6527,6 +6888,11 @@ contains-path@^0.1.0: resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -7233,6 +7599,51 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +cypress@7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-7.5.0.tgz#72dd342e3b45f54b63cd46819f38d126feff5954" + integrity sha512-tw3v6nrTJoEzT37+Nf6RK+DvdTfhMb8EJYskZx7oskZ+J9qQ1QHWA4dH8Eoe/Mr/wE47o+7PK6O9tgqhRy6IHg== + dependencies: + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/node" "^14.14.31" + "@types/sinonjs__fake-timers" "^6.0.2" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-table3 "~0.6.0" + commander "^5.1.0" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "4.3.2" + eventemitter2 "^6.4.3" + execa "4.1.0" + executable "^4.1.1" + extract-zip "2.0.1" + fs-extra "^9.1.0" + getos "^3.2.1" + is-ci "^3.0.0" + is-installed-globally "~0.4.0" + lazy-ass "^1.6.0" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.5" + ospath "^1.2.2" + pretty-bytes "^5.6.0" + ramda "~0.27.1" + 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" + d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -7277,6 +7688,11 @@ dataloader@^1.4.0: resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" integrity sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw== +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + date-fns@^2.14.0: version "2.16.1" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b" @@ -7287,6 +7703,11 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== +dayjs@^1.10.4: + version "1.10.5" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.5.tgz#5600df4548fc2453b3f163ebb2abbe965ccfb986" + integrity sha512-BUFis41ikLz+65iH6LHQCDm4YPMj5r1YFLdupPIyM4SGcXMmtiLQ7U37i+hGS8urIuqe7I/ou3IS1jVc4nbN4g== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -7294,13 +7715,20 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6. dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: +debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" +debug@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -7675,10 +8103,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" - integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== +dom-accessibility-api@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" + integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== dom-converter@^0.2: version "0.2.0" @@ -7817,6 +8245,11 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + dotenv@^8.0.0, dotenv@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" @@ -8152,6 +8585,11 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" +esbuild@^0.12.9: + version "0.12.9" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.9.tgz#bed4e7087c286cd81d975631f77d47feb1660070" + integrity sha512-MWRhAbMOJ9RJygCrt778rz/qNYgA4ZVj6aXnNPxFjs7PmIpb0fuB9Gmg5uWrr6n++XKwwm/RmSz6RR5JL2Ocsw== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -8172,16 +8610,16 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^1.14.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" @@ -8483,6 +8921,11 @@ event-source-polyfill@^1.0.15: resolved "https://registry.yarnpkg.com/event-source-polyfill/-/event-source-polyfill-1.0.21.tgz#6b11b1299517a48e04540748b7c23f5a7620155b" integrity sha512-Mz8LO8hPgg2X6VcSXmq7gvgFU3kUnTZb4zU3tTYDx8cJHRXP15tjdpGUiP2IUUwOqAGZ1TEfe+KagjMXfFgwLA== +eventemitter2@^6.4.3: + version "6.4.4" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" + integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw== + eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -8525,6 +8968,21 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== +execa@4.1.0, execa@^4.0.0, execa@^4.0.2, execa@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -8554,21 +9012,6 @@ execa@^3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^4.0.0, execa@^4.0.2, execa@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" @@ -8584,6 +9027,18 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +executable@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -8726,6 +9181,17 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-zip@2.0.1, extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -8778,6 +9244,13 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-url-parser@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= + dependencies: + punycode "^1.3.2" + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -8822,6 +9295,13 @@ fbjs@^0.8.9: setimmediate "^1.0.5" ua-parser-js "^0.7.18" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + fd@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/fd/-/fd-0.0.3.tgz#b3240de86dbf5a345baae7382a07d4713566ff0c" @@ -8832,6 +9312,14 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -9114,7 +9602,7 @@ fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^8.0.0, fs-extra@^8.1.0: +fs-extra@^8.0.0, fs-extra@^8.1, fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== @@ -9815,6 +10303,13 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -9942,6 +10437,13 @@ global-dirs@^2.0.1: dependencies: ini "^1.3.5" +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -10008,6 +10510,18 @@ globby@^10.0.1: merge2 "^1.2.3" slash "^3.0.0" +globby@^11.0.1: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^11.0.2: version "11.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" @@ -10814,6 +11328,13 @@ ignore@^5.1.1, ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +image-size@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.0.tgz#58b31fe4743b1cec0a0ac26f5c914d3c5b2f0750" + integrity sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw== + dependencies: + queue "6.0.2" + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -10934,6 +11455,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.7" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" @@ -11168,6 +11694,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -11337,6 +11870,14 @@ is-installed-globally@^0.3.2: global-dirs "^2.0.1" is-path-inside "^3.0.1" +is-installed-globally@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-invalid-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" @@ -11427,6 +11968,11 @@ is-path-inside@^3.0.1: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -12298,6 +12844,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -12463,6 +13014,11 @@ latest-version@5.1.0, latest-version@^5.1.0: dependencies: package-json "^6.3.0" +lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + lerna@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/lerna/-/lerna-4.0.0.tgz#b139d685d50ea0ca1be87713a7c2f44a5b678e9e" @@ -12560,6 +13116,19 @@ listr2@^3.8.2: through "^2.3.8" wrap-ansi "^7.0.0" +listr2@^3.8.3: + version "3.10.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" + integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== + dependencies: + cli-truncate "^2.1.0" + colorette "^1.2.2" + log-update "^4.0.0" + p-map "^4.0.0" + rxjs "^6.6.7" + through "^2.3.8" + wrap-ansi "^7.0.0" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -12771,6 +13340,11 @@ lodash.omit@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + lodash.pick@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" @@ -12796,7 +13370,7 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.template@^4.5.0: +lodash.template@^4.4.0, lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== @@ -13351,6 +13925,18 @@ mime-db@1.44.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== + +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" + mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" @@ -14278,6 +14864,11 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -14377,6 +14968,11 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= + p-cancelable@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" @@ -14876,7 +15472,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-is-inside@^1.0.2: +path-is-inside@1.0.2, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= @@ -14901,6 +15497,11 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" + integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -14950,6 +15551,11 @@ pegjs@^0.10.0: resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" integrity sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0= +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + perfectionist@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/perfectionist/-/perfectionist-2.4.0.tgz#c147ad3714e126467f1764129ee72df861d47ea0" @@ -14986,7 +15592,7 @@ picomatch@^2.2.3: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -15877,6 +16483,11 @@ pretty-bytes@^5.3.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b" integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA== +pretty-bytes@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + pretty-error@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" @@ -16096,7 +16707,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: +punycode@^1.2.4, punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -16184,6 +16795,13 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -16194,6 +16812,11 @@ quick-lru@^5.1.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== +ramda@~0.27.1: + version "0.27.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" + integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -16209,6 +16832,11 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -17055,6 +17683,13 @@ replace-ext@1.0.0: resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + dependencies: + throttleit "^1.0.0" + request-promise-core@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" @@ -17112,6 +17747,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + "require-like@>= 0.1.1": version "0.1.2" resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" @@ -17214,6 +17854,14 @@ responselike@1.0.2, responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -17534,6 +18182,20 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" +serve-handler@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" + integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== + dependencies: + bytes "3.0.0" + content-disposition "0.5.2" + fast-url-parser "1.1.3" + mime-types "2.1.18" + minimatch "3.0.4" + path-is-inside "1.0.2" + path-to-regexp "2.2.1" + range-parser "1.2.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -18270,7 +18932,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0: +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -18587,6 +19249,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7" @@ -18888,6 +19557,11 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + through2@^2.0.0, through2@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -18968,7 +19642,7 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@^0.2.1: +tmp@^0.2.1, tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -19160,6 +19834,11 @@ ts-snippet@^5.0.0: dependencies: tsutils "^3.0.0" +ts-toolbelt@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz#50a25426cfed500d4a09bd1b3afb6f28879edfd5" + integrity sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w== + tsconfig-paths@^3.9.0: version "3.9.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" @@ -19185,7 +19864,7 @@ tslib@2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== -tslib@^1.10.0, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.14.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -20612,6 +21291,15 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" +wrap-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-4.0.0.tgz#b3570d7c70156159a2d42be5cc942e957f7b1131" + integrity sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg== + dependencies: + ansi-styles "^3.2.0" + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -20727,6 +21415,11 @@ ws@^7.2.3, ws@^7.3.0: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== +ws@^7.4.1: + version "7.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" + integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== + ws@~7.4.2: version "7.4.5" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" @@ -20890,6 +21583,14 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yeast@0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From bd5fe4f39371ed0d16091778291b37f21fb2abf5 Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 23:30:18 +0200 Subject: [PATCH 05/27] chore: gitignore .envrc.ps1 --- .gitignore | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 61fc950c6..9655584cd 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,9 @@ coverage .idea .vscode .envrc +.envrc.ps1 .publish-log.txt .yarn-error.log - -.vercel + +.vercel From a67216f90463cb771ef89d9aa86bb303d62f03a8 Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 23:39:28 +0200 Subject: [PATCH 06/27] ci(e2e): add PERCY_TOKEN --- .github/workflows/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index bc28b66a8..b6e31bb98 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -35,6 +35,6 @@ jobs: record: false # todo: true parallel: false # todo: true config-file: packages/e2e/cypress.json - # spec: packages/e2e/integration/**/*.ts env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} + PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} From fef3229ab86a719445107ac5b9b7b9c63f2b0f6e Mon Sep 17 00:00:00 2001 From: hasparus Date: Wed, 23 Jun 2021 23:47:26 +0200 Subject: [PATCH 07/27] chore: exclude packages/e2e from default tsconfig --- packages/e2e/tsconfig.json | 7 ++++--- tsconfig.json | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/e2e/tsconfig.json b/packages/e2e/tsconfig.json index 94a21a073..74d990481 100644 --- a/packages/e2e/tsconfig.json +++ b/packages/e2e/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../tsconfig.base.json", + "extends": "../../tsconfig.options.json", "compilerOptions": { "types": ["cypress", "node", "@percy/cypress", "@testing-library/cypress"] }, @@ -10,7 +10,8 @@ "../../node_modules/@percy/cypress", "./integration/**/*.ts", "./support.ts", - "./plugins.js" -, "integration/docs-color-modes.ts" ], + "./plugins.js", + "integration/docs-color-modes.ts" + ], "exclude": ["../../node_modules/@types/jest"] } diff --git a/tsconfig.json b/tsconfig.json index b6039a491..699b0c846 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "node_modules", "./packages/*/dist", "./packages/*/node_modules", - "./packages/*/test" + "./packages/*/test", + "./packages/e2e" ] } From f8d572b2b9712adcf85d555b9858d70aeb64f353 Mon Sep 17 00:00:00 2001 From: hasparus Date: Thu, 24 Jun 2021 00:03:30 +0200 Subject: [PATCH 08/27] ci(e2e): set working-directory --- .github/workflows/e2e.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b6e31bb98..266d9c48b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -30,11 +30,15 @@ jobs: with: install-command: yarn --pure-lockfile --non-interactive + - run: yarn build:docs + - uses: cypress-io/github-action@v2 with: record: false # todo: true parallel: false # todo: true - config-file: packages/e2e/cypress.json + working-directory: packages/e2e + start: cd ../.. && yarn workspace docs serve + wait: 'http://localhost:9000' env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} From 4b0316a03a03adb4aadf6e1e4ad159158159ab8b Mon Sep 17 00:00:00 2001 From: hasparus Date: Fri, 25 Jun 2021 11:34:35 +0200 Subject: [PATCH 09/27] ci(e2e): fix start script --- .github/workflows/e2e.yml | 4 ++-- packages/e2e/package.json | 3 ++- packages/e2e/support.ts | 2 -- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 266d9c48b..e5d543d2b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -37,8 +37,8 @@ jobs: record: false # todo: true parallel: false # todo: true working-directory: packages/e2e - start: cd ../.. && yarn workspace docs serve - wait: 'http://localhost:9000' + start: yarn serve-docs + wait-on: 'http://localhost:9000' env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} diff --git a/packages/e2e/package.json b/packages/e2e/package.json index 9e55774e3..a5995693d 100644 --- a/packages/e2e/package.json +++ b/packages/e2e/package.json @@ -5,7 +5,8 @@ "description": "Cypress tests ran against Theme UI docs and examples", "scripts": { "open": "cypress open", - "start": "percy exec -- cypress run" + "start": "percy exec -- cypress run", + "serve-docs": "cd ../.. && yarn workspace docs serve" }, "optionalDependencies": { "@bahmutov/cypress-esbuild-preprocessor": "^2.1.0", diff --git a/packages/e2e/support.ts b/packages/e2e/support.ts index 100b89052..861886d32 100644 --- a/packages/e2e/support.ts +++ b/packages/e2e/support.ts @@ -9,8 +9,6 @@ if (typeof global === 'undefined') { require('@testing-library/cypress/add-commands') require('@percy/cypress') -const { default: userEvent } = - require('@testing-library/user-event') as typeof import('@testing-library/user-event') declare global { namespace Cypress { From f6854faa276b2ad15f175b2e6f88076f5156ba79 Mon Sep 17 00:00:00 2001 From: hasparus Date: Fri, 25 Jun 2021 13:11:24 +0200 Subject: [PATCH 10/27] ci(e2e): enable Cypress recording --- .github/workflows/e2e.yml | 6 +++--- packages/e2e/cypress.json | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e5d543d2b..95f79af4f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -18,7 +18,7 @@ jobs: # https://github.com/cypress-io/github-action/issues/48 fail-fast: false matrix: - containers: [1] + containers: [1, 2] steps: - uses: actions/checkout@v2 @@ -34,8 +34,8 @@ jobs: - uses: cypress-io/github-action@v2 with: - record: false # todo: true - parallel: false # todo: true + record: true + parallel: true working-directory: packages/e2e start: yarn serve-docs wait-on: 'http://localhost:9000' diff --git a/packages/e2e/cypress.json b/packages/e2e/cypress.json index cd4b7e67e..bbc50d2f0 100644 --- a/packages/e2e/cypress.json +++ b/packages/e2e/cypress.json @@ -11,5 +11,6 @@ "retries": { "runMode": 1, "openMode": 3 - } + }, + "projectId": "fmfid1" } From e38d064ba7b23bbc1035b59f8755eea92e0d0d1e Mon Sep 17 00:00:00 2001 From: hasparus Date: Fri, 25 Jun 2021 13:20:46 +0200 Subject: [PATCH 11/27] ci(e2e): use only one container --- .github/workflows/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 95f79af4f..f31a19c6a 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -18,7 +18,7 @@ jobs: # https://github.com/cypress-io/github-action/issues/48 fail-fast: false matrix: - containers: [1, 2] + containers: [1] # todo: change to [1, 2] - there's only 1 test file now steps: - uses: actions/checkout@v2 From 44b7cd0db9bad3f21d5078c167ba7aad7101b02a Mon Sep 17 00:00:00 2001 From: hasparus Date: Fri, 25 Jun 2021 13:28:37 +0200 Subject: [PATCH 12/27] chore(ci): add GITHUB_TOKEN --- .github/workflows/e2e.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f31a19c6a..e24e30625 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -9,8 +9,8 @@ on: - ci/* jobs: run-cypress: - runs-on: ubuntu-20.04 - container: cypress/browsers:node12.13.0-chrome78-ff70 + runs-on: ubuntu-latest + # container: cypress/browsers:node12.13.0-chrome78-ff70 strategy: # when one test fails, DO NOT cancel the other # containers, because this will kill Cypress processes @@ -39,6 +39,12 @@ jobs: working-directory: packages/e2e start: yarn serve-docs wait-on: 'http://localhost:9000' + tag: ${{ github.event_name }} env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMMIT_INFO_MESSAGE: + ${{ github.event.pull_request.title && format('{PR {0} - {1}}', + github.event.pull_request.number, github.event.pull_request.title) + }} From 53ab8f2b4d21c41f4c6dfbc8edb7b1479ee07d77 Mon Sep 17 00:00:00 2001 From: hasparus Date: Fri, 25 Jun 2021 17:46:28 +0200 Subject: [PATCH 13/27] chore(ci): stop running push events on ci/ PRs --- .github/workflows/e2e.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e24e30625..a66e94801 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -6,7 +6,6 @@ on: branches: - develop - stable - - ci/* jobs: run-cypress: runs-on: ubuntu-latest From 59bd858f1296aaab60d4af301129d22303220736 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:07:12 +0200 Subject: [PATCH 14/27] chore(ci): use `start` command to run Percy screenshots --- .github/workflows/e2e.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a66e94801..74d9784b1 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -36,6 +36,7 @@ jobs: record: true parallel: true working-directory: packages/e2e + command: yarn start start: yarn serve-docs wait-on: 'http://localhost:9000' tag: ${{ github.event_name }} From e12c71368b8ded5d8d65151c6693daa9cf3b37bd Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:13:58 +0200 Subject: [PATCH 15/27] chore(ci): fix format string --- .github/workflows/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 74d9784b1..d66ceff0e 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -45,6 +45,6 @@ jobs: PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} COMMIT_INFO_MESSAGE: - ${{ github.event.pull_request.title && format('{PR {0} - {1}}', + ${{ github.event.pull_request.title && format('PR {0} - {1}', github.event.pull_request.number, github.event.pull_request.title) }} From 8bb4efeedb03d7c39e23f7e06986926bd269b743 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:18:46 +0200 Subject: [PATCH 16/27] chore(ci): comment out ci/ branch trigger --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbbb07f87..078406d09 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: branches: - develop - stable - - ci/* + # - ci/* # uncomment this when workin on CI without PR jobs: build: From f7fa9d1f1e94d31e113a2a5dfb6fff3742e08790 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:21:02 +0200 Subject: [PATCH 17/27] chore(ci): provide --record flag --- .github/workflows/e2e.yml | 2 +- packages/e2e/package.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d66ceff0e..a860875f9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -36,7 +36,7 @@ jobs: record: true parallel: true working-directory: packages/e2e - command: yarn start + command: yarn record start: yarn serve-docs wait-on: 'http://localhost:9000' tag: ${{ github.event_name }} diff --git a/packages/e2e/package.json b/packages/e2e/package.json index a5995693d..76ac7c0ca 100644 --- a/packages/e2e/package.json +++ b/packages/e2e/package.json @@ -6,6 +6,7 @@ "scripts": { "open": "cypress open", "start": "percy exec -- cypress run", + "record": "percy exec -- cypress run --record", "serve-docs": "cd ../.. && yarn workspace docs serve" }, "optionalDependencies": { From 935121ffddf8c102f32937c2c75c51827072cdd5 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:27:12 +0200 Subject: [PATCH 18/27] docs(readme): add Percy badge --- packages/theme-ui/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/theme-ui/README.md b/packages/theme-ui/README.md index ab35b9f16..7fea9234a 100644 --- a/packages/theme-ui/README.md +++ b/packages/theme-ui/README.md @@ -59,6 +59,9 @@ Join our Discord community + + This project is using Percy.io for visual regression testing. +

\ @@ -132,8 +135,7 @@ custom color palettes, typographic scales, fonts, and more. Read more about // example theme.js export default { fonts: { - body: - 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif', + body: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif', heading: '"Avenir Next", sans-serif', monospace: 'Menlo, monospace', }, From 88e2fff7c07c8e15c6303335c5d1e6df84de6d66 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:28:03 +0200 Subject: [PATCH 19/27] docs(readme): show build status from `stable` branch in the readme --- packages/theme-ui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/theme-ui/README.md b/packages/theme-ui/README.md index 7fea9234a..b1503a93a 100644 --- a/packages/theme-ui/README.md +++ b/packages/theme-ui/README.md @@ -29,7 +29,7 @@
- Build Status + Build Status Contributors From cb94e1ab8176ef63a08c38dbc12c29093615a701 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:29:27 +0200 Subject: [PATCH 20/27] chore(ci): remove continue-on-error from release step, as it won't affect the readme anymore --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 078406d09..4703ebaef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,7 +89,6 @@ jobs: - name: Create release if: steps.turnstyle.outcome == 'success' - continue-on-error: true env: GITHUB_TOKEN: ${{ secrets.AUTO_RELEASE_GH_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} From 1693bf6e39bc6c708e30d132d0d7d9e2df30dc40 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:36:27 +0200 Subject: [PATCH 21/27] docs(readme): add cypress badge --- packages/theme-ui/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/theme-ui/README.md b/packages/theme-ui/README.md index b1503a93a..13aeaf135 100644 --- a/packages/theme-ui/README.md +++ b/packages/theme-ui/README.md @@ -28,9 +28,6 @@ npm (develop)
- - Build Status - Contributors @@ -59,6 +56,13 @@ Join our Discord community +
+ + Build Status + + + This project is using Cypress for end-to-end tests. + This project is using Percy.io for visual regression testing. From d60720d92dc60373e37d60b0568543f101f629a7 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 22:51:23 +0200 Subject: [PATCH 22/27] chore(ci): remove Discord badge before screenshot in tests --- packages/e2e/integration/docs-color-modes.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/e2e/integration/docs-color-modes.ts b/packages/e2e/integration/docs-color-modes.ts index f95d8aa10..1ed90be70 100644 --- a/packages/e2e/integration/docs-color-modes.ts +++ b/packages/e2e/integration/docs-color-modes.ts @@ -28,14 +28,19 @@ const colorModeSwitchByText = (...args: Parameters) => .parent({ log: false }) .findByText(...args) -const removeGraph = () => - cy - .get('svg', { log: false }) +const removeDynamicElements = () => { + cy.get('svg', { log: false }) .then((graph) => graph.remove()) .log('removed graph') + // tests failing because somebody became online on Discord aren't funny... + cy.findByAltText('Join our Discord community') + .then((img) => img.remove()) + .log('removed Discord badge') +} + const screenshot = (message?: string) => { - removeGraph() + removeDynamicElements() cy.percySnapshot(message) } From 095d02e4b3cfc4b8b58862710c503577fe252c05 Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 23:02:39 +0200 Subject: [PATCH 23/27] chore(e2e): change Percy link to new URL --- packages/theme-ui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/theme-ui/README.md b/packages/theme-ui/README.md index 13aeaf135..a13f180c2 100644 --- a/packages/theme-ui/README.md +++ b/packages/theme-ui/README.md @@ -63,7 +63,7 @@ This project is using Cypress for end-to-end tests. - + This project is using Percy.io for visual regression testing.

From 8c17fdc1282c96249d9a55d06a100421267ac58c Mon Sep 17 00:00:00 2001 From: hasparus Date: Mon, 28 Jun 2021 23:19:21 +0200 Subject: [PATCH 24/27] docs(index): move readme badges *on index page* to a seperate component, and update them to match readme --- packages/docs/src/components/readme-badges.js | 93 +++++++++++++++++++ packages/docs/src/pages/index.mdx | 36 +++---- packages/e2e/integration/docs-color-modes.ts | 6 +- 3 files changed, 111 insertions(+), 24 deletions(-) create mode 100644 packages/docs/src/components/readme-badges.js diff --git a/packages/docs/src/components/readme-badges.js b/packages/docs/src/components/readme-badges.js new file mode 100644 index 000000000..6bce8a013 --- /dev/null +++ b/packages/docs/src/components/readme-badges.js @@ -0,0 +1,93 @@ +/** @jsx jsx */ +import { jsx } from 'theme-ui' + +// Straight-up copied from README.md +// We may extract it from that Markdown file in a fancy way some day. Maybe... +export default function ReadmeBadges() { + return ( +
a': { height: '20px' }, + }}> + + GitHub + + + GitHub Stars + + + npm (latest) + + + npm (develop) + + + Contributors + + + Activity + + + Size + + + Tree Shaking + + + MIT license + + + Join our Discord community + + + Build Status + + + This project is using Cypress for end-to-end tests. + + + This project is using Percy.io for visual regression testing. + +
+ ) +} diff --git a/packages/docs/src/pages/index.mdx b/packages/docs/src/pages/index.mdx index cdeb281c5..629732164 100644 --- a/packages/docs/src/pages/index.mdx +++ b/packages/docs/src/pages/index.mdx @@ -1,7 +1,10 @@ import { Container, Box, Button } from 'theme-ui' + import { Banner, Tiles } from '..' -import Testimonials from './testimonials' import Graph from '../components/graph' +import ReadmeBadges from '../components/readme-badges' + +import Testimonials from './testimonials' @@ -9,9 +12,10 @@ import Graph from '../components/graph' # Theme UI: The Design Graph Framework -Theme UI is a library for creating themeable user interfaces based on constraint-based design principles. -Build custom component libraries, design systems, web applications, Gatsby themes, and more -with a flexible API for best-in-class developer ergonomics. +Theme UI is a library for creating themeable user interfaces based on +constraint-based design principles. Build custom component libraries, design +systems, web applications, Gatsby themes, and more with a flexible API for +best-in-class developer ergonomics. [Documentation](/getting-started) [GitHub](https://github.com/system-ui/theme-ui) @@ -20,16 +24,7 @@ with a flexible API for best-in-class developer ergonomics. -[![GitHub Stars](https://badgen.net/github/stars/system-ui/theme-ui)](https://github.com/system-ui/theme-ui/stargazers) -![npm (latest)](https://img.shields.io/npm/v/theme-ui/latest) -![npm (next)](https://img.shields.io/npm/v/theme-ui/next?color=%23e044aa) -[![Build Status](https://github.com/system-ui/theme-ui/workflows/CI/badge.svg)](https://github.com/system-ui/theme-ui/actions?query=workflow%3ACI) -[![Contributors](https://img.shields.io/github/contributors/system-ui/theme-ui)](https://github.com/system-ui/theme-ui/graphs/contributors) -[![Activity](https://img.shields.io/github/commit-activity/m/system-ui/theme-ui)](https://github.com/badges/shields/pulse)
-[![Size](https://badgen.net/bundlephobia/minzip/theme-ui)](https://badgen.net/bundlephobia/minzip/theme-ui) -[![Tree Shaking](https://badgen.net/bundlephobia/tree-shaking/theme-ui)](https://bundlephobia.com/result?p=theme-ui) -[![MIT license](https://badgen.net/badge/license/MIT/blue)](https://github.com/system-ui/theme-ui/blob/stable/LICENSE.md) -[![Join our Discord community](https://img.shields.io/discord/778553042466635786?color=%237289da&logo=discord)](https://discord.gg/theme-ui) + @@ -70,15 +65,14 @@ export default (props) => ( - ## Ergonomic - Best-in-class developer ergonomics let you style - your application quickly and consistently - based on your theme + Best-in-class developer ergonomics let you style your application quickly and + consistently based on your theme - ## Themeable - Quickly and easily reference values from your theme - throughout your entire application, on any component + Quickly and easily reference values from your theme throughout your entire + application, on any component - ## Constraint-based - Use color, typography, and layout scales - rooted in constraint-based design principles + Use color, typography, and layout scales rooted in constraint-based design + principles diff --git a/packages/e2e/integration/docs-color-modes.ts b/packages/e2e/integration/docs-color-modes.ts index 1ed90be70..8ba72b729 100644 --- a/packages/e2e/integration/docs-color-modes.ts +++ b/packages/e2e/integration/docs-color-modes.ts @@ -34,9 +34,9 @@ const removeDynamicElements = () => { .log('removed graph') // tests failing because somebody became online on Discord aren't funny... - cy.findByAltText('Join our Discord community') - .then((img) => img.remove()) - .log('removed Discord badge') + cy.findByTestId('readme-badges') + .then((badges) => badges.remove()) + .log('removed readme badges') } const screenshot = (message?: string) => { From 02c5638f4d702f673cb7ea98da1238bd35f65c24 Mon Sep 17 00:00:00 2001 From: hasparus Date: Sun, 11 Jul 2021 07:38:59 +0200 Subject: [PATCH 25/27] chore(e2e): gitignore screenshots and videos --- packages/e2e/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 packages/e2e/.gitignore diff --git a/packages/e2e/.gitignore b/packages/e2e/.gitignore new file mode 100644 index 000000000..22979b876 --- /dev/null +++ b/packages/e2e/.gitignore @@ -0,0 +1,2 @@ +screenshots/* +videos/* From 701caa27694c82f3b3575af7073c84a177ceb2a6 Mon Sep 17 00:00:00 2001 From: hasparus Date: Sun, 11 Jul 2021 07:42:03 +0200 Subject: [PATCH 26/27] chore(ci): bump actions/setup-node to v2 --- .github/workflows/ci.yml | 4 ++-- .github/workflows/e2e.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4703ebaef..3a2dcd5af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: 14.x @@ -71,7 +71,7 @@ jobs: - name: Prepare repository run: git fetch --unshallow --tags - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: 14.x diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a860875f9..6cb25ee56 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: node-version: 14.x From fadff0f5a4a445a9df04b22c78900aef6aa969ea Mon Sep 17 00:00:00 2001 From: hasparus Date: Sun, 11 Jul 2021 07:51:23 +0200 Subject: [PATCH 27/27] chore(ci): fix line endings --- .github/workflows/ci.yml | 192 +++++++++++++++++++-------------------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a2dcd5af..891298c83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,96 +1,96 @@ -name: CI - -on: - pull_request: - types: [opened, synchronize] - push: - branches: - - develop - - stable - # - ci/* # uncomment this when workin on CI without PR - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - uses: actions/setup-node@v2 - with: - node-version: 14.x - - - uses: bahmutov/npm-install@v1 - with: - # By default, bahmutov/npm-install uses --frozen-lockfile - install-command: - yarn --ignore-optional --pure-lockfile --non-interactive - - - name: Run tests and collect coverage - run: yarn test --coverage - - - name: Typecheck - run: yarn typecheck - - - name: Build - run: yarn build - - - name: Run Codechecks - run: yarn codechecks - env: - CC_SECRET: ${{ secrets.CC_SECRET }} - if: ${{ env.CC_SECRET != '' }} - - # Dependabot and PRs from forks should not release canaries, - # but secrets and env vars cannot be read in `job.if`, so we check if - # GH_TOKEN is present before attempting to release. - release_check: - runs-on: ubuntu-latest - needs: [build] - steps: - - id: can_release - run: echo '::set-output name=CAN_RELEASE::${{ env.CAN_RELEASE }}' - env: - CAN_RELEASE: ${{ secrets.AUTO_RELEASE_GH_TOKEN != '' }} - outputs: - CAN_RELEASE: ${{ steps.can_release.outputs.CAN_RELEASE }} - - release: - runs-on: ubuntu-latest - needs: [release_check] - if: > - !contains(github.event.head_commit.message, 'ci skip') && - !contains(github.event.head_commit.message, 'skip ci') && ( - github.event_name == 'push' || - github.event.pull_request.head.repo.full_name == github.repository - ) && ( - needs.release_check.outputs.CAN_RELEASE == 'true' - ) - steps: - - uses: actions/checkout@v2 - - - name: Prepare repository - run: git fetch --unshallow --tags - - - uses: actions/setup-node@v2 - with: - node-version: 14.x - - - uses: bahmutov/npm-install@v1 - with: - install-command: - yarn --ignore-optional --pure-lockfile --non-interactive - - - name: Queue in release turnstile - id: turnstyle - continue-on-error: true - uses: softprops/turnstyle@v1 - with: - abort-after-seconds: 600 - - - name: Create release - if: steps.turnstyle.outcome == 'success' - env: - GITHUB_TOKEN: ${{ secrets.AUTO_RELEASE_GH_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - run: yarn release +name: CI + +on: + pull_request: + types: [opened, synchronize] + push: + branches: + - develop + - stable + # - ci/* # uncomment this when workin on CI without PR + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-node@v2 + with: + node-version: 14.x + + - uses: bahmutov/npm-install@v1 + with: + # By default, bahmutov/npm-install uses --frozen-lockfile + install-command: + yarn --ignore-optional --pure-lockfile --non-interactive + + - name: Run tests and collect coverage + run: yarn test --coverage + + - name: Typecheck + run: yarn typecheck + + - name: Build + run: yarn build + + - name: Run Codechecks + run: yarn codechecks + env: + CC_SECRET: ${{ secrets.CC_SECRET }} + if: ${{ env.CC_SECRET != '' }} + + # Dependabot and PRs from forks should not release canaries, + # but secrets and env vars cannot be read in `job.if`, so we check if + # GH_TOKEN is present before attempting to release. + release_check: + runs-on: ubuntu-latest + needs: [build] + steps: + - id: can_release + run: echo '::set-output name=CAN_RELEASE::${{ env.CAN_RELEASE }}' + env: + CAN_RELEASE: ${{ secrets.AUTO_RELEASE_GH_TOKEN != '' }} + outputs: + CAN_RELEASE: ${{ steps.can_release.outputs.CAN_RELEASE }} + + release: + runs-on: ubuntu-latest + needs: [release_check] + if: > + !contains(github.event.head_commit.message, 'ci skip') && + !contains(github.event.head_commit.message, 'skip ci') && ( + github.event_name == 'push' || + github.event.pull_request.head.repo.full_name == github.repository + ) && ( + needs.release_check.outputs.CAN_RELEASE == 'true' + ) + steps: + - uses: actions/checkout@v2 + + - name: Prepare repository + run: git fetch --unshallow --tags + + - uses: actions/setup-node@v2 + with: + node-version: 14.x + + - uses: bahmutov/npm-install@v1 + with: + install-command: + yarn --ignore-optional --pure-lockfile --non-interactive + + - name: Queue in release turnstile + id: turnstyle + continue-on-error: true + uses: softprops/turnstyle@v1 + with: + abort-after-seconds: 600 + + - name: Create release + if: steps.turnstyle.outcome == 'success' + env: + GITHUB_TOKEN: ${{ secrets.AUTO_RELEASE_GH_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: yarn release