diff --git a/.github/workflows/bundle-audit.yml b/.github/workflows/bundle-audit.yml new file mode 100644 index 000000000..46cecbb11 --- /dev/null +++ b/.github/workflows/bundle-audit.yml @@ -0,0 +1,23 @@ +name: Bundler-audit + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + audit: + runs-on: ubuntu-latest + + steps: + - name: Install cURL Headers + run: sudo apt-get install libcurl4-openssl-dev + - uses: actions/checkout@v3 + - name: setup ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - run: bundle exec bundle-audit check --update diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..6f60464b1 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,206 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + RSpec: + runs-on: ubuntu-latest + timeout-minutes: 20 + env: + COVERAGE: true + RAILS_ENV: test + KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }} + KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }} + KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC }} + KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true + DATABASE_URL_TEST: postgres://postgres:postgres@localhost:5432/Forem_test + DATABASE_NAME_TEST: Forem_test + + services: + postgres: + image: postgres:13-alpine + env: + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + redis: + image: redis + ports: + - 6379:6379 + + strategy: + fail-fast: false + matrix: + ci_node_total: [6] + ci_node_index: [0, 1, 2, 3, 4, 5] + + steps: + - uses: actions/checkout@v3 + - name: Cache node modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node-modules- + - uses: actions/setup-node@v3 + with: + cache: yarn + - run: yarn install --frozen-lockfile + - name: setup ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - run: bundle exec rails db:test:prepare + - name: RSpec + run: bin/knapsack_pro_rspec + - uses: codecov/codecov-action@v3 + + Jest: + runs-on: ubuntu-latest + timeout-minutes: 20 + env: + RAILS_ENV: test + NODE_ENV: test + + steps: + - uses: actions/checkout@v3 + - name: Cache node modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node-modules- + - uses: actions/setup-node@v3 + with: + cache: yarn + - run: yarn install --frozen-lockfile + - run: yarn lint:frontend + - run: yarn test --colors + - uses: codecov/codecov-action@v3 + - run: yarn build-storybook + + Build-test: + runs-on: ubuntu-latest + timeout-minutes: 20 + env: + RAILS_ENV: test + DATABASE_URL: postgres://postgres:postgres@localhost:5432/Forem_prod_test + DATABASE_NAME: Forem_prod_test + APP_PROTOCOL: http:// + APP_DOMAIN: localhost:3000 + HEROKU_APP_URL: practicaldev.herokuapp.com + SECRET_KEY_BASE: dummydummydummy + GITHUB_KEY: dummy + GITHUB_SECRET: dummy + KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true + + services: + postgres: + image: postgres:13-alpine + env: + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + redis: + image: redis + ports: + - 6379:6379 + + steps: + - uses: actions/checkout@v3 + - name: Cache node modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node-modules- + - uses: actions/setup-node@v3 + with: + cache: yarn + - run: yarn install --frozen-lockfile + - name: setup ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - run: bin/test-console-check + + Cypress: + runs-on: ubuntu-latest + timeout-minutes: 20 + env: + RAILS_ENV: test + DATABASE_URL_TEST: postgres://postgres:postgres@localhost:5432/Forem_test + DATABASE_NAME_TEST: Forem_test + KNAPSACK_PRO_FIXED_QUEUE_SPLIT: true + + services: + postgres: + image: postgres:13-alpine + env: + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + redis: + image: redis + ports: + - 6379:6379 + + strategy: + fail-fast: false + matrix: + ci_node_total: [6] + ci_node_index: [0, 1, 2, 3, 4, 5, non-seed] + + steps: + - uses: actions/checkout@v3 + - name: Cache node modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: ${{ runner.os }}-node-modules- + - uses: actions/setup-node@v3 + with: + cache: yarn + - run: yarn install --frozen-lockfile + - name: setup ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - run: bundle exec rails db:test:prepare assets:precompile + - run: yarn cypress install + - name: cypress + env: + KNAPSACK_PRO_CI_NODE_TOTAL: ${{ matrix.ci_node_total }} + KNAPSACK_PRO_CI_NODE_INDEX: ${{ matrix.ci_node_index }} + KNAPSACK_PRO_TEST_SUITE_TOKEN_CYPRESS: ${{ secrets.KNAPSACK_PRO_TEST_SUITE_TOKEN_CYPRESS }} + KNAPSACK_PRO_TEST_FILE_PATTERN: "cypress/e2e/seededFlows/**/*.spec.js" + run: bin/knapsack_pro_cypress + if: ${{ matrix.ci_node_index != 'non-seed' }} + - name: cypress non-seed + run: CREATOR_ONBOARDING_SEED_DATA=1 E2E_FOLDER=creatorOnboardingFlows E2E=true bin/rails cypress:run + if: ${{ matrix.ci_node_index == 'non-seed' }} + + CI-status-report: + runs-on: ubuntu-latest + needs: [rspec, jest, cypress, build-test] + + steps: + - run: echo "All done" + - run: echo ${{ github.event.pull_request.head.ref }} + - run: echo ${{ github.ref }} + + - name: Report failure to Slack channel + uses: slackapi/slack-github-action@v1 + with: + payload: | + { "link": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + if: always() && github.ref == 'refs/heads/main' && failure() diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 99ce941df..000000000 --- a/.travis.yml +++ /dev/null @@ -1,155 +0,0 @@ -dist: focal -branches: - only: - - main -language: ruby -cache: - bundler: true - directories: - - node_modules -rvm: - - 3.0.2 -addons: - postgresql: '13' - apt: - packages: - - postgresql-13 - chrome: 'stable' - artifacts: - paths: - - $(ls tmp/screenshots/*.png | tr "\n" ":") - - $(ls tmp/csvs/*.csv | tr "\n" ":") - - $(ls cypress/screenshots/*.* | tr "\n" ":") - - $(ls cypress/videos/*.* | tr "\n" ":") - debug: true -env: - global: - - RAILS_ENV=test - - DATABASE_URL=postgres://travis@localhost:5432/Forem_prod_test - - DATABASE_NAME=Forem_prod_test - - DATABASE_URL_TEST=postgres://travis@localhost:5432/Forem_test - - DATABASE_NAME_TEST=Forem_test - - STATEMENT_TIMEOUT=20000 - # Dummy values needed to verify the app boots via "rails runner" - - APP_PROTOCOL=http:// - - APP_DOMAIN=localhost:3000 - - HEROKU_APP_URL=practicaldev.herokuapp.com - - SECRET_KEY_BASE=dummydummydummy - - GITHUB_KEY=dummy - - GITHUB_SECRET=dummy - - KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true - - KNAPSACK_PRO_LOG_LEVEL=info - - KNAPSACK_PRO_CI_NODE_TOTAL=3 - - COVERAGE_REPORTS_TOTAL=4 - - FOREM_OWNER_SECRET="secret" # test secret so e2e tests can run properly. - - COVERAGE=true -before_install: - - sudo apt-get update - - sudo apt-get -y install gsfonts - - sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/*/main/pg_hba.conf - - sudo service postgresql restart - - gem install bundler:"<2.3" -install: - - date --rfc-3339=seconds - - nvm install - - bundle config set path 'vendor/bundle' - - bin/ci-bundle - - yarn install --frozen-lockfile -script: - - bundle exec rails db:create db:schema:load webpacker:compile - - bin/knapsack_pro_rspec -after_script: - - curl -Os https://uploader.codecov.io/latest/linux/codecov - - chmod +x codecov - - ls -l ./coverage - - ./codecov -notifications: - slack: - if: branch = main - on_pull_requests: false - on_success: always - on_failure: always - rooms: - secure: 0cTxjTqAFnfCR9jw7lZFcTrTcil8QKTX4h2dzKKCeWaWpsYcvJsvhREfsdIGwrdChmHHYCveHp84dP3ouMvcXoSYEzTASZpK+nVGw2+E4kh3EbzA49N00RoeM+gnbEla3MtCjVxH7KVznLyV/jVfFoCZR6xYnO+pknZzUZwJzyffnSmAlwsQkw1Dt1FAw/uodfGqiDJjUgZhtQ51KFg74HiBd80iUc8ieg6zAEV4QnlW3YvjrHSJC2+AFblXQ7RVkAok8w3G876yQOXvEfESCV+wlmoXbSlQm7V2awMmY5v23iKMvJRRn7JMxTGzG1x2NvNIFL8NZBM+CcjMJxkDSU7Rc/hxVAbuEEYQdd3VPKmYv3o5jcPYjQY08nbz4OREZtiXMsFVCOLuZaCba2c7Xelr7c0eFOdRpQScN2SQtI039Zw8jUQgni18kiWyD/1CfYFIGUvpTCy8rHN0RCJkb0+wOlo3UjEbVDqCi6x06yQ/367XHc27hzFpfDQprVccCMDHbE47kj2fUsBX+FaocpzwODBMLLXZf/v6Vg/bhVArxAl9GLmWNt8942YVgRzkboR3yAy1mA3wx/1frLURY1C5377dx7LXwhHp/4Od6ms1xTBSEcEIRWPy7wQ0yG8fe9VPNFc0ndCEPnqkF8NLTxOX9w3uQ3wDB78NEyEDni0= - - -jobs: - include: - - stage: Test - name: "Node 0" - env: KNAPSACK_PRO_CI_NODE_INDEX=0 - - stage: Test - name: "Node 1" - env: KNAPSACK_PRO_CI_NODE_INDEX=1 - - stage: Test - name: "Node 2" - env: KNAPSACK_PRO_CI_NODE_INDEX=2 - - stage: Test - name: "Front-end tests, Storybook, bundle audit, console check" - script: - - yarn lint:frontend - - yarn test --colors - - bundle exec bundle-audit check --update - - bin/test-console-check - - yarn build-storybook - - NODE_ENV=production RAILS_ENV=production bundle exec rake assets:precompile - - stage: Test - name: "E2E Seeded Node 0" - env: - - KNAPSACK_PRO_CI_NODE_TOTAL=3 - - KNAPSACK_PRO_CI_NODE_INDEX=0 - - KNAPSACK_PRO_TEST_FILE_PATTERN="cypress/e2e/seededFlows/**/*.spec.js" - script: - - bundle exec rails db:create db:schema:load assets:precompile - - yarn cypress install - - bin/knapsack_pro_cypress - - stage: Test - name: "E2E Seeded Node 1" - env: - - KNAPSACK_PRO_CI_NODE_TOTAL=3 - - KNAPSACK_PRO_CI_NODE_INDEX=1 - - KNAPSACK_PRO_TEST_FILE_PATTERN="cypress/e2e/seededFlows/**/*.spec.js" - script: - - bundle exec rails db:create db:schema:load assets:precompile - - yarn cypress install - - bin/knapsack_pro_cypress - - stage: Test - name: "E2E Seeded Node 2" - env: - - KNAPSACK_PRO_CI_NODE_TOTAL=3 - - KNAPSACK_PRO_CI_NODE_INDEX=2 - - KNAPSACK_PRO_TEST_FILE_PATTERN="cypress/e2e/seededFlows/**/*.spec.js" - script: - - bundle exec rails db:create db:schema:load assets:precompile - - yarn cypress install - - bin/knapsack_pro_cypress - - stage: Test - name: "E2E Non-seeded" - script: - - bundle exec rails db:create db:schema:load assets:precompile - - yarn cypress install - - CREATOR_ONBOARDING_SEED_DATA=1 E2E_FOLDER=creatorOnboardingFlows E2E=true bin/rails cypress:run - - stage: Deploy - name: Deploy DEV - if: type != pull_request - install: skip - script: skip - after_script: skip - deploy: - provider: heroku - api_key: '$HEROKU_AUTH_TOKEN' - app: - main: practicaldev - after_deploy: - - bash scripts/after_deploy.sh - - stage: Deploy - name: Deploy BenHalpern - if: type != pull_request - install: skip - script: skip - after_script: skip - deploy: - provider: heroku - api_key: '$HEROKU_AUTH_TOKEN' - app: - main: benhalpern-community diff --git a/.yarnclean b/.yarnclean index 5336b921b..3a17b55fa 100644 --- a/.yarnclean +++ b/.yarnclean @@ -5,6 +5,8 @@ tests powered-test # asset directories +docs +doc website images @@ -40,3 +42,4 @@ wercker.yml # misc *.md +!**/yaml/dist/**/doc diff --git a/Gemfile b/Gemfile index a606d1e93..eb14bba56 100644 --- a/Gemfile +++ b/Gemfile @@ -68,7 +68,6 @@ gem "omniauth-google-oauth2", "~> 1.0" # OmniAuth strategy for Google OAuth2 gem "omniauth-rails_csrf_protection", "~> 1.0" # Provides CSRF protection on OmniAuth request endpoint on Rails application. gem "omniauth-twitter", "~> 1.4" # OmniAuth strategy for Twitter gem "parallel", "~> 1.22" # Run any kind of code in parallel processes -gem "patron", "~> 0.13.3" # HTTP client library based on libcurl, used with GitHub OAuth client gem "pg", "~> 1.4" # Pg is the Ruby interface to the PostgreSQL RDBMS gem "pg_query", ">= 0.9.0" # Allows PGHero to analyze queries gem "pg_search", "~> 2.3.6" # PgSearch builds Active Record named scopes that take advantage of PostgreSQL's full text search @@ -141,7 +140,7 @@ group :development, :test do gem "debug", ">= 1.0.0" # Provide a debug with step capabilities gem "dotenv-rails", "~> 2.8.1" # For loading ENV variables locally gem "faker", "~> 2.22" # A library for generating fake data such as names, addresses, and phone numbers - gem "knapsack_pro", "~> 3.3.1" # Help parallelize Ruby spec builds + gem "knapsack_pro", "~> 3.0" # Help parallelize Ruby spec builds gem "pry", "~> 0.14" # An IRB alternative and runtime developer console gem "pry-rails", "~> 0.3" # Use Pry as your rails console gem "rspec-rails", "~> 5.1" # rspec-rails is a testing framework for Rails 3+ diff --git a/Gemfile.lock b/Gemfile.lock index e0f252d46..b2a8841d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -444,7 +444,7 @@ GEM kaminari-core (1.2.2) katex (0.9.0) execjs (~> 2.7) - knapsack_pro (3.3.1) + knapsack_pro (3.4.1) rake kramdown (2.4.0) rexml @@ -594,7 +594,6 @@ GEM parallel (1.22.1) parser (3.1.2.1) ast (~> 2.4.1) - patron (0.13.3) pg (1.4.4) pg_query (2.1.4) google-protobuf (>= 3.19.2) @@ -1021,7 +1020,7 @@ DEPENDENCIES jsonapi-serializer (~> 2.2) kaminari (~> 1.2) katex (~> 0.9.0) - knapsack_pro (~> 3.3.1) + knapsack_pro (~> 3.0) launchy (~> 2.5) liquid (~> 5.4) listen (~> 3.7) @@ -1039,7 +1038,6 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 1.0) omniauth-twitter (~> 1.4) parallel (~> 1.22) - patron (~> 0.13.3) pg (~> 1.4) pg_query (>= 0.9.0) pg_search (~> 2.3.6) diff --git a/bin/knapsack_pro_rspec b/bin/knapsack_pro_rspec index b00b8da8d..029371165 100755 --- a/bin/knapsack_pro_rspec +++ b/bin/knapsack_pro_rspec @@ -3,7 +3,6 @@ if [ "$KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC" = "" ]; then KNAPSACK_PRO_ENDPOINT=https://api-disabled-for-fork.knapsackpro.com \ KNAPSACK_PRO_MAX_REQUEST_RETRIES=0 \ KNAPSACK_PRO_TEST_SUITE_TOKEN_RSPEC=disabled-for-fork \ - RUBYOPT="-W:deprecated"\ bundle exec rake knapsack_pro:rspec # use Regular Mode here always else bundle exec rake knapsack_pro:queue:rspec diff --git a/package.json b/package.json index 81d47a448..59600b64e 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,6 @@ "storybook-addon-jsx": "^7.3.14", "style-loader": "^2.0.0", "svgo": "2.8.0", - "webpack-bundle-analyzer": "^4.6.1", "webpack-dev-server": "^3.11.3" }, "dependencies": { diff --git a/scripts/after_deploy.sh b/scripts/after_deploy.sh deleted file mode 100755 index c8c2b627e..000000000 --- a/scripts/after_deploy.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -COMMIT="$(git rev-parse HEAD | cut -c1-7)" - -curl "https://api.honeycomb.io/1/markers/${HONEYCOMB_DATASET}" -X POST \ - -H "X-Honeycomb-Team: ${HONEYCOMB_API_KEY}" \ - -d '{"type":"deploy", "message":"'${COMMIT}'"}' diff --git a/vendor/cache/knapsack_pro-3.3.1.gem b/vendor/cache/knapsack_pro-3.3.1.gem deleted file mode 100644 index e17f5d995..000000000 Binary files a/vendor/cache/knapsack_pro-3.3.1.gem and /dev/null differ diff --git a/vendor/cache/knapsack_pro-3.4.1.gem b/vendor/cache/knapsack_pro-3.4.1.gem new file mode 100644 index 000000000..3b423644a Binary files /dev/null and b/vendor/cache/knapsack_pro-3.4.1.gem differ diff --git a/vendor/cache/patron-0.13.3.gem b/vendor/cache/patron-0.13.3.gem deleted file mode 100644 index 6e8d8efb9..000000000 Binary files a/vendor/cache/patron-0.13.3.gem and /dev/null differ diff --git a/yarn.lock b/yarn.lock index 036383fd4..e4e9e9302 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2392,11 +2392,6 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@polka/url@^1.0.0-next.20": - version "1.0.0-next.21" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" - integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== - "@rails/ujs@7.0.3": version "7.0.3" resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.3.tgz#3bb98db34460ad61ef3cd2684401a444a0347bbb" @@ -4210,7 +4205,7 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.0.0, acorn-walk@^8.0.2: +acorn-walk@^8.0.2: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== @@ -4225,16 +4220,16 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4, acorn@^8.4.1, acorn@^8.5.0: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - acorn@^8.1.0, acorn@^8.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +acorn@^8.4.1, acorn@^8.5.0: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -7168,11 +7163,6 @@ dotenv@^8.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -8832,13 +8822,6 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -11647,7 +11630,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.3.1, mime@^2.4.4: +mime@^2.4.4: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -12257,11 +12240,6 @@ open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -opener@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -15362,15 +15340,6 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -sirv@^1.0.7: - version "1.0.17" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.17.tgz#86e2c63c612da5a1dace1c16c46f524aaa26ac45" - integrity sha512-qx9go5yraB7ekT7bCMqUHJ5jEaOC/GXBxUWv+jeWnb7WzHUFdcQPGWk7YmAwFBaQBrogpuSqd/azbC2lZRqqmw== - dependencies: - "@polka/url" "^1.0.0-next.20" - mime "^2.3.1" - totalist "^1.0.0" - sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -16325,11 +16294,6 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== - tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" @@ -17033,21 +16997,6 @@ webpack-assets-manifest@^3.1.1: tapable "^1.0.0" webpack-sources "^1.0.0" -webpack-bundle-analyzer@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz#bee2ee05f4ba4ed430e4831a319126bb4ed9f5a6" - integrity sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw== - dependencies: - acorn "^8.0.4" - acorn-walk "^8.0.0" - chalk "^4.1.0" - commander "^7.2.0" - gzip-size "^6.0.0" - lodash "^4.17.20" - opener "^1.5.2" - sirv "^1.0.7" - ws "^7.3.1" - webpack-cli@^3.3.12: version "3.3.12" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" @@ -17441,11 +17390,6 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.3.1: - version "7.5.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" - integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== - ws@^8.2.3: version "8.8.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769"