diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index f2e88d363..839e9bdb9 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -44,7 +44,7 @@ class Auth::SessionsController < Devise::SessionsController end def webauthn_options - user = find_user + user = User.find_by(id: session[:attempt_user_id]) if user&.webauthn_enabled? options_for_get = WebAuthn::Credential.options_for_get( diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.js index 3d2796cd3..663dd324f 100644 --- a/app/javascript/mastodon/features/compose/index.js +++ b/app/javascript/mastodon/features/compose/index.js @@ -106,10 +106,10 @@ class Compose extends React.PureComponent { )} {!columns.some(column => column.get('id') === 'COMMUNITY') && ( - + )} {!columns.some(column => column.get('id') === 'PUBLIC') && ( - + )} diff --git a/package.json b/package.json index 1cfd192d1..0013e1530 100644 --- a/package.json +++ b/package.json @@ -184,7 +184,7 @@ "eslint-plugin-jsx-a11y": "~6.4.1", "eslint-plugin-promise": "~5.1.0", "eslint-plugin-react": "~7.26.0", - "jest": "^27.2.0", + "jest": "^27.2.3", "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", @@ -196,7 +196,7 @@ "kind-of": "^6.0.3" }, "optionalDependencies": { - "bufferutil": "^4.0.3", + "bufferutil": "^4.0.4", "utf-8-validate": "^5.0.6" } } diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index 051a0807d..f718f5dd9 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -519,4 +519,33 @@ RSpec.describe Auth::SessionsController, type: :controller do end end end + + describe 'GET #webauthn_options' do + context 'with WebAuthn and OTP enabled as second factor' do + let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http' }://#{Rails.configuration.x.web_domain}" } + + let(:fake_client) { WebAuthn::FakeClient.new(domain) } + + let!(:user) do + Fabricate(:user, email: 'x@y.com', password: 'abcdefgh', otp_required_for_login: true, otp_secret: User.generate_otp_secret(32)) + end + + before do + user.update(webauthn_id: WebAuthn.generate_user_id) + public_key_credential = WebAuthn::Credential.from_create(fake_client.create) + user.webauthn_credentials.create( + nickname: 'SecurityKeyNickname', + external_id: public_key_credential.id, + public_key: public_key_credential.public_key, + sign_count: '1000' + ) + post :create, params: { user: { email: user.email, password: user.password } } + end + + it 'returns http success' do + get :webauthn_options + expect(response).to have_http_status :ok + end + end + end end diff --git a/yarn.lock b/yarn.lock index eae6357db..b99b6c6ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1243,94 +1243,94 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.0.tgz#57f702837ec52899be58c3794dce5941c77a8b63" - integrity sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw== +"@jest/console@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.2.3.tgz#c87fe48397dc7511089be71da93fb41869b75b7e" + integrity sha512-7akAz7p6T31EEYVVKxs6fKaR7CUgem22M/0TjCP7a64FIhNif2EiWcRzMkkDZbYhImG+Tz5qy9gMk2Wtl5GV1g== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.2.0" - jest-util "^27.2.0" + jest-message-util "^27.2.3" + jest-util "^27.2.3" slash "^3.0.0" -"@jest/core@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.0.tgz#61fc27b244e9709170ed9ffe41b006add569f1b3" - integrity sha512-E/2NHhq+VMo18DpKkoty8Sjey8Kps5Cqa88A8NP757s6JjYqPdioMuyUBhDiIOGCdQByEp0ou3jskkTszMS0nw== +"@jest/core@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.2.3.tgz#b21a3ffb69bef017c4562d27689bb798c0194501" + integrity sha512-I+VX+X8pkw2I057swT3ufNp6V5EBeFO1dl+gvIexdV0zg1kZ+cz9CrPbWL75dYrJIInf5uWPwDwOoJCALrTxWw== dependencies: - "@jest/console" "^27.2.0" - "@jest/reporters" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.3" + "@jest/reporters" "^27.2.3" + "@jest/test-result" "^27.2.3" + "@jest/transform" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^27.1.1" - jest-config "^27.2.0" - jest-haste-map "^27.2.0" - jest-message-util "^27.2.0" + jest-changed-files "^27.2.3" + jest-config "^27.2.3" + jest-haste-map "^27.2.3" + jest-message-util "^27.2.3" jest-regex-util "^27.0.6" - jest-resolve "^27.2.0" - jest-resolve-dependencies "^27.2.0" - jest-runner "^27.2.0" - jest-runtime "^27.2.0" - jest-snapshot "^27.2.0" - jest-util "^27.2.0" - jest-validate "^27.2.0" - jest-watcher "^27.2.0" + jest-resolve "^27.2.3" + jest-resolve-dependencies "^27.2.3" + jest-runner "^27.2.3" + jest-runtime "^27.2.3" + jest-snapshot "^27.2.3" + jest-util "^27.2.3" + jest-validate "^27.2.3" + jest-watcher "^27.2.3" micromatch "^4.0.4" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.0.tgz#48d1dbfa65f8e4a5a5c6cbeb9c59d1a5c2776f6b" - integrity sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ== +"@jest/environment@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.2.3.tgz#3ae328d778a67e027bad27541d1c09ed94312609" + integrity sha512-xXZk/Uhq6TTRydg4RyNawNZ82lX88r3997t5ykzQBfB3Wd+mqzSyC4XWzw4lTZJISldwn9/FunexTSGBFcvVAg== dependencies: - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/fake-timers" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" - jest-mock "^27.1.1" + jest-mock "^27.2.3" -"@jest/fake-timers@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.0.tgz#560841bc21ae7fbeff0cbff8de8f5cf43ad3561d" - integrity sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w== +"@jest/fake-timers@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.3.tgz#21cdef9cb9edd30c80026a0176eba58f5fbcaa67" + integrity sha512-A8+X35briNiabUPcLqYQY+dsvBUozX9DCa7HgJLdvRK/JPAKUpthYHjnI9y6QUYaDTqGZEo4rLf7LXE51MwP3Q== dependencies: - "@jest/types" "^27.1.1" - "@sinonjs/fake-timers" "^7.0.2" + "@jest/types" "^27.2.3" + "@sinonjs/fake-timers" "^8.0.1" "@types/node" "*" - jest-message-util "^27.2.0" - jest-mock "^27.1.1" - jest-util "^27.2.0" + jest-message-util "^27.2.3" + jest-mock "^27.2.3" + jest-util "^27.2.3" -"@jest/globals@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.0.tgz#4d7085f51df5ac70c8240eb3501289676503933d" - integrity sha512-raqk9Gf9WC3hlBa57rmRmJfRl9hom2b+qEE/ifheMtwn5USH5VZxzrHHOZg0Zsd/qC2WJ8UtyTwHKQAnNlDMdg== +"@jest/globals@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.2.3.tgz#6b8d652083d78709b243d9571457058f1c6c5fea" + integrity sha512-JVjQDs5z34XvFME0qHmKwWtgzRnBa/i22nfWjzlIUvkdFCzndN+JTLEWNXAgyBbGnNYuMZ8CpvgF9uhKt/cR3g== dependencies: - "@jest/environment" "^27.2.0" - "@jest/types" "^27.1.1" - expect "^27.2.0" + "@jest/environment" "^27.2.3" + "@jest/types" "^27.2.3" + expect "^27.2.3" -"@jest/reporters@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.0.tgz#629886d9a42218e504a424889a293abb27919e25" - integrity sha512-7wfkE3iRTLaT0F51h1mnxH3nQVwDCdbfgXiLuCcNkF1FnxXLH9utHqkSLIiwOTV1AtmiE0YagHbOvx4rnMP/GA== +"@jest/reporters@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.2.3.tgz#47c27be7c3e2069042b6fba12c1f8f62f91302db" + integrity sha512-zc9gQDjUAnkRQ5C0LW2u4JU9Ojqp9qc8OXQkMSmAbou6lN0mvDGEl4PG5HrZxpW4nE2FjIYyX6JAn05QT3gLbw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.3" + "@jest/test-result" "^27.2.3" + "@jest/transform" "^27.2.3" + "@jest/types" "^27.2.3" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1341,15 +1341,15 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^27.2.0" - jest-resolve "^27.2.0" - jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-haste-map "^27.2.3" + jest-resolve "^27.2.3" + jest-util "^27.2.3" + jest-worker "^27.2.3" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^8.0.0" + v8-to-istanbul "^8.1.0" "@jest/source-map@^27.0.6": version "27.0.6" @@ -1360,27 +1360,27 @@ graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.0.tgz#377b46a41a6415dd4839fd0bed67b89fecea6b20" - integrity sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA== +"@jest/test-result@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.2.3.tgz#7d8f790186c7ec7600edc1d8781656268f038255" + integrity sha512-+pRxO4xSJyUxoA0ENiTq8wT+5RCFOxK4nlNY2lUes/VF33uB54GBkZeXlljZcZjuzS1Yarz4hZI/a4mBtv9jQA== dependencies: - "@jest/console" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.3" + "@jest/types" "^27.2.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.0.tgz#b02b507687825af2fdc84e90c539d36fd8cf7bc9" - integrity sha512-PrqarcpzOU1KSAK7aPwfL8nnpaqTMwPe7JBPnaOYRDSe/C6AoJiL5Kbnonqf1+DregxZIRAoDg69R9/DXMGqXA== +"@jest/test-sequencer@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.2.3.tgz#a9e376b91a64c6f5ab37f05e9d304340609125d7" + integrity sha512-QskUVqLU2zzRYchI2Q9I9A2xnbDqGo70WIWkKf4+tD+BAkohDxOF46Q7iYxznPiRTcoYtqttSZiNSS4rgQDxrQ== dependencies: - "@jest/test-result" "^27.2.0" + "@jest/test-result" "^27.2.3" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" - jest-runtime "^27.2.0" + jest-haste-map "^27.2.3" + jest-runtime "^27.2.3" -"@jest/transform@^27.2.0", "@jest/transform@^27.2.2": +"@jest/transform@^27.2.2": version "27.2.2" resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.2.tgz#89b16b4de84354fb48d15712b3ea34cadc1cb600" integrity sha512-l4Z/7PpajrOjCiXLWLfMY7fgljY0H8EwW7qdzPXXuv2aQF8kY2+Uyj3O+9Popnaw1V7JCw32L8EeI/thqFDkPA== @@ -1401,6 +1401,27 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" +"@jest/transform@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.2.3.tgz#1df37dbfe5bc29c00f227acae11348437a76b77e" + integrity sha512-ZpYsc9vK+OfV/9hMsVOrCH/9rvzBHAp91OOzkLqdWf3FWpDzjxAH+OlLGcS4U8WeWsdpe8/rOMKLwFs9DwL/2A== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.2.3" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^27.2.3" + jest-regex-util "^27.0.6" + jest-util "^27.2.3" + micromatch "^4.0.4" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + "@jest/types@^25.5.0": version "25.5.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" @@ -1422,6 +1443,17 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jest/types@^27.2.3": + version "27.2.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.3.tgz#e0242545f442242c2538656d947a147443eee8f2" + integrity sha512-UJMDg90+W2i/QsS1NIN6Go8O/rSHLFWUkofGqKsUQs54mhmCVyLTiDy1cwKhoNO5fpmr9fctm9L/bRp/YzA1uQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + "@npmcli/move-file@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" @@ -1446,10 +1478,10 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^7.0.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== +"@sinonjs/fake-timers@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.0.1.tgz#1c1c9a91419f804e59ae8df316a07dd1c3a76b94" + integrity sha512-AU7kwFxreVd6OAXcAFlKSmZquiRUU0FvYm44k1Y1QbK7Co4m0aqfGMhjykIeQp/H6rcl+nFmj0zfdUcGVs9Dew== dependencies: "@sinonjs/commons" "^1.7.0" @@ -2047,6 +2079,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -2310,7 +2347,7 @@ babel-eslint@^10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@^27.2.0, babel-jest@^27.2.2: +babel-jest@^27.2.2: version "27.2.2" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.2.tgz#d7e96f3f6f56be692de948092697e1bfea7f1184" integrity sha512-XNFNNfGKnZXzhej7TleVP4s9ktH5JjRW8Rmcbb223JJwKB/gmTyeWN0JfiPtSgnjIjDXtKNoixiy0QUHtv3vFA== @@ -2324,6 +2361,20 @@ babel-jest@^27.2.0, babel-jest@^27.2.2: graceful-fs "^4.2.4" slash "^3.0.0" +babel-jest@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.2.3.tgz#f48599a507cd33c10f58058149eb3079198d0ed7" + integrity sha512-lXslrpae1L9cXnB5F8vvD/Yj70g47sG7CGSxT+qqveK/To72X3nuCtDux0s3HN7X351IbwYoYyfDxQ7CqVbkNw== + dependencies: + "@jest/transform" "^27.2.3" + "@jest/types" "^27.2.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^27.2.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + babel-loader@^8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" @@ -2736,10 +2787,10 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -bufferutil@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.3.tgz#66724b756bed23cd7c28c4d306d7994f9943cc6b" - integrity sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw== +bufferutil@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.4.tgz#ab81373d313a6ead0d734e98c448c722734ae7bb" + integrity sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw== dependencies: node-gyp-build "^4.2.0" @@ -4659,16 +4710,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.0.tgz#40eb89a492afb726a3929ccf3611ee0799ab976f" - integrity sha512-oOTbawMQv7AK1FZURbPTgGSzmhxkjFzoARSvDjOMnOpeWuYQx1tP6rXu9MIX5mrACmyCAM7fSNP8IJO2f1p0CQ== +expect@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.2.3.tgz#9ce766b50c6a5f22edd07ca5510845ac8bcb0b10" + integrity sha512-qT+ItBIdpS2QkRzZNGFmqpV2xTjK20gftUnJ4CLmpjdGzpoEtjxb43Y80GraXLtwB+wt5kRmXURINeM3s2fQtQ== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" ansi-styles "^5.0.0" jest-get-type "^27.0.6" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" + jest-matcher-utils "^27.2.3" + jest-message-util "^27.2.3" jest-regex-util "^27.0.6" express@^4.17.1: @@ -6279,84 +6330,84 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^27.1.1: - version "27.1.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.1.1.tgz#9b3f67a34cc58e3e811e2e1e21529837653e4200" - integrity sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA== +jest-changed-files@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.2.3.tgz#83c42171d87c26d5a72e8464412cc4e239c01dda" + integrity sha512-UiT98eMtPySry7E0RmkDTL/GyoZBvJVWZBlHpHYc3ilRLxHBUxPkbMK/bcImDJKqyKbj83EaeIpeaMXPlPQ72A== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.0.tgz#ad0d6d75514050f539d422bae41344224d2328f9" - integrity sha512-WwENhaZwOARB1nmcboYPSv/PwHBUGRpA4MEgszjr9DLCl97MYw0qZprBwLb7rNzvMwfIvNGG7pefQ5rxyBlzIA== +jest-circus@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.2.3.tgz#e46ed567b316323f0b7c12dc72cd12fe46656356" + integrity sha512-msCZkvudSDhUtCCEU/Dsnp5DRzX5MQGwfuRjDwhxJxjSJ0g4c3Qwhk5Q2AjFjZS9EVm4qs9fGCf+W3BU69h3pw== dependencies: - "@jest/environment" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/environment" "^27.2.3" + "@jest/test-result" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.2.0" + expect "^27.2.3" is-generator-fn "^2.0.0" - jest-each "^27.2.0" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" - jest-runtime "^27.2.0" - jest-snapshot "^27.2.0" - jest-util "^27.2.0" - pretty-format "^27.2.0" + jest-each "^27.2.3" + jest-matcher-utils "^27.2.3" + jest-message-util "^27.2.3" + jest-runtime "^27.2.3" + jest-snapshot "^27.2.3" + jest-util "^27.2.3" + pretty-format "^27.2.3" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.0.tgz#6da5ecca5bd757e20449f5ec1f1cad5b0303d16b" - integrity sha512-bq1X/B/b1kT9y1zIFMEW3GFRX1HEhFybiqKdbxM+j11XMMYSbU9WezfyWIhrSOmPT+iODLATVjfsCnbQs7cfIA== +jest-cli@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.2.3.tgz#68add5b1626bd5502df6c7a4a4d574ebf797221a" + integrity sha512-QHXxxqE1zxMlti6wIHSbkl4Brg5Dnc0xzAVqRlVa6y2Ygv2X4ejhfMjl4VB5gWeHNsVA9C+KOm8TawpjZX8d3g== dependencies: - "@jest/core" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/core" "^27.2.3" + "@jest/test-result" "^27.2.3" + "@jest/types" "^27.2.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - jest-config "^27.2.0" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-config "^27.2.3" + jest-util "^27.2.3" + jest-validate "^27.2.3" prompts "^2.0.1" yargs "^16.0.3" -jest-config@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.0.tgz#d1c359253927005c53d11ab3e50d3b2f402a673a" - integrity sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A== +jest-config@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.2.3.tgz#64606cd1f194fb9527cbbc3e4ff23b324653b992" + integrity sha512-15fKPBZ+eiDUj02bENeBNL6IrH9ZQg7mcOlJ+SG8HwEkjpy0K+NHAREFIJbPFBaq75syWk9SYkB77fH0XtoZOQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^27.2.0" - "@jest/types" "^27.1.1" - babel-jest "^27.2.0" + "@jest/test-sequencer" "^27.2.3" + "@jest/types" "^27.2.3" + babel-jest "^27.2.3" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" is-ci "^3.0.0" - jest-circus "^27.2.0" - jest-environment-jsdom "^27.2.0" - jest-environment-node "^27.2.0" + jest-circus "^27.2.3" + jest-environment-jsdom "^27.2.3" + jest-environment-node "^27.2.3" jest-get-type "^27.0.6" - jest-jasmine2 "^27.2.0" + jest-jasmine2 "^27.2.3" jest-regex-util "^27.0.6" - jest-resolve "^27.2.0" - jest-runner "^27.2.0" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-resolve "^27.2.3" + jest-runner "^27.2.3" + jest-util "^27.2.3" + jest-validate "^27.2.3" micromatch "^4.0.4" - pretty-format "^27.2.0" + pretty-format "^27.2.3" jest-diff@^25.2.1: version "25.5.0" @@ -6368,15 +6419,15 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.0.tgz#bda761c360f751bab1e7a2fe2fc2b0a35ce8518c" - integrity sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw== +jest-diff@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.2.3.tgz#4298ecc53f7476571d0625e8fda3ade13607a864" + integrity sha512-ihRKT1mbm/Lw+vaB1un4BEof3WdfYIXT0VLvEyLUTU3XbIUgyiljis3YzFf2RFn+ECFAeyilqJa35DeeRV2NeQ== dependencies: chalk "^4.0.0" diff-sequences "^27.0.6" jest-get-type "^27.0.6" - pretty-format "^27.2.0" + pretty-format "^27.2.3" jest-docblock@^27.0.6: version "27.0.6" @@ -6385,41 +6436,41 @@ jest-docblock@^27.0.6: dependencies: detect-newline "^3.0.0" -jest-each@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.0.tgz#4c531c7223de289429fc7b2473a86e653c86d61f" - integrity sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA== +jest-each@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.2.3.tgz#7eaf7c7b362019f23c5a7998b57d82e78e6f6672" + integrity sha512-Aza5Lr+tml8x+rBGsi3A8VLqhYN1UBa2M7FLtgkUvVFQBORlV9irLl/ZE0tvk4hRqp4jW7nbGDrRo2Ey8Wl9rg== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" chalk "^4.0.0" jest-get-type "^27.0.6" - jest-util "^27.2.0" - pretty-format "^27.2.0" + jest-util "^27.2.3" + pretty-format "^27.2.3" -jest-environment-jsdom@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.0.tgz#c654dfae50ca2272c2a2e2bb95ff0af298283a3c" - integrity sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA== +jest-environment-jsdom@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.3.tgz#36ad673f93f1948dd5daa6dcb1c9b1ad09d60165" + integrity sha512-QEcgd5bloEfugjvYFACFtFkn5sW9fGYS/vJaTQZ2kj8/q1semDYWssbUWeT8Lmm/4utv9G50+bTq/vGP/LZwvQ== dependencies: - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/environment" "^27.2.3" + "@jest/fake-timers" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" - jest-mock "^27.1.1" - jest-util "^27.2.0" + jest-mock "^27.2.3" + jest-util "^27.2.3" jsdom "^16.6.0" -jest-environment-node@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.0.tgz#73ef2151cb62206669becb94cd84f33276252de5" - integrity sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg== +jest-environment-node@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.2.3.tgz#651b15f52310b12660a5fd53812b8b2e696ee9b9" + integrity sha512-OmxFyQ81n1pQ+WJW7tOkGPQL/nt0+UeubHlZJEdAzuOvYAA8zleamw0BpK7QsITdJ5euSI6t/HW3a5ihqMB4yQ== dependencies: - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/environment" "^27.2.3" + "@jest/fake-timers" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" - jest-mock "^27.1.1" - jest-util "^27.2.0" + jest-mock "^27.2.3" + jest-util "^27.2.3" jest-get-type@^25.2.6: version "25.2.6" @@ -6431,10 +6482,10 @@ jest-get-type@^27.0.6: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== -jest-haste-map@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.0.tgz#703b3a473e3f2e27d75ab07864ffd7bbaad0d75e" - integrity sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q== +jest-haste-map@^27.2.2: + version "27.2.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.2.tgz#81ccb57b1e1cd513aaaadf5016aad5dab0ede552" + integrity sha512-kaKiq+GbAvk6/sq++Ymor4Vzk6+lr0vbKs2HDVPdkKsHX2lIJRyvhypZG/QsNfQnROKWIZSpUpGuv2HySSosvA== dependencies: "@jest/types" "^27.1.1" "@types/graceful-fs" "^4.1.2" @@ -6445,18 +6496,18 @@ jest-haste-map@^27.2.0: jest-regex-util "^27.0.6" jest-serializer "^27.0.6" jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-worker "^27.2.2" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^27.2.2: - version "27.2.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.2.tgz#81ccb57b1e1cd513aaaadf5016aad5dab0ede552" - integrity sha512-kaKiq+GbAvk6/sq++Ymor4Vzk6+lr0vbKs2HDVPdkKsHX2lIJRyvhypZG/QsNfQnROKWIZSpUpGuv2HySSosvA== +jest-haste-map@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.2.3.tgz#cec807c59c312872f0ea4cc1b6b5ca7b46131705" + integrity sha512-5KE0vRSGv1Ymhd6s1t6xhTm/77otdkzqJl+9pSIYfKKCKJ7cniyE2zVC/Xj2HKuMX++aJYzQvQCIS0kqIFukAw== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" "@types/graceful-fs" "^4.1.2" "@types/node" "*" anymatch "^3.0.3" @@ -6464,76 +6515,76 @@ jest-haste-map@^27.2.2: graceful-fs "^4.2.4" jest-regex-util "^27.0.6" jest-serializer "^27.0.6" - jest-util "^27.2.0" - jest-worker "^27.2.2" + jest-util "^27.2.3" + jest-worker "^27.2.3" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.0.tgz#1ece0ee37c348b59ed3dfcfe509fc24e3377b12d" - integrity sha512-NcPzZBk6IkDW3Z2V8orGueheGJJYfT5P0zI/vTO/Jp+R9KluUdgFrgwfvZ0A34Kw6HKgiWFILZmh3oQ/eS+UxA== +jest-jasmine2@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.2.3.tgz#19fe549b7e86128cd7d0d1668ebf4377dd3981f9" + integrity sha512-pjgANGYj1l6qxBkSPEYuxGvqVVf20uJ26XpNnYV/URC7ayt+UdRavUhEwzDboiewq/lCgNFCDBEqd6eeQVEs8w== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^27.2.0" + "@jest/environment" "^27.2.3" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/test-result" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^27.2.0" + expect "^27.2.3" is-generator-fn "^2.0.0" - jest-each "^27.2.0" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" - jest-runtime "^27.2.0" - jest-snapshot "^27.2.0" - jest-util "^27.2.0" - pretty-format "^27.2.0" + jest-each "^27.2.3" + jest-matcher-utils "^27.2.3" + jest-message-util "^27.2.3" + jest-runtime "^27.2.3" + jest-snapshot "^27.2.3" + jest-util "^27.2.3" + pretty-format "^27.2.3" throat "^6.0.1" -jest-leak-detector@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.0.tgz#9a7ca2dad1a21c4e49ad2a8ad7f1214ffdb86a28" - integrity sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA== +jest-leak-detector@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.2.3.tgz#6c60a795fe9b07442c604140373571559d4d467d" + integrity sha512-hoV8d7eJvayIaPrISBoLaMN0DE+GRSR2/vbAcOONffO+RYzbuW3klsOievx+pCShYKxSKlhxxO90zWice+LLew== dependencies: jest-get-type "^27.0.6" - pretty-format "^27.2.0" + pretty-format "^27.2.3" -jest-matcher-utils@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.0.tgz#b4d224ab88655d5fab64b96b989ac349e2f5da43" - integrity sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw== +jest-matcher-utils@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.2.3.tgz#db7f992f3921f5004f4de36aafa0c03f2565122a" + integrity sha512-8n2/iAEOtNoDxVtUuaGtQdbSVYtZn6saT+PyV8UIf9fJErzDdozjB4fUxJm7TX1DzhhoAKFpIFH8UNvG4942PA== dependencies: chalk "^4.0.0" - jest-diff "^27.2.0" + jest-diff "^27.2.3" jest-get-type "^27.0.6" - pretty-format "^27.2.0" + pretty-format "^27.2.3" -jest-message-util@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.0.tgz#2f65c71df55267208686b1d7514e18106c91ceaf" - integrity sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w== +jest-message-util@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.2.3.tgz#cd1091a3f0f3ff919756b15cfccc0ba43eeeeff0" + integrity sha512-yjVqTQ2Ds1WCGXsTuW0m1uK8RXOE44SJDw7tWUrhn6ZttWDbPmLhH8npDsGGfAmSayKFSo2C0NX0tP2qblc3Gw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.4" - pretty-format "^27.2.0" + pretty-format "^27.2.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.1.1: - version "27.1.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.1.1.tgz#c7a2e81301fdcf3dab114931d23d89ec9d0c3a82" - integrity sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw== +jest-mock@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.2.3.tgz#f532d2c8c158e8b899f2a0a5bd3077af37619c29" + integrity sha512-IvgCdUQBU/XDJl9/NLYtKG9o2XlJOQ8hFYDiX7QmNv2195Y1nNGM7hw1H58wT01zz7bohfhJplqwFfULZlrXjg== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -6546,72 +6597,72 @@ jest-regex-util@^27.0.6: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve-dependencies@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.0.tgz#b56a1aab95b0fd21e0a69a15fda985c05f902b8a" - integrity sha512-EY5jc/Y0oxn+oVEEldTidmmdVoZaknKPyDORA012JUdqPyqPL+lNdRyI3pGti0RCydds6coaw6xt4JQY54dKsg== +jest-resolve-dependencies@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.2.3.tgz#fcb620684108fe7a099185052434d26f17de98e6" + integrity sha512-H03NyzmKfYHCciaYBJqbJOrWCVCdwdt32xZDPFP5dBbe39wsfz41aOkhw8FUZ6qVYVO6rz0nLZ3G7wgbsQQsYQ== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" jest-regex-util "^27.0.6" - jest-snapshot "^27.2.0" + jest-snapshot "^27.2.3" -jest-resolve@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.0.tgz#f5d053693ab3806ec2f778e6df8b0aa4cfaef95f" - integrity sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw== +jest-resolve@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.2.3.tgz#868911cf705c537f433befcfc65e6ddc70c9d7f9" + integrity sha512-+tbm53gKpwuRsqCV+zhhjq/6NxMs/I9zECEMzu0LtmbYD5Gusj+rU497f6lkl5LG/GndvfTjJlysYrnSCcZUJA== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" chalk "^4.0.0" escalade "^3.1.1" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" + jest-haste-map "^27.2.3" jest-pnp-resolver "^1.2.2" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-util "^27.2.3" + jest-validate "^27.2.3" resolve "^1.20.0" slash "^3.0.0" -jest-runner@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.0.tgz#281b255d88a473aebc0b5cb46e58a83a1251cab3" - integrity sha512-Cl+BHpduIc0cIVTjwoyx0pQk4Br8gn+wkr35PmKCmzEdOUnQ2wN7QVXA8vXnMQXSlFkN/+KWnk20TAVBmhgrww== +jest-runner@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.2.3.tgz#22f6ef7bd4140fec74cec18eef29c24d07cb6ad5" + integrity sha512-bvGlIh3wR/LGjSHPW/IpQU6K2atO45U5p7UDqWThPKT622Wm/ZJ2DNbgNzb4P9ZO/UxB22jXoKJPsMAdWGEdmA== dependencies: - "@jest/console" "^27.2.0" - "@jest/environment" "^27.2.0" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/console" "^27.2.3" + "@jest/environment" "^27.2.3" + "@jest/test-result" "^27.2.3" + "@jest/transform" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" jest-docblock "^27.0.6" - jest-environment-jsdom "^27.2.0" - jest-environment-node "^27.2.0" - jest-haste-map "^27.2.0" - jest-leak-detector "^27.2.0" - jest-message-util "^27.2.0" - jest-resolve "^27.2.0" - jest-runtime "^27.2.0" - jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-environment-jsdom "^27.2.3" + jest-environment-node "^27.2.3" + jest-haste-map "^27.2.3" + jest-leak-detector "^27.2.3" + jest-message-util "^27.2.3" + jest-resolve "^27.2.3" + jest-runtime "^27.2.3" + jest-util "^27.2.3" + jest-worker "^27.2.3" source-map-support "^0.5.6" throat "^6.0.1" -jest-runtime@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.0.tgz#998295ccd80008b3031eeb5cc60e801e8551024b" - integrity sha512-6gRE9AVVX49hgBbWQ9PcNDeM4upMUXzTpBs0kmbrjyotyUyIJixLPsYjpeTFwAA07PVLDei1iAm2chmWycdGdQ== +jest-runtime@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.2.3.tgz#e6fc25bbbc63b19fae50c3994060efb1b2922b7e" + integrity sha512-8WPgxENQchmUM0jpDjK1IxacseK9vDDz6T471xs5pNIQrj8typeT0coRigRCb1sPYeXQ66SqVERMgPj6SEeblQ== dependencies: - "@jest/console" "^27.2.0" - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/globals" "^27.2.0" + "@jest/console" "^27.2.3" + "@jest/environment" "^27.2.3" + "@jest/fake-timers" "^27.2.3" + "@jest/globals" "^27.2.3" "@jest/source-map" "^27.0.6" - "@jest/test-result" "^27.2.0" - "@jest/transform" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/test-result" "^27.2.3" + "@jest/transform" "^27.2.3" + "@jest/types" "^27.2.3" "@types/yargs" "^16.0.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" @@ -6620,14 +6671,14 @@ jest-runtime@^27.2.0: exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-haste-map "^27.2.0" - jest-message-util "^27.2.0" - jest-mock "^27.1.1" + jest-haste-map "^27.2.3" + jest-message-util "^27.2.3" + jest-mock "^27.2.3" jest-regex-util "^27.0.6" - jest-resolve "^27.2.0" - jest-snapshot "^27.2.0" - jest-util "^27.2.0" - jest-validate "^27.2.0" + jest-resolve "^27.2.3" + jest-snapshot "^27.2.3" + jest-util "^27.2.3" + jest-validate "^27.2.3" slash "^3.0.0" strip-bom "^4.0.0" yargs "^16.0.3" @@ -6640,10 +6691,10 @@ jest-serializer@^27.0.6: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.0.tgz#7961e7107ac666a46fbb23e7bb48ce0b8c6a9285" - integrity sha512-MukJvy3KEqemCT2FoT3Gum37CQqso/62PKTfIzWmZVTsLsuyxQmJd2PI5KPcBYFqLlA8LgZLHM8ZlazkVt8LsQ== +jest-snapshot@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.2.3.tgz#e3f39e1708a4d93dfa1297e73b5d2feec44f6d0c" + integrity sha512-NJz+PNvTNTxVfNdLXccKUMeVH5O7jZ+9dNXH5TP2WtkLR+CiPRiPveWDgM8o3aaxB6R0Mm8vsD7ieEkEh6ZBBQ== dependencies: "@babel/core" "^7.7.2" "@babel/generator" "^7.7.2" @@ -6651,23 +6702,23 @@ jest-snapshot@^27.2.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/transform" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/transform" "^27.2.3" + "@jest/types" "^27.2.3" "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.2.0" + expect "^27.2.3" graceful-fs "^4.2.4" - jest-diff "^27.2.0" + jest-diff "^27.2.3" jest-get-type "^27.0.6" - jest-haste-map "^27.2.0" - jest-matcher-utils "^27.2.0" - jest-message-util "^27.2.0" - jest-resolve "^27.2.0" - jest-util "^27.2.0" + jest-haste-map "^27.2.3" + jest-matcher-utils "^27.2.3" + jest-message-util "^27.2.3" + jest-resolve "^27.2.3" + jest-util "^27.2.3" natural-compare "^1.4.0" - pretty-format "^27.2.0" + pretty-format "^27.2.3" semver "^7.3.2" jest-util@^27.2.0: @@ -6682,29 +6733,41 @@ jest-util@^27.2.0: is-ci "^3.0.0" picomatch "^2.2.3" -jest-validate@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.0.tgz#b7535f12d95dd3b4382831f4047384ca098642ab" - integrity sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ== +jest-util@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.3.tgz#f766354b7c489c1f9ea88cd1d96d044fbd2b5d4d" + integrity sha512-78BEka2+77lqD7LN4mSzUdZMngHZtVAsmZ5B8+qOWfN4bCYNUmi/eGNLm91jA77gG1QZJSXsDOCWB0qbXDT1Fw== dependencies: - "@jest/types" "^27.1.1" + "@jest/types" "^27.2.3" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + picomatch "^2.2.3" + +jest-validate@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.2.3.tgz#4fcc49e581f13fbe260a77e711a80f0256138a7a" + integrity sha512-HUfTZ/W87zoxOuEGC01ujXzoLzRpJqvhMdIrRilpXGmso2vJWw3bHpbWKhivYMr0X/BjitLrHywj/+niNfIcEA== + dependencies: + "@jest/types" "^27.2.3" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^27.0.6" leven "^3.1.0" - pretty-format "^27.2.0" + pretty-format "^27.2.3" -jest-watcher@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.0.tgz#dc2eef4c13c6d41cebf3f1fc5f900a54b51c2ea0" - integrity sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg== +jest-watcher@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.2.3.tgz#2989228bdd05138094f7ec19a23cbb2665f2efb7" + integrity sha512-SvUmnL/QMb55B6iWJ3Jpq6bG2fSRcrMaGakY60i6j8p9+Ct42mpkq90qaYB+rnSLaiW/QQN+lTJZmK+lA6vksA== dependencies: - "@jest/test-result" "^27.2.0" - "@jest/types" "^27.1.1" + "@jest/test-result" "^27.2.3" + "@jest/types" "^27.2.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.2.0" + jest-util "^27.2.3" string-length "^4.0.1" jest-worker@^26.5.0: @@ -6716,32 +6779,32 @@ jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0" - integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA== +jest-worker@^27.2.2: + version "27.2.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.2.tgz#636deeae8068abbf2b34b4eb9505f8d4e5bd625c" + integrity sha512-aG1xq9KgWB2CPC8YdMIlI8uZgga2LFNcGbHJxO8ctfXAydSaThR4EewKQGg3tBOC+kS3vhPGgymsBdi9VINjPw== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^27.2.2: - version "27.2.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.2.tgz#636deeae8068abbf2b34b4eb9505f8d4e5bd625c" - integrity sha512-aG1xq9KgWB2CPC8YdMIlI8uZgga2LFNcGbHJxO8ctfXAydSaThR4EewKQGg3tBOC+kS3vhPGgymsBdi9VINjPw== +jest-worker@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.3.tgz#396e83d04ca575230a9bcb255c2b66aec07cb931" + integrity sha512-ZwOvv4GCIPviL+Ie4pVguz4N5w/6IGbTaHBYOl3ZcsZZktaL7d8JOU0rmovoED7AJZKA8fvmLbBg8yg80u/tGA== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.2.0.tgz#3bc329287d699d26361e2094919630eefdf1ac0d" - integrity sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg== +jest@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.2.3.tgz#9c2af9ce874a3eb202f83d92fbc1cc61ccc73248" + integrity sha512-r4ggA29J5xUg93DpvbsX+AXlFMWE3hZ5Y6BfgTl8PJvWelVezNPkmrsixuGoDBTHTCwScRSH0O4wsoeUgLie2w== dependencies: - "@jest/core" "^27.2.0" + "@jest/core" "^27.2.3" import-local "^3.0.2" - jest-cli "^27.2.0" + jest-cli "^27.2.3" js-base64@^2.1.9: version "2.6.4" @@ -8746,13 +8809,13 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^27.2.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" - integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== +pretty-format@^27.2.3: + version "27.2.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.3.tgz#c76710de6ebd8b1b412a5668bacf4a6c2f21a029" + integrity sha512-wvg2HzuGKKEE/nKY4VdQ/LM8w8pRZvp0XpqhwgaZBbjTwd5UdF2I4wvwZjyUwu8G+HI6g4t6u9b2FZlKhlzxcQ== dependencies: - "@jest/types" "^27.1.1" - ansi-regex "^5.0.0" + "@jest/types" "^27.2.3" + ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^17.0.1" @@ -11139,10 +11202,10 @@ v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== -v8-to-istanbul@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" - integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== +v8-to-istanbul@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" + integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0"