diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 1d3a9fe8..8e37b61d 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -1,9 +1,45 @@ -name: Tests e2e - -on: [push] +name: E2E Tests +on: + schedule: + - cron: '0 0 * * *' + push: + workflow_dispatch: jobs: - build-and-e2e: + cypress-record: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: npm ci && npm ci --prefix cli + - run: npm run bundle + - run: RECORD_ALL_CONTENT=1 RECORD_REPLAY_METADATA_FILE=$(mktemp) npx cypress run --browser "Replay Chromium" + env: + RECORD_ALL_CONTENT: 1 + RECORD_REPLAY_METADATA_FILE: /tmp/replay-metadata + RECORD_REPLAY_TEST_METRICS: 1 + RECORD_REPLAY_WEBHOOK_URL: ${{ secrets.RECORD_REPLAY_WEBHOOK_URL }} + - name: Upload replays + if: ${{ always() }} + uses: replayio/action-upload@v0.4.3 + with: + api-key: rwk_CMx7Nd43nfKU5j6pDboS16IHDykYDIfIBMoejo6GofG + public: true + cypress-no-record: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: npm ci && npm ci --prefix cli + - run: npm run bundle + - run: RECORD_ALL_CONTENT=1 RECORD_REPLAY_METADATA_FILE=$(mktemp) npx cypress run --browser "Replay Chromium" + env: + RECORD_ALL_CONTENT: 1 + RECORD_REPLAY_METADATA_FILE: /tmp/replay-metadata + RECORD_REPLAY_DRIVER: /tmp/not-here + RECORD_REPLAY_TEST_METRICS: 1 + RECORD_REPLAY_WEBHOOK_URL: ${{ secrets.RECORD_REPLAY_WEBHOOK_URL }} + - run: npx @replayio/replay ls + if: ${{ always() }} + cypress-original: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 3a2f8eff..00000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Publish Docker image -on: - release: - types: [published] -jobs: - push_to_registry: - name: Push Docker image to GitHub Packages - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - steps: - - name: Check out the repo - uses: actions/checkout@v3 - - name: Login to GitHub Container Registry - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Prepare - id: prep - run: | - DOCKER_IMAGE=ghcr.io/redocly/redoc/cli - VERSION=edge - if [[ $GITHUB_REF == refs/tags/* ]]; then - VERSION=${GITHUB_REF#refs/tags/} - elif [[ $GITHUB_REF == refs/heads/* ]]; then - VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g') - elif [[ $GITHUB_REF == refs/pull/* ]]; then - VERSION=pr-${{ github.event.number }} - fi - TAGS="${DOCKER_IMAGE}:${VERSION},${DOCKER_IMAGE}:latest" - if [ "${{ github.event_name }}" = "push" ]; then - TAGS="$TAGS,${DOCKER_IMAGE}:sha-${GITHUB_SHA::8}" - fi - echo ::set-output name=version::${VERSION} - echo ::set-output name=tags::${TAGS} - echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - - name: Push to GitHub Packages - uses: docker/build-push-action@v3 - with: - context: ./cli - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.prep.outputs.tags }} - dockerhub: - name: Publish redoc image to DockerHub - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 - with: - images: redocly/redoc - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v3 - with: - context: . - file: ./config/docker/Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml deleted file mode 100644 index 8b91be9e..00000000 --- a/.github/workflows/publish-cli.yml +++ /dev/null @@ -1,120 +0,0 @@ -name: Publish cli - -on: - push: - branches: - - master - -jobs: - bundle: - needs: [check-version-cli] - if: needs.check-version-cli.outputs.changed == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - - name: Cache node modules - uses: actions/cache@v3 - with: - path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: | - npm-${{ hashFiles('package-lock.json') }} - npm- - - run: npm ci && npm ci --prefix cli - - run: npm run bundle - - name: Store bundle artifact - uses: actions/upload-artifact@v3 - with: - name: bundles-cli - path: bundles - retention-days: 1 - unit-tests: - needs: [check-version-cli] - if: needs.check-version-cli.outputs.changed == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: npm ci && npm ci --prefix cli - - run: npm test - e2e-tests: - needs: [bundle] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: npm ci && npm ci --prefix cli - - name: Download bundled artifact - uses: actions/download-artifact@v3 - with: - name: bundles-cli - path: bundles - - run: npm run e2e - bundle-cli: - needs: [check-version-cli] - if: needs.check-version-cli.outputs.changed == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - - name: Cache node modules - uses: actions/cache@v3 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: | - npm-${{ hashFiles('package-lock.json') }} - npm- - - name: Install dependencies - run: npm ci && npm ci --prefix cli - - name: Bundle - run: npm run compile:cli - - name: Store bundle artifact - uses: actions/upload-artifact@v3 - with: - name: cli - path: cli - retention-days: 1 - check-version-cli: - name: Check Version - runs-on: ubuntu-latest - outputs: - changed: ${{ steps.check.outputs.changed }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - name: Set up Node.js - uses: actions/setup-node@v3 - - name: Check if version has been updated - id: check - uses: EndBug/version-check@v2.0.1 - with: - file-name: ./cli/package.json - file-url: https://unpkg.com/redoc-cli/package.json - static-checking: localIsNew - publish-cli: - needs: [bundle-cli, unit-tests, e2e-tests] - if: needs.check-version-cli.outputs.changed == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v3 - with: - node-version: '14.x' - registry-url: 'https://registry.npmjs.org' - - uses: actions/checkout@v3 - - name: Download cli bundled artifact - uses: actions/download-artifact@v3 - with: - name: cli - path: cli - - name: Cache node modules - uses: actions/cache@v3 - with: - path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: | - npm-${{ hashFiles('package-lock.json') }} - npm- - - name: Publish to NPM - run: cd cli/ && npm publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index adac3262..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,113 +0,0 @@ -name: Publish - -on: - push: - tags: - - v[0-9]*.[0-9]*.[0-9]* - -jobs: - bundle: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - - name: Cache node modules - uses: actions/cache@v3 - with: - path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: | - npm-${{ hashFiles('package-lock.json') }} - npm- - - run: npm ci && npm ci --prefix cli - - run: npm run bundle - - name: Store bundle artifact - uses: actions/upload-artifact@v3 - with: - name: bundles - path: bundles - retention-days: 1 - unit-tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: npm ci && npm ci --prefix cli - - run: npm test - e2e-tests: - needs: [bundle] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: npm ci && npm ci --prefix cli - - name: Download bundled artifact - uses: actions/download-artifact@v3 - with: - name: bundles - path: bundles - - run: npm run e2e - publish: - name: Publish to NPM - needs: [bundle, unit-tests, e2e-tests] - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v3 - with: - node-version: '14.x' - registry-url: 'https://registry.npmjs.org' - - uses: actions/checkout@v3 - - name: Download bundled artifacts - uses: actions/download-artifact@v3 - with: - name: bundles - path: bundles - - name: Cache node modules - uses: actions/cache@v3 - with: - path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: | - npm-${{ hashFiles('package-lock.json') }} - npm- - - name: Before deploy - run: npm ci && npm run declarations - - name: Publish to NPM - run: npm publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - publish-cdn: - name: Publish to CDN - needs: [bundle, unit-tests, e2e-tests] - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - name: Configure AWS - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: us-east-1 - - name: Download all artifact - uses: actions/download-artifact@v3 - - name: Publish to S3 - run: npm run publish-cdn - - invalidate-cache: - name: Clear cache - runs-on: ubuntu-latest - needs: [publish, publish-cdn] - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - name: Configure AWS - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: us-east-1 - - name: Invalidate cache - run: ./scripts/invalidate-cache.sh - shell: bash - env: - DISTRIBUTION: ${{ secrets.DISTRIBUTION }} diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml deleted file mode 100644 index 18819cc7..00000000 --- a/.github/workflows/sync.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Sync Files -on: - push: - branches: - - master - workflow_dispatch: -jobs: - sync: - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - name: Run GitHub File Sync - uses: Redocly/repo-file-sync-action@master - with: - GH_PAT: ${{ secrets.GH_PAT }} - COMMIT_PREFIX: "sync:" - SKIP_PR: true diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml deleted file mode 100644 index ed1d672b..00000000 --- a/.github/workflows/unit-tests.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Unit Tests - -on: [push] - -jobs: - build-and-unit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - run: npm ci && npm ci --prefix cli - - run: npm run bundle - - run: npm test diff --git a/README_REPLAY.md b/README_REPLAY.md new file mode 100644 index 00000000..18ad1e8d --- /dev/null +++ b/README_REPLAY.md @@ -0,0 +1,12 @@ +# Links + +- [Team invitation](https://app.replay.io/team/invitation?code=1b8367a1-d2b7-46f8-807b-4c8fd8ace692) +- [Link to team](https://app.replay.io/team/dzoxYTBiOTUyOS1jM2I5LTRjZWQtOWYyNS0xMTJlZWNmYmFiYmM=/runs) + +Running the tests locally + +1. ? + +Running the tests locally with Replay + +1. ? diff --git a/cypress.json b/cypress.json index 0fe170a1..fd0973bd 100644 --- a/cypress.json +++ b/cypress.json @@ -5,7 +5,7 @@ "fixturesFolder": false, "supportFile": false, "fileServerFolder": ".", - "video": true, + "video": false, "projectId": "z6eb6h", "viewportWidth": 1440, "viewportHeight": 720 diff --git a/e2e/plugins/index.js b/e2e/plugins/index.js index 0a6add1f..c1366d95 100644 --- a/e2e/plugins/index.js +++ b/e2e/plugins/index.js @@ -1,5 +1,9 @@ const cypressTypeScriptPreprocessor = require('./cy-ts-preprocessor'); +const cypressReplay = require("@replayio/cypress"); -module.exports = on => { +module.exports = (on, config) => { on('file:preprocessor', cypressTypeScriptPreprocessor); + cypressReplay.default(on, config); + + return config; }; diff --git a/package-lock.json b/package-lock.json index 83270c24..ca853da3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "devDependencies": { "@cypress/webpack-preprocessor": "^5.12.0", "@hot-loader/react-dom": "^17.0.2", + "@replayio/cypress": "^0.2.16", "@size-limit/preset-app": "^7.0.4", "@types/chai": "^4.2.18", "@types/dompurify": "^2.2.2", @@ -2692,6 +2693,102 @@ "node": ">=10" } }, + "node_modules/@replayio/cypress": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/@replayio/cypress/-/cypress-0.2.16.tgz", + "integrity": "sha512-VKek8XAqPosXUOr7pGXa8DvymOMM92uZ+1fpHMzYVXWK2yZ4+ZgWb1GlTWokHrN4Ye11LTHRiDIx/na3BS4IzA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@replayio/replay": "^0.9.4", + "@replayio/test-utils": "^0.1.0", + "uuid": "^8.3.2" + }, + "bin": { + "replayio-cypress": "bin/replayio-cypress.js" + } + }, + "node_modules/@replayio/cypress/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@replayio/replay": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@replayio/replay/-/replay-0.9.4.tgz", + "integrity": "sha512-wn9uBpW46zL3Qo7HJuTnIgKxXeqoqF7Cl41UFx820uR4drZtl5J/NRg8LjF/Y5u+IldBtz4P5Z1qPfyfwEewAw==", + "dev": true, + "dependencies": { + "@replayio/sourcemap-upload": "^1.0.3", + "commander": "^7.2.0", + "is-uuid": "^1.0.2", + "jsonata": "^1.8.6", + "superstruct": "^0.15.4", + "text-table": "^0.2.0", + "ws": "^7.5.0" + }, + "bin": { + "replay": "bin/replay.js" + } + }, + "node_modules/@replayio/replay/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@replayio/sourcemap-upload": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@replayio/sourcemap-upload/-/sourcemap-upload-1.0.3.tgz", + "integrity": "sha512-k/po0EklaH3BxDnK8iZFn37y1aTiYpvD9CLPueIBCRsmiUxdMz3fh6EEGtUXuDcU5dCp7gQdacTXknRZq4dbNg==", + "dev": true, + "dependencies": { + "commander": "^7.2.0", + "debug": "^4.3.1", + "glob": "^7.1.6", + "node-fetch": "^2.6.1", + "string.prototype.matchall": "^4.0.5" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/@replayio/sourcemap-upload/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@replayio/test-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@replayio/test-utils/-/test-utils-0.1.0.tgz", + "integrity": "sha512-+T4xHVzuTGABpnoTz0/+6yIQfjZyXgxxI5T0HKqnRgxJTF8rjLBo5vYb0N8wcyv+k2m4FGWOQBtA9YXnZ8QXhQ==", + "dev": true, + "dependencies": { + "@replayio/replay": "^0.9.4", + "node-fetch": "^2.6.7", + "uuid": "^8.3.2" + } + }, + "node_modules/@replayio/test-utils/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -10200,6 +10297,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "node_modules/is-uuid": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-uuid/-/is-uuid-1.0.2.tgz", + "integrity": "sha512-tCByphFcJgf2qmiMo5hMCgNAquNSagOetVetDvBXswGkNfoyEMvGH1yDlF8cbZbKnbVBr4Y5/rlpMz9umxyBkQ==", + "dev": true + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -12590,6 +12693,15 @@ "node": ">=6" } }, + "node_modules/jsonata": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.6.tgz", + "integrity": "sha512-ZH2TPYdNP2JecOl/HvrH47Xc+9imibEMQ4YqKy/F/FrM+2a6vfbGxeCX23dB9Fr6uvGwv+ghf1KxWB3iZk09wA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -17055,6 +17167,12 @@ "react-is": ">= 16.8.0" } }, + "node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", + "dev": true + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -18951,9 +19069,9 @@ } }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "engines": { "node": ">=8.3.0" @@ -21166,6 +21284,88 @@ } } }, + "@replayio/cypress": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/@replayio/cypress/-/cypress-0.2.16.tgz", + "integrity": "sha512-VKek8XAqPosXUOr7pGXa8DvymOMM92uZ+1fpHMzYVXWK2yZ4+ZgWb1GlTWokHrN4Ye11LTHRiDIx/na3BS4IzA==", + "dev": true, + "requires": { + "@replayio/replay": "^0.9.4", + "@replayio/test-utils": "^0.1.0", + "uuid": "^8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "@replayio/replay": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@replayio/replay/-/replay-0.9.4.tgz", + "integrity": "sha512-wn9uBpW46zL3Qo7HJuTnIgKxXeqoqF7Cl41UFx820uR4drZtl5J/NRg8LjF/Y5u+IldBtz4P5Z1qPfyfwEewAw==", + "dev": true, + "requires": { + "@replayio/sourcemap-upload": "^1.0.3", + "commander": "^7.2.0", + "is-uuid": "^1.0.2", + "jsonata": "^1.8.6", + "superstruct": "^0.15.4", + "text-table": "^0.2.0", + "ws": "^7.5.0" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "@replayio/sourcemap-upload": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@replayio/sourcemap-upload/-/sourcemap-upload-1.0.3.tgz", + "integrity": "sha512-k/po0EklaH3BxDnK8iZFn37y1aTiYpvD9CLPueIBCRsmiUxdMz3fh6EEGtUXuDcU5dCp7gQdacTXknRZq4dbNg==", + "dev": true, + "requires": { + "commander": "^7.2.0", + "debug": "^4.3.1", + "glob": "^7.1.6", + "node-fetch": "^2.6.1", + "string.prototype.matchall": "^4.0.5" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "@replayio/test-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@replayio/test-utils/-/test-utils-0.1.0.tgz", + "integrity": "sha512-+T4xHVzuTGABpnoTz0/+6yIQfjZyXgxxI5T0HKqnRgxJTF8rjLBo5vYb0N8wcyv+k2m4FGWOQBtA9YXnZ8QXhQ==", + "dev": true, + "requires": { + "@replayio/replay": "^0.9.4", + "node-fetch": "^2.6.7", + "uuid": "^8.3.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -26946,6 +27146,12 @@ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is-uuid": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-uuid/-/is-uuid-1.0.2.tgz", + "integrity": "sha512-tCByphFcJgf2qmiMo5hMCgNAquNSagOetVetDvBXswGkNfoyEMvGH1yDlF8cbZbKnbVBr4Y5/rlpMz9umxyBkQ==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -28741,6 +28947,12 @@ "minimist": "^1.2.5" } }, + "jsonata": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/jsonata/-/jsonata-1.8.6.tgz", + "integrity": "sha512-ZH2TPYdNP2JecOl/HvrH47Xc+9imibEMQ4YqKy/F/FrM+2a6vfbGxeCX23dB9Fr6uvGwv+ghf1KxWB3iZk09wA==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -32187,6 +32399,12 @@ "supports-color": "^5.5.0" } }, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", + "dev": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -33589,9 +33807,9 @@ } }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index bc124718..f354c9d5 100644 --- a/package.json +++ b/package.json @@ -64,6 +64,7 @@ "devDependencies": { "@cypress/webpack-preprocessor": "^5.12.0", "@hot-loader/react-dom": "^17.0.2", + "@replayio/cypress": "^0.2.16", "@size-limit/preset-app": "^7.0.4", "@types/chai": "^4.2.18", "@types/dompurify": "^2.2.2",