From f6278a9106cc26a6c62bf89991d8ebb47be4676a Mon Sep 17 00:00:00 2001 From: Nick Taylor Date: Tue, 15 Dec 2020 21:26:34 -0500 Subject: [PATCH] Add Cypress to Travis (#11867) * Added test run artifacts to git ignore. * Added Cypress run to Travis. * Added the start-server-and-test package. * Added e2e ci scripts. * Split up commands. * Testing e2e after rspecs on same build node. * Move Cypress back to node 0 for Knapsack. * Added folders for build artifacts for failed E2E tests. * Simplified e2e for CI * Using knapsack-pro-cypress now. * Added data-testid to sign up form for tests. * Added forem secret for CI * Updated initial admin fixture. * Reworked test to be a signup test. wip. * Added cypress file upload package. * added fixture for admin profile image. * Updated forem secret for tests. * Added Cypress file upload to Cypress commands. * Changed test to initial sign up for the first admin user. * Fixed test to ensure there are no signup errors. * Added some logging to see what's up. * Added some comments to the test. * Set Chrome web security to false to prevent CORS errors. Co-authored-by: rhymes --- .gitignore | 4 + .travis.yml | 8 + .../_email_registration_form.html.erb | 4 +- cypress.json | 3 +- cypress/fixtures/images/admin-image.png | Bin 0 -> 57790 bytes cypress/fixtures/logins/initialAdmin.json | 7 +- .../loginFlows/initialAdminLogin.spec.js | 50 ++- cypress/support/index.js | 1 + package.json | 8 +- yarn.lock | 313 +++++++++++++++++- 10 files changed, 363 insertions(+), 35 deletions(-) create mode 100644 cypress/fixtures/images/admin-image.png diff --git a/.gitignore b/.gitignore index a997124bf..c61ccee1f 100644 --- a/.gitignore +++ b/.gitignore @@ -87,3 +87,7 @@ bundle_finished # Auto-generated Storybook stories app/javascript/generated_stories/ + +# Cypress test run artifacts +cypress/videos +cypress/screenshots diff --git a/.travis.yml b/.travis.yml index 49ecc6963..ff68d3f42 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,8 @@ addons: 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 services: - redis @@ -67,6 +69,12 @@ script: - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "1" ]; then bundle exec bundle-audit check --update --ignore CVE-2015-9284; fi - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "1" ]; then yarn build-storybook; fi - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "2" ]; then bin/test-console-check; fi + - yarn e2e:ci + # Dropping and recreating the database for Capybara/rspecs + - export FOREM_OWNER_SECRET="secret" + - bundle exec rails db:drop + - bundle exec rails db:create + - bundle exec rails db:schema:load - 'bin/knapsack_pro_rspec' - '[ ! -f .approvals ] || bundle exec approvals verify --ask false' after_script: diff --git a/app/views/shared/authentication/_email_registration_form.html.erb b/app/views/shared/authentication/_email_registration_form.html.erb index 27449361d..09e11974c 100644 --- a/app/views/shared/authentication/_email_registration_form.html.erb +++ b/app/views/shared/authentication/_email_registration_form.html.erb @@ -4,9 +4,9 @@ <%= flash[:notice] %> <% end %> - <%= form_for(User.new, as: :user, url: registration_path(:user)) do |f| %> + <%= form_for(User.new, as: :user, data: { testid: "registration-form" }, url: registration_path(:user)) do |f| %> <% if defined?(resource) && resource&.errors&.any? %> -
+

Whoops, we found <%= pluralize(resource.errors.size, "problem") %> diff --git a/cypress.json b/cypress.json index 17ef242e7..0b378fff5 100644 --- a/cypress.json +++ b/cypress.json @@ -1,3 +1,4 @@ { - "baseUrl": "http://localhost:3000" + "baseUrl": "http://localhost:3000", + "chromeWebSecurity": false } diff --git a/cypress/fixtures/images/admin-image.png b/cypress/fixtures/images/admin-image.png new file mode 100644 index 0000000000000000000000000000000000000000..4aad433431d30851fabe015d1776f6af08c91bc7 GIT binary patch literal 57790 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 { - // Note if you are running these tests locallly, this test will fail - // if the first admin has already gone through the onboarding process. - it('should login the initial administrator user from the home page', () => { +// Note if you are running these tests locallly, this test will fail +// if the first admin has already gone through the onboarding process. + +describe('Initial admin signup', () => { + it('should sign up the initial Forem instance administrator', () => { + // This is the happy path. cy.fixture('logins/initialAdmin.json').as('admin'); - // Go to home page + cy.log('baseUrl', Cypress.config().baseUrl); + + // Go to home page which redirects to the registration form. cy.visit('/'); - // Click on the login button in the top header - cy.findAllByText('Log in').first().click(); + cy.findByTestId('registration-form').as('registrationForm'); - // Ensure we are redirected to the login page - cy.url().should('contains', '/enter'); + cy.get('@registrationForm') + .findByLabelText(/Profile image/i) + .attachFile('images/admin-image.png'); - cy.findByTestId('login-form').as('loginForm'); cy.get('@admin').then((admin) => { // Enter credentials for the initial administrator user - cy.get('@loginForm').findByText('Email').type(admin.user); - cy.get('@loginForm').findByText('Password').type(admin.password); + cy.get('@registrationForm') + .findByLabelText(/^Name$/i) + .type(admin.name); + cy.get('@registrationForm') + .findByLabelText(/Username/i) + .type(admin.username); + cy.get('@registrationForm').findByLabelText(/Email/i).type(admin.email); + cy.get('@registrationForm') + .findByLabelText('Password') + .type(admin.password); + cy.get('@registrationForm') + .findByLabelText(/Password Confirmation/i) + .type(admin.password); + cy.get('@registrationForm') + .findByLabelText(/New Forem Secret/i) + .type(admin.foremSecret); }); // Submit the form - cy.get('@loginForm').findByText('Continue').click(); + cy.get('@registrationForm').findByText('Sign up').click(); + cy.log('Submitting signup form'); + cy.url().should('eq', Cypress.config().baseUrl + '/users'); - // User should be redirected to onboarding - const { baseUrl } = Cypress.config(); - cy.url().should('include', `/onboarding?referrer=${baseUrl}/?signin=true`); + // We want to ensure that the form submitted without errors + cy.findByTestId('signup-errors').should('not.exist'); }); }); diff --git a/cypress/support/index.js b/cypress/support/index.js index 285ea3738..2533d03ab 100644 --- a/cypress/support/index.js +++ b/cypress/support/index.js @@ -15,6 +15,7 @@ // For Testing Library APIs https://github.com/testing-library/cypress-testing-library import '@testing-library/cypress/add-commands'; +import 'cypress-file-upload'; // Import commands.js using ES2015 syntax: import './commands'; diff --git a/package.json b/package.json index da05a7072..04ff31daf 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,10 @@ "test": "jest app/javascript/ bin/ --coverage", "test:watch": "jest app/javascript/ bin/ --watch", "postcss": "postcss public/assets/*.css -d public/assets 2> postcss_error.log", - "e2e": "cypress open" + "e2e": "cypress open", + "e2e:runner": "knapsack-pro-cypress", + "e2e:server": "bin/rails s -p 3000 -b 0.0.0.0", + "e2e:ci": "start-server-and-test e2e:server http://localhost:3000 e2e:runner" }, "husky": { "hooks": { @@ -85,6 +88,7 @@ }, "homepage": "https://github.com/thepracticaldev/dev.to#readme", "devDependencies": { + "@knapsack-pro/cypress": "^4.2.0", "@stoplight/spectral": "5.7.2", "@storybook/addon-a11y": "^6.1.10", "@storybook/addon-actions": "^6.1.11", @@ -108,6 +112,7 @@ "css-loader": "^5.0.1", "cssom": "^0.4.4", "cypress": "^6.1.0", + "cypress-file-upload": "^4.1.1", "eslint": "^7.14.0", "eslint-config-preact": "^1.1.3", "eslint-config-prettier": "^7.0.0", @@ -133,6 +138,7 @@ "redoc-cli": "0.10.1", "sass": "1.30.0", "sass-loader": "^10.1.0", + "start-server-and-test": "^1.11.6", "style-loader": "^2.0.0", "svgo": "1.3.2", "webpack-dev-server": "^3.11.0" diff --git a/yarn.lock b/yarn.lock index 6904ca2a0..30f07633a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1101,6 +1101,15 @@ debug "^3.1.0" lodash.once "^4.1.1" +"@dabh/diagnostics@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31" + integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + "@emotion/babel-utils@^0.6.4": version "0.6.10" resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz#83dbf3dfa933fae9fc566e54fbb45f14674c6ccc" @@ -1283,6 +1292,18 @@ resolved "https://registry.yarnpkg.com/@github/clipboard-copy-element/-/clipboard-copy-element-1.1.2.tgz#7a6e8042749471504d4e7cfcc47097a781db2bdb" integrity sha512-L6CMrcA5we0udafvoSuRCE/Ci/3xrLWKYRGup2IlhxF771bQYsQ2EB1of182pI8ZWM4oxgwzu37+igMeoZjN/A== +"@hapi/hoek@^9.0.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6" + integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw== + +"@hapi/topo@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" + integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== + dependencies: + "@hapi/hoek" "^9.0.0" + "@honeybadger-io/webpack@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@honeybadger-io/webpack/-/webpack-1.2.0.tgz#d058f5bb87e8f69ca9c8721d4aa5cb226e8604e7" @@ -1498,6 +1519,25 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@knapsack-pro/core@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@knapsack-pro/core/-/core-3.1.0.tgz#7e55d8b8edd6aadf7d54778c556fcea9ff2a9cab" + integrity sha512-RND7pt6GzOZwyHAI3rO48MUGceUxaG69U0O37Yb818szgwzzfzSqR+5bTWyxRg2InfK9qgPgLHgy+b+PHcrW8A== + dependencies: + axios "0.18.1" + axios-retry "^3.1.2" + winston "^3.3.3" + +"@knapsack-pro/cypress@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@knapsack-pro/cypress/-/cypress-4.2.0.tgz#d903bce7322d02f66adfb33a870b995eaebacaab" + integrity sha512-0QXujC847Irt/mdQ9WnMOCM6etCOgyUvQNbWh85MNlfkgnisj+C+Q0rjGsDD2aVVrps1L4AEfPbCDKwuy+Gl4w== + dependencies: + "@knapsack-pro/core" "^3.1.0" + glob "^7.1.6" + minimist "^1.2.5" + uuid "^8.3.1" + "@mdx-js/loader@^1.6.19": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" @@ -1659,6 +1699,23 @@ dependencies: any-observable "^0.3.0" +"@sideway/address@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.0.tgz#0b301ada10ac4e0e3fa525c90615e0b61a72b78d" + integrity sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c" + integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -4546,7 +4603,7 @@ async@^2.6.2: dependencies: lodash "^4.17.14" -async@^3.0.0, async@^3.2.0: +async@^3.0.0, async@^3.1.0, async@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== @@ -4613,7 +4670,14 @@ axe-core@^4.0.1, axe-core@^4.0.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.1.tgz#70a7855888e287f7add66002211a423937063eaf" integrity sha512-5Kgy8Cz6LPC9DJcNb3yjAXTu3XihQgEdnIg50c//zOC/MyLP0Clg+Y8Sh9ZjjnvBrDZU4DgXS9C3T9r4/scGZQ== -axios@^0.18.0: +axios-retry@^3.1.2: + version "3.1.9" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.1.9.tgz#6c30fc9aeb4519aebaec758b90ef56fa03fe72e8" + integrity sha512-NFCoNIHq8lYkJa6ku4m+V1837TP6lCa7n79Iuf8/AqATAHYB0ISaAS1eyIenDOfHOLtym34W65Sjke2xjg2fsA== + dependencies: + is-retry-allowed "^1.1.0" + +axios@0.18.1, axios@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3" integrity sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g== @@ -4621,6 +4685,13 @@ axios@^0.18.0: follow-redirects "1.5.10" is-buffer "^2.0.2" +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -5759,7 +5830,7 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.3.5, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@3.7.2, bluebird@^3.3.5, bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -6347,7 +6418,7 @@ chartjs-color@^2.1.0: chartjs-color-string "^0.6.0" color-convert "^1.9.3" -check-more-types@^2.24.0: +check-more-types@2.24.0, 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= @@ -6668,6 +6739,14 @@ color-string@^1.4.0, color-string@^1.5.2, color-string@^1.5.4: color-name "^1.0.0" simple-swizzle "^0.2.2" +color@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + color@^0.11.0: version "0.11.4" resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" @@ -6706,11 +6785,19 @@ colorette@^1.2.1: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== -colors@^1.1.2: +colors@^1.1.2, colors@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colorspace@1.1.x: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5" + integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ== + dependencies: + color "3.0.x" + text-hex "1.0.x" + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -7457,6 +7544,13 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +cypress-file-upload@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-4.1.1.tgz#952713c8104ab7008de99c65bd63f74b244fe4df" + integrity sha512-tX6UhuJ63rNgjdzxglpX+ZYf/bM6PDhFMtt1qCBljLtAgdearqyfD1AHqyh59rOHCjfM+bf6FA3o9b/mdaX6pw== + dependencies: + mime "^2.4.4" + cypress@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cypress/-/cypress-6.1.0.tgz#af2596cb110aa98eaf75fef3d8ab379ca0ff2413" @@ -7546,7 +7640,7 @@ debug@3.1.0, debug@=3.1.0: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: +debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== @@ -8054,7 +8148,7 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= -duplexer@^0.1.1: +duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== @@ -8185,6 +8279,11 @@ emotion@^9.1.2, emotion@^9.1.3, emotion@^9.2.12: babel-plugin-emotion "^9.2.11" create-emotion "^9.2.12" +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -8665,6 +8764,19 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-stream@=3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -8705,6 +8817,22 @@ 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@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + 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" + p-finally "^2.0.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" @@ -8959,7 +9087,7 @@ fast-memoize@^2.5.1: resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== -fast-safe-stringify@^2.0.7: +fast-safe-stringify@^2.0.4, fast-safe-stringify@^2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== @@ -9006,6 +9134,11 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fecha@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41" + integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg== + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -9234,6 +9367,11 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + focus-lock@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.8.1.tgz#bb36968abf77a2063fa173cb6c47b12ac8599d33" @@ -9353,6 +9491,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -11139,6 +11282,11 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== +is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + is-root@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" @@ -11762,6 +11910,17 @@ jest@26.6.3: import-local "^3.0.2" jest-cli "^26.6.3" +joi@^17.1.1: + version "17.3.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.3.0.tgz#f1be4a6ce29bc1716665819ac361dfa139fff5d2" + integrity sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.0" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + js-base64@^2.1.8: version "2.6.4" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" @@ -12076,6 +12235,11 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -12103,7 +12267,7 @@ latest-version@^5.0.0: dependencies: package-json "^6.3.0" -lazy-ass@^1.6.0: +lazy-ass@1.6.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= @@ -12483,6 +12647,17 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" +logform@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz#40f036d19161fc76b68ab50fdc7fe495544492f2" + integrity sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg== + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^4.2.0" + ms "^2.1.1" + triple-beam "^1.3.0" + loglevel@^1.6.8: version "1.7.0" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" @@ -12625,6 +12800,11 @@ map-or-similar@^1.5.0: resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg= +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -13712,6 +13892,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + onecolor@^3.0.4: version "3.1.0" resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.1.0.tgz#b72522270a49569ac20d244b3cd40fe157fda4d2" @@ -13878,6 +14065,11 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -14231,6 +14423,13 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + dependencies: + through "~2.3" + pbkdf2@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" @@ -15630,6 +15829,13 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +ps-tree@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== + dependencies: + event-stream "=3.3.4" + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -16358,7 +16564,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -16381,7 +16587,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -17029,7 +17235,7 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.3: +rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0, rxjs@^6.6.3: version "6.6.3" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== @@ -17800,6 +18006,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -17839,6 +18052,11 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + stack-utils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" @@ -17846,6 +18064,19 @@ stack-utils@^2.0.2: dependencies: escape-string-regexp "^2.0.0" +start-server-and-test@^1.11.6: + version "1.11.6" + resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.11.6.tgz#d1ddc41bc49a61302829eecc7b799ca98562ee9f" + integrity sha512-+0T83W/R7CVgIE2HJcrpJDleLt7Skc2Xj8jWWsItRGdpZwenAv0YtIpBEKoL64pwUtPAPoHuYUtvWUOfCRoVjg== + dependencies: + bluebird "3.7.2" + check-more-types "2.24.0" + debug "4.3.1" + execa "3.4.0" + lazy-ass "1.6.0" + ps-tree "1.2.0" + wait-on "5.2.0" + state-toggle@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" @@ -17902,6 +18133,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + dependencies: + duplexer "~0.1.1" + stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -18473,6 +18711,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + text-table@0.2, text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -18509,7 +18752,7 @@ through2@~0.4.1: readable-stream "~1.0.17" xtend "~2.1.1" -through@^2.3.6, through@^2.3.8: +through@2, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -18693,6 +18936,11 @@ trim@0.0.1: resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= +triple-beam@^1.2.0, triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + trough@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -19241,6 +19489,11 @@ uuid@^8.0.0, uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== +uuid@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" @@ -19340,6 +19593,17 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" +wait-on@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.2.0.tgz#6711e74422523279714a36d52cf49fb47c9d9597" + integrity sha512-U1D9PBgGw2XFc6iZqn45VBubw02VsLwnZWteQ1au4hUVHasTZuFSKRzlTB2dqgLhji16YVI8fgpEpwUdCr8B6g== + dependencies: + axios "^0.19.2" + joi "^17.1.1" + lodash "^4.17.19" + minimist "^1.2.5" + rxjs "^6.5.5" + walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -19633,6 +19897,29 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +winston-transport@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59" + integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw== + dependencies: + readable-stream "^2.3.7" + triple-beam "^1.2.0" + +winston@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170" + integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw== + dependencies: + "@dabh/diagnostics" "^2.0.2" + async "^3.1.0" + is-stream "^2.0.0" + logform "^2.2.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.4.0" + wolfy87-eventemitter@~5.2.8: version "5.2.9" resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz#e879f770b30fbb6512a8afbb330c388591099c2a"