diff --git a/Gemfile b/Gemfile index 421c4302..dc0d8c51 100644 --- a/Gemfile +++ b/Gemfile @@ -45,7 +45,8 @@ gem 'whenever', require: false gem 'concurrent-ruby' gem 'mnemosyne-ruby' gem 'newrelic_rpm' -gem 'sentry-raven' +gem 'sentry-rails' +gem 'sentry-ruby' group :development, :staging do gem 'better_errors' diff --git a/Gemfile.lock b/Gemfile.lock index 28f7111a..64bb9281 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -146,7 +146,7 @@ GEM faye-websocket (0.11.0) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) - ffi (1.14.2) + ffi (1.15.0) forgery (0.8.1) globalid (0.4.2) activesupport (>= 4.2.0) @@ -228,7 +228,7 @@ GEM nested_form (0.3.2) netrc (0.11.0) newrelic_rpm (6.15.0) - nio4r (2.5.5) + nio4r (2.5.7) nokogiri (1.10.10) mini_portile2 (~> 2.4.0) nyan-cat-formatter (0.12.0) @@ -377,8 +377,8 @@ GEM rubocop (~> 1.0) rubocop-ast (>= 1.1.0) ruby-progressbar (1.11.0) - ruby-vips (2.0.17) - ffi (~> 1.9) + ruby-vips (2.1.0) + ffi (~> 1.12) ruby2_keywords (0.0.4) rubytree (1.0.0) json (~> 2.1) @@ -397,9 +397,17 @@ GEM selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - semantic_range (2.3.1) - sentry-raven (3.1.1) + semantic_range (3.0.0) + sentry-rails (4.2.2) + rails (>= 5.0) + sentry-ruby-core (~> 4.2.0) + sentry-ruby (4.2.2) + concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) + sentry-ruby-core (= 4.2.2) + sentry-ruby-core (4.2.2) + concurrent-ruby + faraday shoulda-matchers (4.5.1) activesupport (>= 4.2.0) simplecov (0.21.2) @@ -527,7 +535,8 @@ DEPENDENCIES rubyzip sass-rails selenium-webdriver - sentry-raven + sentry-rails + sentry-ruby shoulda-matchers simplecov slim-rails @@ -543,4 +552,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.1.4 + 2.2.13 diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a158fc15..0492d7c7 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -7,7 +7,7 @@ class ApplicationController < ActionController::Base MEMBER_ACTIONS = %i[destroy edit show update].freeze after_action :verify_authorized, except: %i[help welcome] - before_action :set_raven_context, :set_locale, :allow_iframe_requests, :load_embed_options + before_action :set_sentry_context, :set_locale, :allow_iframe_requests, :load_embed_options protect_from_forgery(with: :exception, prepend: true) rescue_from Pundit::NotAuthorizedError, with: :render_not_authorized @@ -20,17 +20,17 @@ class ApplicationController < ActionController::Base raise Pundit::NotAuthorizedError unless current_user end - def set_raven_context + def set_sentry_context return if current_user.blank? - Raven.user_context( + Sentry.set_user( id: current_user.id, type: current_user.class.name, username: current_user.displayname, consumer: current_user.consumer.name ) end - private :set_raven_context + private :set_sentry_context def render_not_authorized respond_to do |format| @@ -50,7 +50,7 @@ class ApplicationController < ActionController::Base def set_locale session[:locale] = params[:custom_locale] || params[:locale] || session[:locale] I18n.locale = session[:locale] || I18n.default_locale - Raven.extra_context(locale: I18n.locale) + Sentry.set_extras(locale: I18n.locale) end private :set_locale @@ -68,7 +68,7 @@ class ApplicationController < ActionController::Base else {} end - Raven.extra_context(@embed_options) + Sentry.set_extras(@embed_options) @embed_options end private :load_embed_options diff --git a/app/controllers/concerns/lti.rb b/app/controllers/concerns/lti.rb index c63d4390..6290d5a1 100644 --- a/app/controllers/concerns/lti.rb +++ b/app/controllers/concerns/lti.rb @@ -154,7 +154,7 @@ module Lti if provider.nil? {status: 'error'} elsif provider.outcome_service? - Raven.extra_context({ + Sentry.set_extras({ provider: provider.inspect, score: submission.normalized_score, lti_parameter: lti_parameter.inspect, diff --git a/app/controllers/execution_environments_controller.rb b/app/controllers/execution_environments_controller.rb index 66a212a8..b373926a 100644 --- a/app/controllers/execution_environments_controller.rb +++ b/app/controllers/execution_environments_controller.rb @@ -121,7 +121,7 @@ class ExecutionEnvironmentsController < ApplicationController rescue DockerClient::Error => error @docker_images = [] flash[:warning] = error.message - Raven.capture_exception(error) + Sentry.capture_exception(error) end private :set_docker_images diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index b4aa8073..44db28df 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -188,7 +188,7 @@ class ExercisesController < ApplicationController rescue Proforma::ProformaError render json: t('exercises.import_codeharbor.import_errors.invalid'), status: 400 rescue StandardError => e - Raven.capture_exception(e) + Sentry.capture_exception(e) render json: t('exercises.import_codeharbor.import_errors.internal_error'), status: 500 end @@ -392,7 +392,7 @@ class ExercisesController < ApplicationController end def redirect_to_lti_return_path - Raven.extra_context( + Sentry.set_extras( consumers_id: @submission.user&.consumer, external_users_id: @submission.user_id, exercises_id: @submission.exercise_id, diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index fd8b90bf..4b888fe3 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -196,7 +196,7 @@ class SubmissionsController < ApplicationController rescue JSON::ParserError => error socket.send data Rails.logger.debug('Rescued parsing error, sent the received client data to docker:' + data) - Raven.extra_context(data: data) + Sentry.set_extras(data: data) end end @@ -417,7 +417,7 @@ class SubmissionsController < ApplicationController container = Docker::Container.get(params[:container_id]) DockerClient.destroy_container(container) rescue Docker::Error::NotFoundError => error - Raven.capture_exception(error) + Sentry.capture_exception(error) ensure head :ok end @@ -447,7 +447,7 @@ class SubmissionsController < ApplicationController yield(server_sent_event) if block_given? server_sent_event.write({code: 200}, event: 'close') rescue => exception - Raven.capture_exception(exception) + Sentry.capture_exception(exception) logger.error(exception.message) logger.error(exception.backtrace.join("\n")) server_sent_event.write({code: 500}, event: 'close') diff --git a/app/controllers/user_exercise_feedbacks_controller.rb b/app/controllers/user_exercise_feedbacks_controller.rb index 19a5c75d..96560296 100644 --- a/app/controllers/user_exercise_feedbacks_controller.rb +++ b/app/controllers/user_exercise_feedbacks_controller.rb @@ -23,7 +23,7 @@ class UserExerciseFeedbacksController < ApplicationController end def create - Raven.extra_context(params: uef_params) + Sentry.set_extras(params: uef_params) @exercise = Exercise.find(uef_params[:exercise_id]) rfc = RequestForComment.unsolved.where(exercise_id: @exercise.id, user_id: current_user.id).first diff --git a/app/models/linter_check_run.rb b/app/models/linter_check_run.rb index 3c84881f..00f96a73 100644 --- a/app/models/linter_check_run.rb +++ b/app/models/linter_check_run.rb @@ -24,7 +24,7 @@ class LinterCheckRun < ApplicationRecord ) rescue ActiveRecord::RecordInvalid # Something bad happened. Probably, the RegEx in lib/py_lint_adapter.rb didn't work. - Raven.extra_context(testrun: testrun, linter_result: linter_result) + Sentry.set_extras(testrun: testrun, linter_result: linter_result) end end end diff --git a/app/views/admin/dashboard/show.html.slim b/app/views/admin/dashboard/show.html.slim index ae497ad5..b4d836f5 100644 --- a/app/views/admin/dashboard/show.html.slim +++ b/app/views/admin/dashboard/show.html.slim @@ -11,7 +11,7 @@ h2 Version div.mb-4 = "Release:" - pre = Raven.configuration.release + pre = Sentry.configuration.release h2 Docker diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 3b2ebc60..6328bf8f 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -20,12 +20,12 @@ html lang="#{I18n.locale || I18n.default_locale}" script type="text/javascript" | I18n.defaultLocale = "#{I18n.default_locale}"; | I18n.locale = "#{I18n.locale}"; - - unless Raven.configuration.current_environment == "development" + - unless Sentry.configuration.environment == "development" | Sentry.init({ - | dsn: 'https://637ca99538224b4bb28cd9e670e1b372@sentry.xikolo.de/33', + | dsn: 'https://2616b10855e04ce1b748775203ff0f7c@o257002.ingest.sentry.io/5667283', | attachStacktrace: true, - | release: "#{Raven.configuration.release}", - | environment: "#{Raven.configuration.current_environment}", + | release: "#{Sentry.configuration.release}", + | environment: "#{Sentry.configuration.environment}", | }); - if @current_user | Sentry.configureScope(function(scope) { diff --git a/app/views/request_for_comments/show.html.slim b/app/views/request_for_comments/show.html.slim index 64fecaf4..183ddeda 100644 --- a/app/views/request_for_comments/show.html.slim +++ b/app/views/request_for_comments/show.html.slim @@ -40,7 +40,7 @@ - output_runs.each do |testrun| - output = testrun.try(:output) - if output - - Raven.extra_context(output: output) + - Sentry.set_extras(output: output) - begin - Timeout::timeout(2) do // (?:\\"|.) is required to correctly identify " within the output. diff --git a/config/initializers/raven.rb b/config/initializers/raven.rb deleted file mode 100644 index 6fe956d2..00000000 --- a/config/initializers/raven.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -require 'concurrent' - -Rails.application.tap do |app| - pool = ::Concurrent::ThreadPoolExecutor.new(max_queue: 10) - - Raven.configure do |config| - config.sanitize_fields = app.config.filter_parameters.map(&:to_s) - - config.processors -= [Raven::Processor::PostData] # Do this to send POST data - # config.excluded_exceptions -= ['ActionController::InvalidAuthenticityToken'] - - config.async = lambda do |event| - pool.post { ::Raven.send_event(event) } - end - - # Do not sent full list of gems with each event - config.send_modules = false - end -end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb new file mode 100644 index 00000000..089400a6 --- /dev/null +++ b/config/initializers/sentry.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +Sentry.init do |config| + # Do not send full list of gems with each event + config.send_modules = false +end diff --git a/lib/docker_client.rb b/lib/docker_client.rb index 675a13a1..c2a0df32 100644 --- a/lib/docker_client.rb +++ b/lib/docker_client.rb @@ -38,7 +38,7 @@ class DockerClient Pathname.new(local_workspace_path).children.each do |p| p.rmtree rescue Errno::ENOENT, Errno::EACCES => error - Raven.capture_exception(error) + Sentry.capture_exception(error) Rails.logger.error("clean_container_workspace: Got #{error.class.to_s}: #{error.to_s}") end # FileUtils.rmdir(Pathname.new(local_workspace_path)) @@ -237,7 +237,7 @@ class DockerClient clean_container_workspace(container) FileUtils.rmtree(local_workspace_path(container)) rescue Errno::ENOENT, Errno::EACCES => error - Raven.capture_exception(error) + Sentry.capture_exception(error) Rails.logger.error("clean_container_workspace: Got #{error.class.to_s}: #{error.to_s}") end diff --git a/lib/docker_container_pool.rb b/lib/docker_container_pool.rb index b2cfba85..abddb49d 100644 --- a/lib/docker_container_pool.rb +++ b/lib/docker_container_pool.rb @@ -16,16 +16,16 @@ class DockerContainerPool #Rails.logger.debug('created container ' + container.to_s + ' for execution environment ' + execution_environment.to_s) container rescue StandardError => e - Raven.extra_context({container: container.inspect, execution_environment: execution_environment.inspect, config: config.inspect}) - Raven.capture_exception(e) + Sentry.set_extras({container: container.inspect, execution_environment: execution_environment.inspect, config: config.inspect}) + Sentry.capture_exception(e) nil end def self.return_container(container, execution_environment) Faraday.get(config[:location] + "/docker_container_pool/return_container/" + container.id) rescue StandardError => e - Raven.extra_context({container: container.inspect, execution_environment: execution_environment.inspect, config: config.inspect}) - Raven.capture_exception(e) + Sentry.set_extras({container: container.inspect, execution_environment: execution_environment.inspect, config: config.inspect}) + Sentry.capture_exception(e) nil end @@ -36,8 +36,8 @@ class DockerContainerPool container_id = JSON.parse(Faraday.get(config[:location] + "/docker_container_pool/get_container/" + execution_environment.id.to_s).body)['id'] Docker::Container.get(container_id) unless container_id.blank? rescue StandardError => e - Raven.extra_context({container_id: container_id.inspect, execution_environment: execution_environment.inspect, config: config.inspect}) - Raven.capture_exception(e) + Sentry.set_extras({container_id: container_id.inspect, execution_environment: execution_environment.inspect, config: config.inspect}) + Sentry.capture_exception(e) nil end else @@ -53,15 +53,15 @@ class DockerContainerPool response = JSON.parse(Faraday.get(config[:location] + "/docker_container_pool/quantities").body) response.transform_keys(&:to_i) rescue StandardError => e - Raven.extra_context({response: response.inspect}) - Raven.capture_exception(e) + Sentry.set_extras({response: response.inspect}) + Sentry.capture_exception(e) [] end def self.dump_info JSON.parse(Faraday.get(config[:location] + "/docker_container_pool/dump_info").body) rescue StandardError => e - Raven.capture_exception(e) + Sentry.capture_exception(e) nil end end diff --git a/lib/py_lint_adapter.rb b/lib/py_lint_adapter.rb index 4e5ea235..d7d8c133 100644 --- a/lib/py_lint_adapter.rb +++ b/lib/py_lint_adapter.rb @@ -34,7 +34,7 @@ class PyLintAdapter < TestingFrameworkAdapter end || [] end rescue Timeout::Error - Raven.capture_message({stdout: output[:stdout], regex: ASSERTION_ERROR_REGEXP}.to_json) + Sentry.capture_message({stdout: output[:stdout], regex: ASSERTION_ERROR_REGEXP}.to_json) assertion_error_matches = [] end concatenated_errors = assertion_error_matches.map { |result| "#{result[:name]}: #{result[:result]}" }.flatten @@ -62,7 +62,7 @@ class PyLintAdapter < TestingFrameworkAdapter captures = message[:result].match(Regexp.new(regex))&.named_captures&.symbolize_keys if captures.nil? - Raven.capture_message({regex: regex, message: message[:result]}.to_json) + Sentry.capture_message({regex: regex, message: message[:result]}.to_json) replacement = {} else replacement = captures.each do |key, value| @@ -85,8 +85,8 @@ class PyLintAdapter < TestingFrameworkAdapter assessment rescue StandardError => e # A key was not defined or something really bad happened - Raven.extra_context(assessment) - Raven.capture_exception(e) + Sentry.set_extras(assessment) + Sentry.capture_exception(e) assessment end @@ -104,7 +104,7 @@ class PyLintAdapter < TestingFrameworkAdapter # Read config key I18n.t(keys.append('log_missing').join('.'), default: false) end - Raven.capture_message({key: key, default: default}.to_json) if translation == default && log_missing + Sentry.capture_message({key: key, default: default}.to_json) if translation == default && log_missing translation end end diff --git a/lib/py_unit_adapter.rb b/lib/py_unit_adapter.rb index a19839d4..30528c32 100644 --- a/lib/py_unit_adapter.rb +++ b/lib/py_unit_adapter.rb @@ -28,7 +28,7 @@ class PyUnitAdapter < TestingFrameworkAdapter }.flatten || [] end rescue Timeout::Error - Raven.capture_message({stderr: output[:stderr], regex: ASSERTION_ERROR_REGEXP}.to_json) + Sentry.capture_message({stderr: output[:stderr], regex: ASSERTION_ERROR_REGEXP}.to_json) assertion_error_matches = [] end {count: count, failed: failed + errors, error_messages: assertion_error_matches} diff --git a/package.json b/package.json index b9d70348..9d4682ad 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.15.2", "@rails/webpacker": "^5.2.1", - "@sentry/browser": "^5.30.0", + "@sentry/browser": "^6.2.1", "bootstrap": "^4.6.0", "bootswatch": "^4.6.0", "chosen-js": "^1.8.7", diff --git a/spec/controllers/internal_users_controller_spec.rb b/spec/controllers/internal_users_controller_spec.rb index d5fce456..d354edde 100644 --- a/spec/controllers/internal_users_controller_spec.rb +++ b/spec/controllers/internal_users_controller_spec.rb @@ -166,7 +166,7 @@ describe InternalUsersController do describe 'GET #forgot_password' do context 'when no user is logged in' do before(:each) do - allow(controller).to receive(:set_raven_context).and_return(nil) + allow(controller).to receive(:set_sentry_context).and_return(nil) expect(controller).to receive(:current_user).and_return(nil) get :forgot_password @@ -178,7 +178,7 @@ describe InternalUsersController do context 'when a user is already logged in' do before(:each) do - allow(controller).to receive(:set_raven_context).and_return(nil) + allow(controller).to receive(:set_sentry_context).and_return(nil) expect(controller).to receive(:current_user).and_return(user) get :forgot_password diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 88833c0f..b7216abf 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -155,7 +155,7 @@ describe SessionsController do describe 'DELETE #destroy' do let(:user) { double } before(:each) { - allow(controller).to receive(:set_raven_context).and_return(nil) + allow(controller).to receive(:set_sentry_context).and_return(nil) expect(controller).to receive(:current_user).at_least(:once).and_return(user) } @@ -219,7 +219,7 @@ describe SessionsController do describe 'GET #new' do context 'when no user is logged in' do before(:each) do - allow(controller).to receive(:set_raven_context).and_return(nil) + allow(controller).to receive(:set_sentry_context).and_return(nil) expect(controller).to receive(:current_user).and_return(nil) get :new @@ -231,7 +231,7 @@ describe SessionsController do context 'when a user is already logged in' do before(:each) do - allow(controller).to receive(:set_raven_context).and_return(nil) + allow(controller).to receive(:set_sentry_context).and_return(nil) expect(controller).to receive(:current_user).and_return(FactoryBot.build(:teacher)) get :new diff --git a/yarn.lock b/yarn.lock index 887e67f2..a7282b9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -898,56 +898,56 @@ webpack-cli "^3.3.12" webpack-sources "^1.4.3" -"@sentry/browser@^5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.30.0.tgz#c28f49d551db3172080caef9f18791a7fd39e3b3" - integrity sha512-rOb58ZNVJWh1VuMuBG1mL9r54nZqKeaIlwSlvzJfc89vyfd7n6tQ1UXMN383QBz/MS5H5z44Hy5eE+7pCrYAfw== +"@sentry/browser@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.2.1.tgz#f9f277e6f8cad0c7efd1a01726095d63a47a1c16" + integrity sha512-OAikFZ9EimD3noxMp8tA6Cf6qJcQ2U8k5QSgTPwdx+09nZOGJzbRFteK7WWmrS93ZJdzN61lpSQbg5v+bmmfbQ== dependencies: - "@sentry/core" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" + "@sentry/core" "6.2.1" + "@sentry/types" "6.2.1" + "@sentry/utils" "6.2.1" tslib "^1.9.3" -"@sentry/core@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" - integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== +"@sentry/core@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.2.1.tgz#8b177e9bf591e2e7ddcb04f0b1403de3f5aa8755" + integrity sha512-jPqQEtafxxDtLONhCbTHh/Uq8mZRhsfbwJTSVYfPVEe/ELfFZLQK7tP6rOh7zEWKbTkE0mE6XcaoH3ZRAhgrqg== dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" + "@sentry/hub" "6.2.1" + "@sentry/minimal" "6.2.1" + "@sentry/types" "6.2.1" + "@sentry/utils" "6.2.1" tslib "^1.9.3" -"@sentry/hub@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== +"@sentry/hub@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.2.1.tgz#35bc6bf841a93f4354b3a17592c938b3dba20b73" + integrity sha512-pG7wCQeRpzeP6t0bT4T0X029R19dbDS3/qswF8BL6bg0AI3afjfjBAZm/fqn1Uwe/uBoMHVVdbxgJDZeQ5d4rQ== dependencies: - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" + "@sentry/types" "6.2.1" + "@sentry/utils" "6.2.1" tslib "^1.9.3" -"@sentry/minimal@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" - integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== +"@sentry/minimal@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.2.1.tgz#8f01480e1b56bc7dd54adf925e5317f233e19384" + integrity sha512-wuSXB4Ayxv9rBEQ4pm7fnG4UU2ZPtPnnChoEfd4/mw1UthXSvmPFEn6O4pdo2G8fTkl8eqm6wT/Q7uIXMEmw+A== dependencies: - "@sentry/hub" "5.30.0" - "@sentry/types" "5.30.0" + "@sentry/hub" "6.2.1" + "@sentry/types" "6.2.1" tslib "^1.9.3" -"@sentry/types@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" - integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== +"@sentry/types@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.2.1.tgz#28c946230b2023f72307b65606d32052ad9e5353" + integrity sha512-h0OV1QT+fv5ojfK5/+iEXClu33HirmvbjcQC2jf05IHj9yXIOWy6EB10S8nBjuLiiFqQiAQYj3FN9Ip4eN8NJA== -"@sentry/utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== +"@sentry/utils@6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.2.1.tgz#bfcb12c20d44bf2aeb0073b1264703c11c179ebd" + integrity sha512-6kQgM/yBPdXu+3qbJnI6HBcWztN9QfiMkH++ZiKk4ERhg9d2LYWlze478uTU5Fyo/JQYcp+McpjtjpR9QIrr0g== dependencies: - "@sentry/types" "5.30.0" + "@sentry/types" "6.2.1" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -969,9 +969,9 @@ integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "14.14.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" - integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== + version "14.14.32" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.32.tgz#90c5c4a8d72bbbfe53033f122341343249183448" + integrity sha512-/Ctrftx/zp4m8JOujM5ZhwzlWLx22nbQJiVqz8/zE15gOeEW+uly3FSX4fGFpcfEvFzXcMCJwq9lGVWgyARXhg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1843,9 +1843,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181: - version "1.0.30001194" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001194.tgz#3d16ff3d734a5a7d9818402c28b1f636c5be5bed" - integrity sha512-iDUOH+oFeBYk5XawYsPtsx/8fFpndAPUQJC7gBTfxHM8xw5nOZv7ceAD4frS1MKCLUac7QL5wdAJiFQlDRjXlA== + version "1.0.30001197" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001197.tgz#47ad15b977d2f32b3ec2fe2b087e0c50443771db" + integrity sha512-8aE+sqBqtXz4G8g35Eg/XEaFr2N7rd/VQ6eABGBmNtcB8cN6qNJhMi6oSFy4UWWZgqgL3filHT8Nha4meu3tsw== case-sensitive-paths-webpack-plugin@^2.3.0: version "2.4.0" @@ -2014,9 +2014,9 @@ color-name@^1.0.0: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + version "1.5.5" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -2960,9 +2960,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.649: - version "1.3.678" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.678.tgz#c7c6960463167126b7ed076fade14cac6223bfff" - integrity sha512-E5ha1pE9+aWWrT2fUD5wdPBWUnYtKnEnloewbtVyrkAs79HvodOiNO4rMR94+hKbxgMFQG4fnPQACOc1cfMfBg== + version "1.3.683" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.683.tgz#2c9ab53ff5275cf3dd49278af714d0f8975204f7" + integrity sha512-8mFfiAesXdEdE0DhkMKO7W9U6VU/9T3VTWwZ+4g84/YMP4kgwgFtQgUxuu7FUMcvSeKSNhFQNU+WZ68BQTLT5A== elliptic@^6.5.3: version "6.5.4" @@ -3032,27 +3032,10 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.2: - version "1.18.0-next.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.3.tgz#56bc8b5cc36b2cca25a13be07f3c02c2343db6b7" - integrity sha512-VMzHx/Bczjg59E6jZOQjHeN3DEoptdhejpARgflAViidlqSpjdq9zA6lKwlhRRs/lOw1gHJv2xkkSFRgvEwbQg== +es-abstract@^1.17.2, es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -3579,9 +3562,9 @@ glob-parent@^3.1.0: path-dirname "^1.0.0" glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" @@ -4136,7 +4119,7 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.2, is-callable@^1.2.3: +is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== @@ -4308,7 +4291,7 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.1, is-regex@^1.1.2: +is-regex@^1.0.4, is-regex@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== @@ -5218,7 +5201,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.8.0, object-inspect@^1.9.0: +object-inspect@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== @@ -5243,7 +5226,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: +object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -7272,7 +7255,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.4: +string.prototype.trimend@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== @@ -7280,7 +7263,7 @@ string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.4: call-bind "^1.0.2" define-properties "^1.1.3" -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.4: +string.prototype.trimstart@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== @@ -7778,9 +7761,9 @@ uuid@^3.3.2, uuid@^3.4.0: integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 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" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== validate-npm-package-license@^3.0.1: version "3.0.4"