From 9f7770c56c1b2adb72b4b0452873f3822423ff1d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Nov 2021 03:01:08 +0000 Subject: [PATCH 01/62] Bump prometheus_exporter from 0.8.1 to 1.0.0 Bumps [prometheus_exporter](https://github.com/discourse/prometheus_exporter) from 0.8.1 to 1.0.0. - [Release notes](https://github.com/discourse/prometheus_exporter/releases) - [Changelog](https://github.com/discourse/prometheus_exporter/blob/master/CHANGELOG) - [Commits](https://github.com/discourse/prometheus_exporter/compare/v0.8.1...v1.0.0) --- updated-dependencies: - dependency-name: prometheus_exporter dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 199a6f5c..f4083a62 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -304,7 +304,7 @@ GEM ast (~> 2.4.1) path_expander (1.1.0) pg (1.2.3) - prometheus_exporter (0.8.1) + prometheus_exporter (1.0.0) webrick pry (0.13.1) coderay (~> 1.1) From d8af2edcfdbcd874ffa458335e9dedca6b557912 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Nov 2021 03:00:48 +0000 Subject: [PATCH 02/62] Bump sentry-ruby from 4.8.0 to 4.8.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.8.0 to 4.8.1. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.8.0...4.8.1) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f7ab472a..1150d723 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -464,11 +464,11 @@ GEM sentry-rails (4.8.0) railties (>= 5.0) sentry-ruby-core (~> 4.8.0) - sentry-ruby (4.8.0) + sentry-ruby (4.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.8.0) - sentry-ruby-core (4.8.0) + sentry-ruby-core (= 4.8.1) + sentry-ruby-core (4.8.1) concurrent-ruby faraday set (1.0.2) From c794cc5e43c3307cab561782a0ec76360dce608f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Nov 2021 03:01:10 +0000 Subject: [PATCH 03/62] Bump spring from 3.0.0 to 3.1.0 Bumps [spring](https://github.com/rails/spring) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/rails/spring/releases) - [Changelog](https://github.com/rails/spring/blob/main/CHANGELOG.md) - [Commits](https://github.com/rails/spring/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: spring dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f7ab472a..550a0f1e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -494,7 +494,7 @@ GEM sorted_set (1.0.3) rbtree set (~> 1.0) - spring (3.0.0) + spring (3.1.0) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) From 3572f5fbdababce97bda919ab960cdc86d1554ae Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 24 Nov 2021 09:16:06 +0100 Subject: [PATCH 04/62] Introduce REQUEST_TOOLTIP_DELAY --- app/assets/javascripts/editor/editor.js.erb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 3b0a0281..d4015a48 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -17,6 +17,7 @@ var CodeOceanEditor = { //Request-For-Comments-Configuration REQUEST_FOR_COMMENTS_DELAY: 0, REQUEST_TOOLTIP_TIME: 5000, + REQUEST_TOOLTIP_DELAY: 10 * 60 * 1000, editors: [], editor_for_file: new Map(), @@ -444,10 +445,12 @@ var CodeOceanEditor = { setTimeout(function () { button.prop('disabled', false); - button.tooltip('show'); setTimeout(function () { - button.tooltip('hide'); - }, this.REQUEST_TOOLTIP_TIME); + button.tooltip('show'); + setTimeout(function () { + button.tooltip('hide'); + }, this.REQUEST_TOOLTIP_TIME); + }, this.REQUEST_TOOLTIP_DELAY) }.bind(this), this.REQUEST_FOR_COMMENTS_DELAY); }, From e5a4a1d48d73807a6972deb713450bd2b9de64a3 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 24 Nov 2021 09:20:25 +0100 Subject: [PATCH 05/62] Fix access to CommunitySolution --- app/controllers/community_solutions_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/community_solutions_controller.rb b/app/controllers/community_solutions_controller.rb index 414283c8..ee432fd4 100644 --- a/app/controllers/community_solutions_controller.rb +++ b/app/controllers/community_solutions_controller.rb @@ -29,7 +29,8 @@ class CommunitySolutionsController < ApplicationController if last_contribution.blank? last_contribution = @community_solution.exercise new_readme_file = {content: '', file_type: FileType.find_by(file_extension: '.txt'), hidden: false, read_only: false, name: 'ReadMe', role: 'regular_file', context: @community_solution} - @files << CodeOcean::File.create!(new_readme_file) + # If the first user did not save, the ReadMe file already exists + @files << CodeOcean::File.find_or_create_by!(new_readme_file) end all_visible_files = last_contribution.files.select(&:visible) # Add the ReadMe file first From e314be1ed09f0d5215cd1225a51f911dbecbec09 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 24 Nov 2021 09:21:23 +0100 Subject: [PATCH 06/62] Fix access to first community solution --- app/controllers/community_solutions_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/community_solutions_controller.rb b/app/controllers/community_solutions_controller.rb index ee432fd4..ee61adbf 100644 --- a/app/controllers/community_solutions_controller.rb +++ b/app/controllers/community_solutions_controller.rb @@ -34,7 +34,7 @@ class CommunitySolutionsController < ApplicationController end all_visible_files = last_contribution.files.select(&:visible) # Add the ReadMe file first - @files += all_visible_files.select {|f| CodeOcean::File.find_by(id: f.file_id).context_type == 'CommunitySolution' } + @files += all_visible_files.select {|f| CodeOcean::File.find_by(id: f.file_id)&.context_type == 'CommunitySolution' } # Then, add all remaining files and sort them by name with extension @files += (all_visible_files - @files).sort_by(&:name_with_extension) From cdc52f4f95674f5f38a19eebaf3ce8231c742836 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Nov 2021 03:01:25 +0000 Subject: [PATCH 07/62] Bump sentry-rails from 4.8.0 to 4.8.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.8.0 to 4.8.1. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.8.0...4.8.1) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1150d723..763bf011 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -461,9 +461,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (4.8.0) + sentry-rails (4.8.1) railties (>= 5.0) - sentry-ruby-core (~> 4.8.0) + sentry-ruby-core (~> 4.8.1) sentry-ruby (4.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) From 34a8e68525fdfe2a17fcfa50d852d8a79f0d9f40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Nov 2021 03:01:42 +0000 Subject: [PATCH 08/62] Bump bootsnap from 1.9.1 to 1.9.3 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.9.1 to 1.9.3. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.9.1...v1.9.3) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1150d723..66a7e815 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,7 +109,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.9.1) + bootsnap (1.9.3) msgpack (~> 1.0) bootstrap-will_paginate (1.0.0) will_paginate From b8bf43eae83530a00befd66cae0b101ae9232762 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 25 Nov 2021 10:07:17 +0100 Subject: [PATCH 09/62] Fix route path for update and delete of comments --- app/views/request_for_comments/show.html.slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/request_for_comments/show.html.slim b/app/views/request_for_comments/show.html.slim index b06cee5b..8ab242f9 100644 --- a/app/views/request_for_comments/show.html.slim +++ b/app/views/request_for_comments/show.html.slim @@ -254,7 +254,7 @@ javascript: function deleteComment(commentId, editor, file_id, callback) { var jqxhr = $.ajax({ type: 'DELETE', - url: Routes.comments_path(commentId) + url: Routes.comment_path(commentId) }); jqxhr.done(function () { setAnnotations(editor, file_id); @@ -266,7 +266,7 @@ javascript: function updateComment(commentId, text, editor, file_id, callback) { var jqxhr = $.ajax({ type: 'PATCH', - url: Routes.comments_path(commentId), + url: Routes.comment_path(commentId), data: { comment: { text: text From 5ef7da14be804a2b046d402642ca93ad92595d20 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 25 Nov 2021 20:07:32 +0100 Subject: [PATCH 10/62] Show release information for Poseidon --- lib/runner/strategy/poseidon.rb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index c4df9c16..ac7f4f8b 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -152,7 +152,24 @@ class Runner::Strategy::Poseidon < Runner::Strategy end def self.release - nil + url = "#{config[:url]}/version" + Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Getting release from #{url}" } + response = http_connection.get url + case response.status + when 200 + JSON.parse(response.body) + when 404 + 'N/A' + else + handle_error response + end + rescue Faraday::Error => e + raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}") + rescue JSON::ParserError => e + # Poseidon should not send invalid json + raise Runner::Error::UnexpectedResponse.new("Error parsing response from Poseidon: #{e.message}") + ensure + Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Finished getting release information" } end def self.pool_size From be1673864110bb803a41fdbe230221f135912790 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 26 Nov 2021 00:00:45 +0100 Subject: [PATCH 11/62] Update Sentry to ignore health check transactions --- config/initializers/sentry.rb | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 65c72e14..e9559609 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -7,5 +7,33 @@ Sentry.init do |config| # Set tracesSampleRate to 1.0 to capture 100% # of transactions for performance monitoring. # We recommend adjusting this value in production - config.traces_sample_rate = 0.01 + config.traces_sampler = lambda do |sampling_context| + # if this is the continuation of a trace, just use that decision (rate controlled by the caller) + unless sampling_context[:parent_sampled].nil? + next sampling_context[:parent_sampled] + end + + # transaction_context is the transaction object in hash form + # keep in mind that sampling happens right after the transaction is initialized + # for example, at the beginning of the request + transaction_context = sampling_context[:transaction_context] + + # transaction_context helps you sample transactions with more sophistication + # for example, you can provide different sample rates based on the operation or name + op = transaction_context[:op] + transaction_name = transaction_context[:name] + + case op + when /request/ + # for Rails applications, transaction_name would be the request's path (env["PATH_INFO"]) instead of "Controller#action" + case transaction_name + when '/', '/ping' + 0.00 # ignore health check + else + 0.05 + end + else + 0.0 # ignore all other transactions + end + end end From 313397b35df265578ea9f9df8040220661087e41 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 26 Nov 2021 00:02:18 +0100 Subject: [PATCH 12/62] Store sentry events for sync_all_to_runner_management --- app/controllers/execution_environments_controller.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/controllers/execution_environments_controller.rb b/app/controllers/execution_environments_controller.rb index 5bc8328e..67410942 100644 --- a/app/controllers/execution_environments_controller.rb +++ b/app/controllers/execution_environments_controller.rb @@ -179,6 +179,7 @@ class ExecutionEnvironmentsController < ApplicationController success << true rescue Runner::Error => e Rails.logger.debug { "Runner error while getting all execution environments: #{e.message}" } + Sentry.capture_exception(e) environments_to_remove = [] success << false end @@ -189,6 +190,7 @@ class ExecutionEnvironmentsController < ApplicationController Runner.strategy_class.sync_environment(execution_environment) rescue Runner::Error => e Rails.logger.debug { "Runner error while synchronizing execution environment with id #{execution_environment.id}: #{e.message}" } + Sentry.capture_exception(e) false end @@ -198,6 +200,7 @@ class ExecutionEnvironmentsController < ApplicationController Runner.strategy_class.remove_environment(execution_environment) rescue Runner::Error => e Rails.logger.debug { "Runner error while deleting execution environment with id #{execution_environment.id}: #{e.message}" } + Sentry.capture_exception(e) false end From f22db22110d8362ec1518d97716b169a55f9c300 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 25 Nov 2021 23:57:07 +0100 Subject: [PATCH 13/62] Enable Poseidon sync after commit --- app/models/execution_environment.rb | 1 + spec/db/seeds_spec.rb | 1 + 2 files changed, 2 insertions(+) diff --git a/app/models/execution_environment.rb b/app/models/execution_environment.rb index 2f16db6b..d6e0b5b6 100644 --- a/app/models/execution_environment.rb +++ b/app/models/execution_environment.rb @@ -36,6 +36,7 @@ class ExecutionEnvironment < ApplicationRecord after_destroy :delete_runner_environment after_save :working_docker_image?, if: :validate_docker_image? + after_update_commit :sync_runner_environment, unless: proc {|_| Rails.env.test? } after_rollback :delete_runner_environment, on: :create after_rollback :sync_runner_environment, on: %i[update destroy] diff --git a/spec/db/seeds_spec.rb b/spec/db/seeds_spec.rb index 07ab8e4f..71cb7274 100644 --- a/spec/db/seeds_spec.rb +++ b/spec/db/seeds_spec.rb @@ -17,6 +17,7 @@ describe 'seeds' do ActiveRecord::Base.establish_connection(:test) } allow_any_instance_of(ExecutionEnvironment).to receive(:working_docker_image?).and_return true + allow_any_instance_of(ExecutionEnvironment).to receive(:sync_runner_environment).and_return true end describe 'execute db:seed', cleaning_strategy: :truncation do From b035ac1e5ce84ff5b2062771d6cf3deeb5ddb0ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Nov 2021 03:00:59 +0000 Subject: [PATCH 14/62] Bump spring from 3.1.0 to 3.1.1 Bumps [spring](https://github.com/rails/spring) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/rails/spring/releases) - [Changelog](https://github.com/rails/spring/blob/main/CHANGELOG.md) - [Commits](https://github.com/rails/spring/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: spring dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 994ad1b2..afb386b5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -494,7 +494,7 @@ GEM sorted_set (1.0.3) rbtree set (~> 1.0) - spring (3.1.0) + spring (3.1.1) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) From ca5cbed5de9a71532b5c3a54915f5313b1c1acaa Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 28 Nov 2021 21:40:06 +0100 Subject: [PATCH 15/62] Use file type for exercise show (highlight.js) --- app/views/shared/_file.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/shared/_file.html.slim b/app/views/shared/_file.html.slim index b8122113..e8863f5c 100644 --- a/app/views/shared/_file.html.slim +++ b/app/views/shared/_file.html.slim @@ -7,4 +7,4 @@ - if file.teacher_defined_assessment? = row(label: 'file.feedback_message', value: render_markdown(file.feedback_message), class: 'm-0') = row(label: 'file.weight', value: file.weight) -= row(label: 'file.content', value: file.native_file? ? link_to_if(policy(file).show?, file.native_file.file.filename, file.native_file.url) : code_tag(file.content)) += row(label: 'file.content', value: file.native_file? ? link_to_if(policy(file).show?, file.native_file.file.filename, file.native_file.url) : code_tag(file.content, file.file_type.programming_language)) From e90a79a0698606a04f1e1133e38f8f5bb67df050 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 28 Nov 2021 22:01:43 +0100 Subject: [PATCH 16/62] Update bundle --- Gemfile.lock | 20 +-- yarn.lock | 350 +++++++++++++++++++++++++-------------------------- 2 files changed, 185 insertions(+), 185 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index afb386b5..acd218b3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -192,7 +192,7 @@ GEM websocket-driver (>= 0.5.1) ffi (1.15.4) forgery (0.8.1) - globalid (0.5.2) + globalid (1.0.0) activesupport (>= 5.0) haml (5.2.2) temple (>= 0.8.0) @@ -257,9 +257,9 @@ GEM marcel (1.0.2) matrix (0.4.2) method_source (1.0.0) - mime-types (3.3.1) + mime-types (3.4.1) mime-types-data (~> 3.2015) - mime-types-data (3.2021.0901) + mime-types-data (3.2021.1115) mimemagic (0.4.3) nokogiri (~> 1) rake @@ -290,7 +290,7 @@ GEM racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) - oauth (0.5.7) + oauth (0.5.8) oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) @@ -300,7 +300,7 @@ GEM pagedown-bootstrap-rails (2.1.4) railties (> 3.1) parallel (1.21.0) - parser (3.0.2.0) + parser (3.0.3.0) ast (~> 2.4.1) path_expander (1.1.0) pg (1.2.3) @@ -442,7 +442,7 @@ GEM rubocop-rspec (2.6.0) rubocop (~> 1.19) ruby-progressbar (1.11.0) - ruby-vips (2.1.3) + ruby-vips (2.1.4) ffi (~> 1.12) ruby2_keywords (0.0.5) rubyzip (2.3.2) @@ -487,7 +487,7 @@ GEM actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 5.0) - sorcery (0.16.1) + sorcery (0.16.2) bcrypt (~> 3.1) oauth (~> 0.5, >= 0.5.5) oauth2 (~> 1.0, >= 0.8.0) @@ -498,9 +498,9 @@ GEM sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.4.1) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.0.7) structured_warnings (0.4.0) diff --git a/yarn.lock b/yarn.lock index 567018f8..986d770b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,10 +9,10 @@ dependencies: "@babel/highlight" "^7.16.0" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" - integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== "@babel/core@^7.15.0": version "7.16.0" @@ -59,14 +59,14 @@ "@babel/helper-explode-assignable-expression" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" - integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" + integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== dependencies: "@babel/compat-data" "^7.16.0" "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" + browserslist "^4.17.5" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.16.0": @@ -89,10 +89,10 @@ "@babel/helper-annotate-as-pure" "^7.16.0" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz#8867aed79d3ea6cade40f801efb7ac5c66916b10" - integrity sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ== +"@babel/helper-define-polyfill-provider@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" + integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -173,10 +173,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-remap-async-to-generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz#d5aa3b086e13a5fe05238ff40c3a5a0c2dab3ead" - integrity sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew== +"@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.0" "@babel/helper-wrap-function" "^7.16.0" @@ -234,12 +234,12 @@ "@babel/types" "^7.16.0" "@babel/helpers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.0.tgz#875519c979c232f41adfbd43a3b0398c2e388183" - integrity sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" + integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== dependencies: "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" + "@babel/traverse" "^7.16.3" "@babel/types" "^7.16.0" "@babel/highlight@^7.16.0": @@ -251,12 +251,12 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.0": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" - integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== +"@babel/parser@^7.16.0", "@babel/parser@^7.16.3": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0": +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": version "7.16.2" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== @@ -272,13 +272,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.0" -"@babel/plugin-proposal-async-generator-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz#11425d47a60364352f668ad5fbc1d6596b2c5caf" - integrity sha512-nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw== +"@babel/plugin-proposal-async-generator-functions@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" + integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.0" + "@babel/helper-remap-async-to-generator" "^7.16.4" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.0": @@ -667,10 +667,10 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.16.0" -"@babel/plugin-transform-parameters@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.0.tgz#1b50765fc421c229819dc4c7cdb8911660b3c2d7" - integrity sha512-XgnQEm1CevKROPx+udOi/8f8TiGhrUWiHiaUCIp47tE0tpFDjzXNTZc9E5CmCwxNjXTWEVqvRfWZYOTFvMa/ZQ== +"@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" + integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== dependencies: "@babel/helper-plugin-utils" "^7.14.5" @@ -696,15 +696,15 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-runtime@^7.15.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz#3fe0da36c2f0834bef7c4d3e7f2b2db0ee0c8909" - integrity sha512-zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag== + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz#f9ba3c7034d429c581e1bd41b4952f3db3c2c7e8" + integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A== dependencies: "@babel/helper-module-imports" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.3" - babel-plugin-polyfill-corejs3 "^0.3.0" - babel-plugin-polyfill-regenerator "^0.2.3" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.16.0": @@ -759,17 +759,17 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/preset-env@^7.15.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.0.tgz#97228393d217560d6a1c6c56f0adb9d12bca67f5" - integrity sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg== + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" + integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.3" "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions" "^7.16.4" "@babel/plugin-proposal-class-properties" "^7.16.0" "@babel/plugin-proposal-class-static-block" "^7.16.0" "@babel/plugin-proposal-dynamic-import" "^7.16.0" @@ -819,7 +819,7 @@ "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" "@babel/plugin-transform-new-target" "^7.16.0" "@babel/plugin-transform-object-super" "^7.16.0" - "@babel/plugin-transform-parameters" "^7.16.0" + "@babel/plugin-transform-parameters" "^7.16.3" "@babel/plugin-transform-property-literals" "^7.16.0" "@babel/plugin-transform-regenerator" "^7.16.0" "@babel/plugin-transform-reserved-words" "^7.16.0" @@ -832,10 +832,10 @@ "@babel/plugin-transform-unicode-regex" "^7.16.0" "@babel/preset-modules" "^0.1.5" "@babel/types" "^7.16.0" - babel-plugin-polyfill-corejs2 "^0.2.3" - babel-plugin-polyfill-corejs3 "^0.3.0" - babel-plugin-polyfill-regenerator "^0.2.3" - core-js-compat "^3.19.0" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.19.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -850,9 +850,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.0.tgz#e27b977f2e2088ba24748bf99b5e1dece64e4f0b" - integrity sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== dependencies: regenerator-runtime "^0.13.4" @@ -865,17 +865,17 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" - integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== dependencies: "@babel/code-frame" "^7.16.0" "@babel/generator" "^7.16.0" "@babel/helper-function-name" "^7.16.0" "@babel/helper-hoist-variables" "^7.16.0" "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.0" + "@babel/parser" "^7.16.3" "@babel/types" "^7.16.0" debug "^4.1.0" globals "^11.1.0" @@ -964,55 +964,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.14.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.14.1.tgz#4d255caf9de6e07f12b6d9b350fe391439dd932e" - integrity sha512-xOrKt6jT6rGhJDVwUtHtD/lLrCOEDNYCtLAh8SoJH7jE0JRSI7WK0UDPQ56M8z3II11lEw3F0TOXoK1rZ9BdrQ== + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.15.0.tgz#7a1d316dd31cedee446e359a21774bf93d1e553d" + integrity sha512-ZiqfHK5DMVgDsgMTuSwxilWIqEnZzy4yuJ9Sr6Iap1yZddPSiKHYjbBieSHn57UsWHViRB3ojbwu44LfvXKJdQ== dependencies: - "@sentry/core" "6.14.1" - "@sentry/types" "6.14.1" - "@sentry/utils" "6.14.1" + "@sentry/core" "6.15.0" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" -"@sentry/core@6.14.1": - version "6.14.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.14.1.tgz#cbb6eae808279ae2147dd5da22ce6ab5a1cd69d1" - integrity sha512-x2MOax+adphal0ytBsvQukwN5mcxZzb5zsPZ1YWzewQk3BY+2T/DFo50iVpaWdUXsJL2FtoZVVgtpTmf+/3JPw== +"@sentry/core@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.15.0.tgz#5e877042fe18452f2273247126b32e139d5f907c" + integrity sha512-mCbKyqvD1G3Re6gv6N8tRkBz84gvVWDfLtC6d1WBArIopzter6ktEbvq0cMT6EOvGI2OLXuJ6mtHA93/Q0gGpw== dependencies: - "@sentry/hub" "6.14.1" - "@sentry/minimal" "6.14.1" - "@sentry/types" "6.14.1" - "@sentry/utils" "6.14.1" + "@sentry/hub" "6.15.0" + "@sentry/minimal" "6.15.0" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" -"@sentry/hub@6.14.1": - version "6.14.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.14.1.tgz#6a82cae35de834bd92bbcd3912a1e3029a5369de" - integrity sha512-IqANj5qKG1N+nqBsuYIwAZsXDMmO/Sc4H2zZ2MP7QvRyp0ptpJmu1oTE0r0fohIcGgIWbnIphJjw990Lp507eA== +"@sentry/hub@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.15.0.tgz#fb8a91d12fdd2726a884374ea7242f6bbd081d69" + integrity sha512-cUbHPeG6kKpGBaEMgbTWeU03Y1Up5T3urGF+cgtrn80PmPYYSUPvVvWlZQWPb8CJZ1yQ0gySWo5RUTatBFrEHA== dependencies: - "@sentry/types" "6.14.1" - "@sentry/utils" "6.14.1" + "@sentry/types" "6.15.0" + "@sentry/utils" "6.15.0" tslib "^1.9.3" -"@sentry/minimal@6.14.1": - version "6.14.1" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.14.1.tgz#6fbce5b873fb096411dbb9a01ff6706ed684f2e8" - integrity sha512-rxS0YUggCSuA7EzS1ai5jU8XArk4FBHZ02gmSoSSLtwFXmeQIa9XBKY0OEFmG2LMQYNOpvcGsezDO51EB6/X9w== +"@sentry/minimal@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.15.0.tgz#fcc083ba901cfe57d25303d0b5fa8cd13e164466" + integrity sha512-7RJIvZsjBa1qFUfMrAzQsWdfZT6Gm4t6ZTYfkpsXPBA35hkzglKbBrhhsUvkxGIhUGw/PiCUqxBUjcmzQP0vfg== dependencies: - "@sentry/hub" "6.14.1" - "@sentry/types" "6.14.1" + "@sentry/hub" "6.15.0" + "@sentry/types" "6.15.0" tslib "^1.9.3" -"@sentry/types@6.14.1": - version "6.14.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.14.1.tgz#0d562a7aa91253b7843723344b4ba03a010e6376" - integrity sha512-RIk3ZwQKZnASrYWfV5i4wbzVveHz8xLFAS2ySIMqh+hICKnB0N4/r8a1Of/84j7pj+iAbf5vPS85639eIf+9qg== +"@sentry/types@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.15.0.tgz#a2917f8aed91471bdfd6651384ffcd47b95c43ad" + integrity sha512-zBw5gPUsofXUSpS3ZAXqRNedLRBvirl3sqkj2Lez7X2EkKRgn5D8m9fQIrig/X3TsKcXUpijDW5Buk5zeCVzJA== -"@sentry/utils@6.14.1": - version "6.14.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.14.1.tgz#cb746858665314c07cfe9b0f307b410e377032ad" - integrity sha512-GVvf0z18L4DN0a6vIBdHSlrK/Dj8QFhuiiJ8NtccSoY8xiKXQNz9FKN5d52NUNqm59aopAxcVAcs57yQSdxrZQ== +"@sentry/utils@6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.15.0.tgz#0c247cb092b1796d39c3d16d8e6977b9cdab9ca2" + integrity sha512-gnhKKyFtnNmKWjDizo7VKD0/Vx8cgW1lCusM6WI7jy2jlO3bQA0+Dzgmr4mIReZ74mq4VpOd2Vfrx7ZldW1DMw== dependencies: - "@sentry/types" "6.14.1" + "@sentry/types" "6.15.0" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1034,9 +1034,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "16.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.6.tgz#6bef7a2a0ad684cf6e90fcfe31cecabd9ce0a3ae" - integrity sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w== + version "16.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" + integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1254,10 +1254,10 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^2.0.0: version "2.1.1" @@ -1430,29 +1430,29 @@ babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-polyfill-corejs2@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz#6ed8e30981b062f8fe6aca8873a37ebcc8cc1c0f" - integrity sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA== +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" + integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.4" + "@babel/helper-define-polyfill-provider" "^0.3.0" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz#fa7ca3d1ee9ddc6193600ffb632c9785d54918af" - integrity sha512-JLwi9vloVdXLjzACL80j24bG6/T1gYxwowG44dg6HN/7aTPdyPbJJidf6ajoA3RPHHtW0j9KMrSOLpIZpAnPpg== +babel-plugin-polyfill-corejs3@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" + integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.4" + "@babel/helper-define-polyfill-provider" "^0.3.0" core-js-compat "^3.18.0" -babel-plugin-polyfill-regenerator@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz#2e9808f5027c4336c994992b48a4262580cb8d6d" - integrity sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g== +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" + integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.4" + "@babel/helper-define-polyfill-provider" "^0.3.0" balanced-match@^1.0.0: version "1.0.2" @@ -1659,13 +1659,13 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.17.6, browserslist@^4.6.4: - version "4.17.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.6.tgz#c76be33e7786b497f66cad25a73756c8b938985d" - integrity sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^4.6.4: + version "4.18.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" + integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== dependencies: - caniuse-lite "^1.0.30001274" - electron-to-chromium "^1.3.886" + caniuse-lite "^1.0.30001280" + electron-to-chromium "^1.3.896" escalade "^3.1.1" node-releases "^2.0.1" picocolors "^1.0.0" @@ -1816,10 +1816,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001274: - version "1.0.30001278" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff" - integrity sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280: + version "1.0.30001283" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b" + integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -1965,9 +1965,9 @@ color-name@^1.0.0: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" - integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== + version "1.7.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.7.4.tgz#79a7bf242610a8aa1b5e2681f3bf6bcfa666245f" + integrity sha512-nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -2107,7 +2107,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.18.0, core-js-compat@^3.19.0: +core-js-compat@^3.18.0, core-js-compat@^3.19.1: version "3.19.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== @@ -2667,9 +2667,9 @@ debug@^3.1.1, debug@^3.2.6: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== dependencies: ms "2.1.2" @@ -2862,10 +2862,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.886: - version "1.3.890" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.890.tgz#e7143b659f73dc4d0512d1ae4baeb0fb9e7bc835" - integrity sha512-VWlVXSkv0cA/OOehrEyqjUTHwV8YXCPTfPvbtoeU2aHR21vI4Ejh5aC4AxUwOmbLbBgb6Gd3URZahoCxtBqCYQ== +electron-to-chromium@^1.3.896: + version "1.4.4" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz#57311918524c1a26878c330537f967804d43788a" + integrity sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg== elliptic@^6.5.3: version "6.5.4" @@ -3257,9 +3257,9 @@ findup-sync@^3.0.0: resolve-dir "^1.0.1" flatted@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + version "3.2.4" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" + integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== flatten@^1.0.2: version "1.0.3" @@ -3653,9 +3653,9 @@ http-errors@~1.7.2: toidentifier "1.0.0" http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + version "0.5.5" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" + integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== http-proxy-middleware@0.19.1: version "0.19.1" @@ -4294,9 +4294,9 @@ last-call-webpack-plugin@^3.0.0: webpack-sources "^1.1.0" lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== loader-runner@^2.4.0: version "2.4.0" @@ -4372,9 +4372,9 @@ lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.5: integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" + integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== lru-cache@^5.1.1: version "5.1.1" @@ -4499,17 +4499,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.50.0, "mime-db@>= 1.43.0 < 2": - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== +mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.33" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" - integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== dependencies: - mime-db "1.50.0" + mime-db "1.51.0" mime@1.6.0: version "1.6.0" @@ -6270,9 +6270,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.43.4" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.4.tgz#68c7d6a1b004bef49af0d9caf750e9b252105d1f" - integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg== + version "1.43.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.5.tgz#25a9d91dd098793ef7229d7b04dd3daae2fc4a65" + integrity sha512-WuNm+eAryMgQluL7Mbq9M4EruyGGMyal7Lu58FfnRMVWxgUzIvI7aSn60iNt3kn5yZBMR7G84fAGDcwqOF5JOg== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -6465,9 +6465,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== simple-swizzle@^0.2.2: version "0.2.2" @@ -6556,9 +6556,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@~0.5.12, source-map-support@~0.5.20: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -6859,9 +6859,9 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.9.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" - integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -7232,11 +7232,11 @@ webpack-dev-middleware@^3.7.2: webpack-log "^2.0.0" webpack-dev-server@^3.11.2: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== + version "3.11.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" + integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== dependencies: - ansi-html "0.0.7" + ansi-html-community "0.0.8" bonjour "^3.5.0" chokidar "^2.1.8" compression "^1.7.4" From 7689461bbba03e9a73c53535e34f2cdf31b370b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Nov 2021 03:01:09 +0000 Subject: [PATCH 17/62] Bump newrelic_rpm from 8.1.0 to 8.2.0 Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 8.1.0 to 8.2.0. - [Release notes](https://github.com/newrelic/newrelic-ruby-agent/releases) - [Changelog](https://github.com/newrelic/newrelic-ruby-agent/blob/dev/CHANGELOG.md) - [Commits](https://github.com/newrelic/newrelic-ruby-agent/compare/8.1.0...8.2.0) --- updated-dependencies: - dependency-name: newrelic_rpm dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index acd218b3..524bca07 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -283,7 +283,7 @@ GEM net-http-persistent (4.0.1) connection_pool (~> 2.2) netrc (0.11.0) - newrelic_rpm (8.1.0) + newrelic_rpm (8.2.0) nio4r (2.5.8) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) From 5b09722c201a8ff4c5d953b3a0e5a24d3643a137 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 30 Nov 2021 21:35:14 +0100 Subject: [PATCH 18/62] Set minTimeIntervention to 30 min for Java --- app/assets/javascripts/editor/editor.js.erb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index d4015a48..51d7f4e8 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -832,7 +832,11 @@ var CodeOceanEditor = { const percentile75 = data['working_time_75_percentile']; const accumulatedWorkTimeUser = data['working_time_accumulated']; - const minTimeIntervention = 10 * 60 * 1000; + let minTimeIntervention = 10 * 60 * 1000; + if ($('#editor').data('exercise-id') === 909) { + // 30 minutes for our large Map exercise + minTimeIntervention = 30 * 60 * 1000; + } let timeUntilIntervention; if ((accumulatedWorkTimeUser - percentile75) > 0) { From c69496e5f86efd68fd04e4e7b6718b24e668340d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 1 Dec 2021 14:40:35 +0100 Subject: [PATCH 19/62] Use postgresql version in package names * Also update to latest version --- provision/provision.vagrant.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/provision/provision.vagrant.sh b/provision/provision.vagrant.sh index 031f7460..ef8d9d14 100644 --- a/provision/provision.vagrant.sh +++ b/provision/provision.vagrant.sh @@ -2,9 +2,9 @@ ######## VERSION INFORMATION ######## -postgres_version=13 +postgres_version=14 node_version=14 -ruby_version=2.7.2 +ruby_version=2.7.5 ########## INSTALL SCRIPT ########### @@ -24,7 +24,7 @@ sudo apt -qq -y upgrade # PostgreSQL curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list -sudo apt -qq update && sudo apt -qq install -y postgresql-client postgresql +sudo apt -qq update && sudo apt -qq install -y postgresql-client-$postgres_version postgresql-$postgres_version sudo sed -i "/# TYPE/q" /etc/postgresql/$postgres_version/main/pg_hba.conf sudo tee -a /etc/postgresql/$postgres_version/main/pg_hba.conf < Date: Wed, 1 Dec 2021 15:10:47 +0100 Subject: [PATCH 20/62] Rescue Faraday::ConnectionFailed for Poseidon --- lib/runner/strategy/poseidon.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index ac7f4f8b..879aa7d3 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -127,6 +127,9 @@ class Runner::Strategy::Poseidon < Runner::Strategy Runner.destroy(@allocation_id) if response.status == 400 self.class.handle_error response + rescue Faraday::ConnectionFailed + # TODO: Remove fix after the following issue is resolved: https://github.com/openHPI/poseidon/issues/54 + raise Runner::Error::RunnerNotFound.new rescue Faraday::Error => e raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}") ensure From 1a5d512689a167026f3ff2e33c454e435ae55b1c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 1 Dec 2021 18:41:29 +0100 Subject: [PATCH 21/62] Check Runner management status in execution environment updates --- app/models/execution_environment.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/execution_environment.rb b/app/models/execution_environment.rb index d6e0b5b6..64167dae 100644 --- a/app/models/execution_environment.rb +++ b/app/models/execution_environment.rb @@ -80,7 +80,7 @@ class ExecutionEnvironment < ApplicationRecord def validate_docker_image? # We only validate the code execution with the provided image if there is at least one container to test with. - pool_size.positive? && docker_image.present? && !Rails.env.test? + pool_size.positive? && docker_image.present? && !Rails.env.test? && Runner.management_active? end def working_docker_image? @@ -105,7 +105,7 @@ class ExecutionEnvironment < ApplicationRecord end def delete_runner_environment - Runner.strategy_class.remove_environment(self) + Runner.strategy_class.remove_environment(self) if Runner.management_active? rescue Runner::Error => e unless errors.include?(:docker_image) errors.add(:docker_image, "error: #{e}") @@ -115,7 +115,7 @@ class ExecutionEnvironment < ApplicationRecord def sync_runner_environment previous_saved_environment = self.class.find(id) - Runner.strategy_class.sync_environment(previous_saved_environment) + Runner.strategy_class.sync_environment(previous_saved_environment) if Runner.management_active? rescue Runner::Error => e unless errors.include?(:docker_image) errors.add(:docker_image, "error: #{e}") From a9da3f3110d7c9ba8fd88ad6a07d350649e80aec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 03:02:08 +0000 Subject: [PATCH 22/62] Bump d3 from 7.1.1 to 7.2.0 Bumps [d3](https://github.com/d3/d3) from 7.1.1 to 7.2.0. - [Release notes](https://github.com/d3/d3/releases) - [Changelog](https://github.com/d3/d3/blob/main/CHANGES.md) - [Commits](https://github.com/d3/d3/compare/v7.1.1...v7.2.0) --- updated-dependencies: - dependency-name: d3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9a35f006..83612b4d 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bootstrap": "^4.6.1", "bootswatch": "^4.6.0", "chosen-js": "^1.8.7", - "d3": "^7.1.1", + "d3": "^7.2.0", "d3-tip": "^0.9.1", "highlight.js": "^11.3.1", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 986d770b..39e7126e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2616,10 +2616,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.1.1.tgz#77b9a0c9893b13643b8e52316ec65dca3a6a115e" - integrity sha512-8zkLMwSvUAnfN9pcJDfkuxU0Nvg4RLUD0A4BZN1KxJPtlnCGzMx3xM5cRl4m8fym/Vy8rlq52tl90UF3m91OnA== +d3@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.2.0.tgz#5f2a738276e24ac523bd0921d161c9b3943dc912" + integrity sha512-0bh5lPzD6R/I/SjkcgyQlMaIsrZDgh40yMkdJaiZ/58YEbh4zz5EvtjaudzmI6ruwQNvxGm00trYUyPa992NSQ== dependencies: d3-array "3" d3-axis "3" From 3f9425277f6e5ac5c31572b811ed641a5334646e Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 6 Dec 2021 17:38:19 +0100 Subject: [PATCH 23/62] Improve documentation of PingController --- app/controllers/ping_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/ping_controller.rb b/app/controllers/ping_controller.rb index 3373da09..8ba2a7ad 100644 --- a/app/controllers/ping_controller.rb +++ b/app/controllers/ping_controller.rb @@ -15,8 +15,9 @@ class PingController < ApplicationController private def postgres_connected! + # any unhandled exception leads to a HTTP 500 response. ApplicationRecord.establish_connection ApplicationRecord.connection - ApplicationRecord.connected? + raise ActiveRecord::ConnectionNotEstablished unless ApplicationRecord.connected? end end From a4003ca7335c47272eca6cc15a2c042fb2882c0b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 6 Dec 2021 22:12:16 +0100 Subject: [PATCH 24/62] DCP: Redirect successful PyLint output to stdout --- lib/runner/strategy/docker_container_pool.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index 3c2f5d36..be79bcc2 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -259,7 +259,7 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy # TODO: Super dirty hack to redirect test output to stderr # This is only required for Python and the unittest module but must not be used with PyLint @stream = 'stderr' - when /\*\*\*\*\*\*\*\*\*\*\*\*\* Module/ + when /\*\*\*\*\*\*\*\*\*\*\*\*\* Module/, / Your code has been rated at/ # Identification of PyLint output, change stream back to stdout and return event @stream = 'stdout' {'type' => @stream, 'data' => event_data} From 563e14a44adfb512e7ac6d8fb09098048ed16d8e Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 6 Dec 2021 23:56:31 +0100 Subject: [PATCH 25/62] Adapt dashboard to show idle and used runners --- app/assets/javascripts/dashboard.js | 17 ++++++++-------- app/helpers/admin/dashboard_helper.rb | 13 +++++++++++- app/views/admin/dashboard/show.html.slim | 21 ++++++++++++-------- config/locales/de.yml | 6 ++++-- config/locales/en.yml | 6 ++++-- lib/runner/strategy/docker_container_pool.rb | 2 +- lib/runner/strategy/poseidon.rb | 18 ++++++++++++++++- spec/helpers/admin/dashboard_helper_spec.rb | 12 +++++++---- 8 files changed, 68 insertions(+), 27 deletions(-) diff --git a/app/assets/javascripts/dashboard.js b/app/assets/javascripts/dashboard.js index 6ae38079..38504849 100644 --- a/app/assets/javascripts/dashboard.js +++ b/app/assets/javascripts/dashboard.js @@ -68,7 +68,7 @@ $(document).on('turbolinks:load', function() { _.each(response.docker, function(data) { groups.update({ id: data.id, - visible: data.pool_size > 0 + visible: data.prewarmingPoolSize > 0 }); }); }; @@ -78,26 +78,27 @@ $(document).on('turbolinks:load', function() { dataset.add({ group: data.id, x: vis.moment(), - y: data.quantity + y: data.usedRunners }); }); }; var updateProgressBar = function(progress_bar, data) { - var percentage = Math.min(Math.round(data.quantity / data.pool_size * 100), 100); + var percentage = Math.min(Math.round(data.idleRunners / data.prewarmingPoolSize * 100), 100); progress_bar.attr({ - 'aria-valuemax': data.pool_size, - 'aria-valuenow': data.quantity, + 'aria-valuemax': data.prewarmingPoolSize, + 'aria-valuenow': data.idleRunners, style: 'width: ' + percentage + '%' }); - progress_bar.html(data.quantity); + progress_bar.html(data.idleRunners); }; var updateTable = function(response) { _.each(response.docker, function(data) { var row = $('tbody tr[data-id=' + data.id + ']'); - $('.pool-size', row).html(data.pool_size); - var progress_bar = $('.quantity .progress .progress-bar', row); + $('.prewarming-pool-size', row).html(data.prewarmingPoolSize); + $('.used-runners', row).html(`+ ${data.usedRunners}`); + var progress_bar = $('.idle-runners .progress .progress-bar', row); updateProgressBar(progress_bar, data); }); }; diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb index 1b209fb8..0cb02797 100644 --- a/app/helpers/admin/dashboard_helper.rb +++ b/app/helpers/admin/dashboard_helper.rb @@ -15,7 +15,18 @@ module Admin end ExecutionEnvironment.order(:id).select(:id, :pool_size).map do |execution_environment| - execution_environment.attributes.merge(quantity: pool_size[execution_environment.id]) + # Fetch the actual values (ID is stored as a symbol) or get an empty hash for merge + actual = pool_size[execution_environment.id.to_s.to_sym] || {} + + template = { + id: execution_environment.id, + prewarmingPoolSize: execution_environment.pool_size, + idleRunners: 0, + usedRunners: 0, + } + + # Existing values in the template get replaced with actual values + template.merge(actual) end end end diff --git a/app/views/admin/dashboard/show.html.slim b/app/views/admin/dashboard/show.html.slim index 9bf07936..a87284e5 100644 --- a/app/views/admin/dashboard/show.html.slim +++ b/app/views/admin/dashboard/show.html.slim @@ -10,33 +10,38 @@ h1 = t('breadcrumbs.dashboard.show') h2 Version div.mb-4 - = "CodeOcean Release:" + = application_name + =< t("admin.dashboard.show.release") + | : pre = Sentry.configuration.release - if Runner.management_active? div.mb-4 = Runner.strategy_class.name.demodulize - =< "Release:" + =< t("admin.dashboard.show.release") + | : pre = Runner.strategy_class.release h2 Docker - if Runner.management_active? - h3 = t('.current') + h3 = t('admin.dashboard.show.current') .table-responsive table.table thead tr th = t('activerecord.models.execution_environment.one') th = t('activerecord.attributes.execution_environment.pool_size') - th = t('.quantity') + th = t('admin.dashboard.show.idleRunners') + th = t('admin.dashboard.show.usedRunners') tbody - ExecutionEnvironment.order(:name).each do |execution_environment| tr data-id=execution_environment.id td.name = link_to_if(policy(execution_environment).show?, execution_environment, execution_environment) - td.pool-size - td.quantity = progress_bar(0) - h3 = t('.history') + td.prewarming-pool-size + td.idle-runners = progress_bar(0) + td.used-runners + h3 = t('admin.dashboard.show.history') #graph - else - p = t('.inactive') + p = t('admin.dashboard.show.inactive') diff --git a/config/locales/de.yml b/config/locales/de.yml index ba767d3a..4d8a602d 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -241,10 +241,12 @@ de: admin: dashboard: show: + release: Release current: Aktuelle Verfügbarkeit - history: Verfügbarkeitsverlauf + history: Nutzungsverlauf inactive: Es ist kein Runner Management aktiv. - quantity: Verfügbare Container + idleRunners: Freie Runner + usedRunners: Reservierte Runner application: not_authorized: Sie Sind nicht berechtigt, diese Aktion auszuführen. welcome: diff --git a/config/locales/en.yml b/config/locales/en.yml index 33eb6adc..4f93be50 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -241,10 +241,12 @@ en: admin: dashboard: show: + release: Release current: Current Availability - history: Availability History + history: Usage History inactive: No runner management is currently enabled. - quantity: Available Containers + idleRunners: Idle Runners + usedRunners: Reserved Runners application: not_authorized: You are not authorized to perform this action. welcome: diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index be79bcc2..526a7c76 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -166,7 +166,7 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy url = "#{config[:url]}/docker_container_pool/quantities" response = Faraday.get(url) pool_size = JSON.parse(response.body) - pool_size.transform_keys(&:to_i) + pool_size.deep_symbolize_keys rescue Faraday::Error => e raise Runner::Error::FaradayError.new("Request to DockerContainerPool failed: #{e.inspect}") rescue JSON::ParserError => e diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index 879aa7d3..fb3cbd9a 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -176,7 +176,23 @@ class Runner::Strategy::Poseidon < Runner::Strategy end def self.pool_size - {} + url = "#{config[:url]}/statistics/execution-environments" + Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Getting statistics from #{url}" } + response = http_connection.get url + case response.status + when 200 + response_body = parse response + response_body + else + handle_error response + end + rescue Faraday::Error => e + raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}") + rescue JSON::ParserError => e + # Poseidon should not send invalid json + raise Runner::Error::UnexpectedResponse.new("Error parsing response from Poseidon: #{e.message}") + ensure + Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Finished getting statistics" } end def self.websocket_header diff --git a/spec/helpers/admin/dashboard_helper_spec.rb b/spec/helpers/admin/dashboard_helper_spec.rb index 22307561..643bd08f 100644 --- a/spec/helpers/admin/dashboard_helper_spec.rb +++ b/spec/helpers/admin/dashboard_helper_spec.rb @@ -14,7 +14,7 @@ describe Admin::DashboardHelper do FactoryBot.create(:ruby) dcp = instance_double 'docker_container_pool' allow(Runner).to receive(:strategy_class).and_return dcp - allow(dcp).to receive(:pool_size).and_return([]) + allow(dcp).to receive(:pool_size).and_return({}) end it 'contains an entry for every execution environment' do @@ -22,11 +22,15 @@ describe Admin::DashboardHelper do end it 'contains the pool size for every execution environment' do - expect(docker_data.first.symbolize_keys).to include(:pool_size) + expect(docker_data.first.symbolize_keys).to include(:prewarmingPoolSize) end - it 'contains the number of available containers for every execution environment' do - expect(docker_data.first).to include(:quantity) + it 'contains the number of idle runners for every execution environment' do + expect(docker_data.first).to include(:idleRunners) + end + + it 'contains the number of used runners for every execution environment' do + expect(docker_data.first).to include(:usedRunners) end end end From 8535cd9a9c0b81177bccef1ec68099945745d159 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 9 Dec 2021 16:44:05 +0100 Subject: [PATCH 26/62] Add option to sync single execution environment --- .../execution_environments_controller.rb | 16 +++++++++++++++- app/policies/execution_environment_policy.rb | 2 +- app/views/execution_environments/show.html.slim | 10 ++++++++-- config/locales/de.yml | 4 ++++ config/locales/en.yml | 4 ++++ config/routes.rb | 1 + 6 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/controllers/execution_environments_controller.rb b/app/controllers/execution_environments_controller.rb index 67410942..bc05e631 100644 --- a/app/controllers/execution_environments_controller.rb +++ b/app/controllers/execution_environments_controller.rb @@ -4,7 +4,7 @@ class ExecutionEnvironmentsController < ApplicationController include CommonBehavior before_action :set_docker_images, only: %i[create edit new update] - before_action :set_execution_environment, only: MEMBER_ACTIONS + %i[execute_command shell statistics] + before_action :set_execution_environment, only: MEMBER_ACTIONS + %i[execute_command shell statistics sync_to_runner_management] before_action :set_testing_framework_adapters, only: %i[create edit new update] def authorize! @@ -166,6 +166,20 @@ class ExecutionEnvironmentsController < ApplicationController update_and_respond(object: @execution_environment, params: execution_environment_params) end + def sync_to_runner_management + return unless Runner.management_active? + + begin + Runner.strategy_class.sync_environment(@execution_environment) + rescue Runner::Error => e + Rails.logger.debug { "Runner error while synchronizing execution environment with id #{@execution_environment.id}: #{e.message}" } + Sentry.capture_exception(e) + redirect_to @execution_environment, alert: t('execution_environments.index.synchronize.failure', error: e.message) + else + redirect_to @execution_environment, notice: t('execution_environments.index.synchronize.success') + end + end + def sync_all_to_runner_management authorize ExecutionEnvironment diff --git a/app/policies/execution_environment_policy.rb b/app/policies/execution_environment_policy.rb index a83b1f29..2e4be0e0 100644 --- a/app/policies/execution_environment_policy.rb +++ b/app/policies/execution_environment_policy.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class ExecutionEnvironmentPolicy < AdminOnlyPolicy - %i[execute_command? shell? statistics? show?].each do |action| + %i[execute_command? shell? statistics? show? sync_to_runner_management?].each do |action| define_method(action) { admin? || author? } end diff --git a/app/views/execution_environments/show.html.slim b/app/views/execution_environments/show.html.slim index e1b15ec6..fbc58f0e 100644 --- a/app/views/execution_environments/show.html.slim +++ b/app/views/execution_environments/show.html.slim @@ -1,6 +1,12 @@ -h1 - = @execution_environment +h1.d-inline-block = @execution_environment +.btn-group.float-right = render('shared/edit_button', object: @execution_environment) + button.btn.btn-secondary.float-right.dropdown-toggle data-toggle='dropdown' type='button' + ul.dropdown-menu.dropdown-menu-right role='menu' + li = link_to(t('execution_environments.index.synchronize.button'), sync_to_runner_management_execution_environment_path(@execution_environment), method: :post, class: 'dropdown-item text-dark') if policy(@execution_environment).sync_to_runner_management? + li = link_to(t('execution_environments.index.shell'), shell_execution_environment_path(@execution_environment), class: 'dropdown-item text-dark') if policy(@execution_environment).shell? + li = link_to(t('shared.statistics'), statistics_execution_environment_path(@execution_environment), 'data-turbolinks' => "false", class: 'dropdown-item text-dark') if policy(@execution_environment).statistics? + li = link_to(t('shared.destroy'), @execution_environment, data: {confirm: t('shared.confirm_destroy')}, method: :delete, class: 'dropdown-item text-dark') if policy(@execution_environment).destroy? = row(label: 'execution_environment.name', value: @execution_environment.name) = row(label: 'execution_environment.user', value: link_to_if(policy(@execution_environment.author).show?, @execution_environment.author, @execution_environment.author)) diff --git a/config/locales/de.yml b/config/locales/de.yml index 4d8a602d..73a0648d 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -303,6 +303,10 @@ de: not_synced_to_runner_management: Die Ausführungsumgebung wurde erstellt, aber aufgrund eines Fehlers nicht zum Runnermanagement synchronisiert. index: shell: Shell + synchronize: + button: Synchronisieren + success: Die Ausführungsumgebung wurde erfolgreich synchronisiert. + failure: "Beim Synchronisieren der Ausführungsumgebung ist folgender Fehler aufgetreten: %{error}" synchronize_all: button: Alle synchronisieren success: Alle Ausführungsumgebungen wurden erfolgreich synchronisiert. diff --git a/config/locales/en.yml b/config/locales/en.yml index 4f93be50..f54599a3 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -303,6 +303,10 @@ en: not_synced_to_runner_management: The execution environment was created but not synced to the runner management due to an error. index: shell: Shell + synchronize: + button: Synchronize + success: The execution environemnt was synchronized successfully. + failure: "The execution environment could not be synchronised due to the following error: %{error}" synchronize_all: button: Synchronize all success: All execution environemnts were synchronized successfully. diff --git a/config/routes.rb b/config/routes.rb index 4d2c77ff..c0042292 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -66,6 +66,7 @@ Rails.application.routes.draw do get :shell post 'shell', as: :execute_command, action: :execute_command get :statistics + post :sync_to_runner_management end post :sync_all_to_runner_management, on: :collection From b91aa00a32eabeda5a0c86d068b0e853f53df423 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 9 Dec 2021 16:45:40 +0100 Subject: [PATCH 27/62] Bundle update --- Gemfile.lock | 10 +-- yarn.lock | 179 +++++++++++++++++++++++++++------------------------ 2 files changed, 100 insertions(+), 89 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 524bca07..5c4e898f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -162,7 +162,7 @@ GEM regexp_parser (~> 2.0) erubi (1.10.0) eventmachine (1.2.7) - excon (0.88.0) + excon (0.89.0) factory_bot (6.2.0) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -300,7 +300,7 @@ GEM pagedown-bootstrap-rails (2.1.4) railties (> 3.1) parallel (1.21.0) - parser (3.0.3.0) + parser (3.0.3.2) ast (~> 2.4.1) path_expander (1.1.0) pg (1.2.3) @@ -388,7 +388,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree (0.4.4) - regexp_parser (2.1.1) + regexp_parser (2.2.0) remotipart (1.4.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -430,7 +430,7 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.13.0) + rubocop-ast (1.14.0) parser (>= 3.0.1.1) rubocop-performance (1.12.0) rubocop (>= 1.7.0, < 2.0) @@ -624,4 +624,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.2.29 + 2.2.32 diff --git a/yarn.lock b/yarn.lock index 39e7126e..15ac5c49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -964,55 +964,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.15.0.tgz#7a1d316dd31cedee446e359a21774bf93d1e553d" - integrity sha512-ZiqfHK5DMVgDsgMTuSwxilWIqEnZzy4yuJ9Sr6Iap1yZddPSiKHYjbBieSHn57UsWHViRB3ojbwu44LfvXKJdQ== + version "6.16.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.16.0.tgz#aa2207ea4d8e30a10bce0255798323c3b8e9c282" + integrity sha512-rpFrS/DPKH9NAWfEhrgpVmqJtfUIGvl9y6KQv0QsNv7X0ZISNtsoHIUe2jVrbjysjWXrJCryCxcSxNgqsa4Www== dependencies: - "@sentry/core" "6.15.0" - "@sentry/types" "6.15.0" - "@sentry/utils" "6.15.0" + "@sentry/core" "6.16.0" + "@sentry/types" "6.16.0" + "@sentry/utils" "6.16.0" tslib "^1.9.3" -"@sentry/core@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.15.0.tgz#5e877042fe18452f2273247126b32e139d5f907c" - integrity sha512-mCbKyqvD1G3Re6gv6N8tRkBz84gvVWDfLtC6d1WBArIopzter6ktEbvq0cMT6EOvGI2OLXuJ6mtHA93/Q0gGpw== +"@sentry/core@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.16.0.tgz#3312e38c6ab66c9d9c4704db696194676c25d001" + integrity sha512-XqIlMjefuJmwQSAzv9J1PtV6+sXiz1dgBbtRr6e+QGIYZ+BDkuyDQv/HsGPfxxMHxgJBxBzi71FFLjEJsF6CBg== dependencies: - "@sentry/hub" "6.15.0" - "@sentry/minimal" "6.15.0" - "@sentry/types" "6.15.0" - "@sentry/utils" "6.15.0" + "@sentry/hub" "6.16.0" + "@sentry/minimal" "6.16.0" + "@sentry/types" "6.16.0" + "@sentry/utils" "6.16.0" tslib "^1.9.3" -"@sentry/hub@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.15.0.tgz#fb8a91d12fdd2726a884374ea7242f6bbd081d69" - integrity sha512-cUbHPeG6kKpGBaEMgbTWeU03Y1Up5T3urGF+cgtrn80PmPYYSUPvVvWlZQWPb8CJZ1yQ0gySWo5RUTatBFrEHA== +"@sentry/hub@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.16.0.tgz#98b3b68abfe8ec85065a883f92a04a9953f92c16" + integrity sha512-NBkcgGjnYsoXyIJwi2TGCxGnxbDJc/t++0ukFoBRy6RL/pw2YnryCu8PWNFsDkZdlb1zt5SIC6Kui+q1ViNS/A== dependencies: - "@sentry/types" "6.15.0" - "@sentry/utils" "6.15.0" + "@sentry/types" "6.16.0" + "@sentry/utils" "6.16.0" tslib "^1.9.3" -"@sentry/minimal@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.15.0.tgz#fcc083ba901cfe57d25303d0b5fa8cd13e164466" - integrity sha512-7RJIvZsjBa1qFUfMrAzQsWdfZT6Gm4t6ZTYfkpsXPBA35hkzglKbBrhhsUvkxGIhUGw/PiCUqxBUjcmzQP0vfg== +"@sentry/minimal@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.16.0.tgz#0f41337be90470fbdccc390aaac6a22cb250ed7f" + integrity sha512-9/h0J9BDDY5W/dKILGEq3ewECspNoxcXuly/WOWQdt2SQpIcoh8l/dF8iTXle+icndin0EiMEyHOzaCPWG24oQ== dependencies: - "@sentry/hub" "6.15.0" - "@sentry/types" "6.15.0" + "@sentry/hub" "6.16.0" + "@sentry/types" "6.16.0" tslib "^1.9.3" -"@sentry/types@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.15.0.tgz#a2917f8aed91471bdfd6651384ffcd47b95c43ad" - integrity sha512-zBw5gPUsofXUSpS3ZAXqRNedLRBvirl3sqkj2Lez7X2EkKRgn5D8m9fQIrig/X3TsKcXUpijDW5Buk5zeCVzJA== +"@sentry/types@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.16.0.tgz#05a8daea73ac9faac8036ae5f84b89f27ffb0ec8" + integrity sha512-ZgIyLYlQS4SPi+d68XD8n9FzoObrNQLWxBuMYMnG3uJSuFeYAJrVYkDRtW4OW0D3awuajYGiHJZC2O5qTRGflA== -"@sentry/utils@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.15.0.tgz#0c247cb092b1796d39c3d16d8e6977b9cdab9ca2" - integrity sha512-gnhKKyFtnNmKWjDizo7VKD0/Vx8cgW1lCusM6WI7jy2jlO3bQA0+Dzgmr4mIReZ74mq4VpOd2Vfrx7ZldW1DMw== +"@sentry/utils@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.16.0.tgz#f04f1a46fea95662dbb26dc2cde02962fe18acb9" + integrity sha512-FJl1AyUVAIzxfEXufWsgX7KxIvOrQawxhAhLXO4vU5xrFrJOteicxAIFJO+GG0QDELgr9siP0Qgeb8LoINWcrw== dependencies: - "@sentry/types" "6.15.0" + "@sentry/types" "6.16.0" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1034,9 +1034,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "16.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" - integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== + version "16.11.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" + integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1659,7 +1659,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^4.6.4: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.6.4: version "4.18.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== @@ -1817,9 +1817,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.30001280: - version "1.0.30001283" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b" - integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== + version "1.0.30001286" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz#3e9debad420419618cfdf52dc9b6572b28a8fff6" + integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -1965,9 +1965,9 @@ color-name@^1.0.0: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: - version "1.7.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.7.4.tgz#79a7bf242610a8aa1b5e2681f3bf6bcfa666245f" - integrity sha512-nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg== + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" + integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -2108,17 +2108,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.19.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" - integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== + version "3.19.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.3.tgz#de75e5821c5ce924a0a1e7b7d5c2cb973ff388aa" + integrity sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA== dependencies: - browserslist "^4.17.6" + browserslist "^4.18.1" semver "7.0.0" core-js@^3.16.2: - version "3.19.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.1.tgz#f6f173cae23e73a7d88fa23b6e9da329276c6641" - integrity sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg== + version "3.19.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.3.tgz#6df8142a996337503019ff3235a7022d7cdf4559" + integrity sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g== core-util-is@~1.0.0: version "1.0.3" @@ -2488,9 +2488,9 @@ d3-force@3: d3-timer "1 - 3" "d3-format@1 - 3", d3-format@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.0.1.tgz#e41b81b2ab79277141ec1404aa5d05001da64084" - integrity sha512-hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== d3-geo@3: version "3.0.1" @@ -2500,9 +2500,9 @@ d3-geo@3: d3-array "2.5.0 - 3" d3-hierarchy@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.0.1.tgz#0365342d54972e38ca05e9143e0ab1c60846b3b5" - integrity sha512-RlLTaofEoOrMK1JoXYIGhKTkJFI/6rFrYPgxy6QlZo2BcVc4HGTqEU0rPpzuMq5T/5XcMtAzv1XiLA3zRTfygw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.0.tgz#f7b50df24bdc16ed8f8021e2f944442a0e231fe1" + integrity sha512-RZWnhsvcrf81F+khYxu2IOfoSwfCGla9je0JQaRIEuPOgJd+3cKdvAYyMXvTt0MDbluiHThYBQzIb0xxXfnqmA== "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: version "3.0.1" @@ -2568,9 +2568,9 @@ d3-shape@3: d3-path "1 - 3" "d3-time-format@2 - 4", d3-time-format@4: - version "4.0.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.0.0.tgz#930ded86a9de761702344760d8a25753467f28b7" - integrity sha512-nzaCwlj+ZVBIlFuVOT1RmU+6xb/7D5IcnhHzHQcBgS/aTa5K9fWZNN5LCXA27LgF5WxoSNJqKBbLcGMtM6Ca6A== + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== dependencies: d3-time "1 - 3" @@ -2863,9 +2863,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.896: - version "1.4.4" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz#57311918524c1a26878c330537f967804d43788a" - integrity sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg== + version "1.4.14" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.14.tgz#b0aa41fbfbf2eff8c2c6f7a871c03075250f8956" + integrity sha512-RsGkAN9JEAYMObS72kzUsPPcPGMqX1rBqGuXi9aa4TBKLzICoLf+DAAtd0fVFzrniJqYzpby47gthCUoObfs0Q== elliptic@^6.5.3: version "6.5.4" @@ -3275,9 +3275,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" - integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== + version "1.14.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" + integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== for-in@^1.0.2: version "1.0.2" @@ -3712,6 +3712,11 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= +immutable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" + integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -4817,9 +4822,9 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + version "1.11.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" + integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== object-is@^1.0.1: version "1.1.5" @@ -5785,9 +5790,9 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.6" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" - integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + version "6.0.7" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz#48404830a635113a71fd79397de8209ed05a66fc" + integrity sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -5816,9 +5821,9 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" @@ -6270,11 +6275,12 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.43.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.5.tgz#25a9d91dd098793ef7229d7b04dd3daae2fc4a65" - integrity sha512-WuNm+eAryMgQluL7Mbq9M4EruyGGMyal7Lu58FfnRMVWxgUzIvI7aSn60iNt3kn5yZBMR7G84fAGDcwqOF5JOg== + version "1.44.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.44.0.tgz#619aa0a2275c097f9af5e6b8fe8a95e3056430fb" + integrity sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw== dependencies: chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" sax@~1.2.4: version "1.2.4" @@ -6519,12 +6525,12 @@ sockjs-client@^1.5.0: url-parse "^1.5.3" sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + version "0.3.24" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" + integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" - uuid "^3.4.0" + uuid "^8.3.2" websocket-driver "^0.7.4" sort-keys@^1.0.0: @@ -7129,11 +7135,16 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.2: + 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.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" From f099a9c77ed88bad41720c2a56c8cb4e747062b3 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 9 Dec 2021 19:21:22 +0100 Subject: [PATCH 28/62] Fixes CODEOCEAN-7K --- app/helpers/admin/dashboard_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb index 0cb02797..cb1fcae9 100644 --- a/app/helpers/admin/dashboard_helper.rb +++ b/app/helpers/admin/dashboard_helper.rb @@ -11,7 +11,7 @@ module Admin Runner.strategy_class.pool_size rescue Runner::Error => e Rails.logger.debug { "Runner error while fetching current pool size: #{e.message}" } - [] + {} end ExecutionEnvironment.order(:id).select(:id, :pool_size).map do |execution_environment| From bd232479752049cbe7089889e695065e04532a6b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 9 Dec 2021 19:24:57 +0100 Subject: [PATCH 29/62] Handle unavailable Runner management for release info --- app/helpers/admin/dashboard_helper.rb | 6 ++++++ app/views/admin/dashboard/show.html.slim | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb index cb1fcae9..d6d48129 100644 --- a/app/helpers/admin/dashboard_helper.rb +++ b/app/helpers/admin/dashboard_helper.rb @@ -29,5 +29,11 @@ module Admin template.merge(actual) end end + + def self.runner_management_release + Runner.strategy_class.release + rescue Runner::Error => e + e.inspect + end end end diff --git a/app/views/admin/dashboard/show.html.slim b/app/views/admin/dashboard/show.html.slim index a87284e5..4925478f 100644 --- a/app/views/admin/dashboard/show.html.slim +++ b/app/views/admin/dashboard/show.html.slim @@ -20,7 +20,7 @@ div.mb-4 = Runner.strategy_class.name.demodulize =< t("admin.dashboard.show.release") | : - pre = Runner.strategy_class.release + pre = Admin::DashboardHelper.runner_management_release h2 Docker From c7c5feffaefd2fbabc102e4e7754a3d66cc1dc64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Dec 2021 03:00:43 +0000 Subject: [PATCH 30/62] Bump spring from 3.1.1 to 4.0.0 Bumps [spring](https://github.com/rails/spring) from 3.1.1 to 4.0.0. - [Release notes](https://github.com/rails/spring/releases) - [Changelog](https://github.com/rails/spring/blob/main/CHANGELOG.md) - [Commits](https://github.com/rails/spring/compare/v3.1.1...v4.0.0) --- updated-dependencies: - dependency-name: spring dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c4e898f..db54f366 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -494,7 +494,7 @@ GEM sorted_set (1.0.3) rbtree set (~> 1.0) - spring (3.1.1) + spring (4.0.0) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) From 7f472c3df8889f72f7d1091f41f1834879740485 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Dec 2021 03:03:00 +0000 Subject: [PATCH 31/62] Bump d3 from 7.2.0 to 7.2.1 Bumps [d3](https://github.com/d3/d3) from 7.2.0 to 7.2.1. - [Release notes](https://github.com/d3/d3/releases) - [Changelog](https://github.com/d3/d3/blob/main/CHANGES.md) - [Commits](https://github.com/d3/d3/compare/v7.2.0...v7.2.1) --- updated-dependencies: - dependency-name: d3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 83612b4d..237ee048 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bootstrap": "^4.6.1", "bootswatch": "^4.6.0", "chosen-js": "^1.8.7", - "d3": "^7.2.0", + "d3": "^7.2.1", "d3-tip": "^0.9.1", "highlight.js": "^11.3.1", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 15ac5c49..ba2ad153 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2616,10 +2616,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.2.0.tgz#5f2a738276e24ac523bd0921d161c9b3943dc912" - integrity sha512-0bh5lPzD6R/I/SjkcgyQlMaIsrZDgh40yMkdJaiZ/58YEbh4zz5EvtjaudzmI6ruwQNvxGm00trYUyPa992NSQ== +d3@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.2.1.tgz#97eafaa6fc8cd7c564c3ace1e6678cbecf63f3ea" + integrity sha512-E/5sP0aeK6YPXI/+4QlefvBFgmcyR2jYftId0PrYWv4Y/gW3c3thp1XG4rQzF0eUwV9tR1x05X5eWuJ6rQXvew== dependencies: d3-array "3" d3-axis "3" From 89bb19bfa0420db32b131e26ea4389a09425dcaa Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 13 Dec 2021 16:13:52 +0100 Subject: [PATCH 32/62] Fix typo for environment in en.yml --- config/locales/en.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index f54599a3..057d6e65 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -305,11 +305,11 @@ en: shell: Shell synchronize: button: Synchronize - success: The execution environemnt was synchronized successfully. + success: The execution environment was synchronized successfully. failure: "The execution environment could not be synchronised due to the following error: %{error}" synchronize_all: button: Synchronize all - success: All execution environemnts were synchronized successfully. + success: All execution environments were synchronized successfully. failure: At least one execution environment could not be synchronised due to an error. shell: command: Command From 5189ec824923f7abe6f897fa73037f6d6d9011c7 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 14 Dec 2021 23:05:29 +0100 Subject: [PATCH 33/62] Fix resetting active file if filetree is disabled --- app/assets/javascripts/editor/submissions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/editor/submissions.js b/app/assets/javascripts/editor/submissions.js index 219bae71..f72c478f 100644 --- a/app/assets/javascripts/editor/submissions.js +++ b/app/assets/javascripts/editor/submissions.js @@ -115,7 +115,7 @@ CodeOceanEditorSubmissions = { this.showSpinner(this); this.ajax({ method: 'GET', - url: $('#start-over').data('url') + url: $('#start-over').data('url') || $('#start-over-active-file').data('url') }).done(function(response) { this.hideSpinner(); _.each(this.editors, function(editor) { From e84276e1f586927ccab854f1444059b6746a51d2 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 14 Dec 2021 23:17:55 +0100 Subject: [PATCH 34/62] Allow ACE resizing with different theme Fixes CODEOCEAN-6E --- app/assets/javascripts/editor/editor.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 51d7f4e8..72367214 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -171,7 +171,7 @@ var CodeOceanEditor = { this.active_frame = frame; frame.show(); - this.resizeParentOfAceEditor(frame.find('.ace_editor.ace-tm')); + this.resizeParentOfAceEditor(frame.find('.ace_editor')); }, getProgressBarClass: function (percentage) { From c438ce4c64cb4cca1a84cfc36965ffa97366b075 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 14 Dec 2021 23:34:03 +0100 Subject: [PATCH 35/62] Allow specifying a new path for new files --- app/views/code_ocean/files/_form.html.slim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/code_ocean/files/_form.html.slim b/app/views/code_ocean/files/_form.html.slim index a00912c0..0a42f458 100644 --- a/app/views/code_ocean/files/_form.html.slim +++ b/app/views/code_ocean/files/_form.html.slim @@ -4,7 +4,10 @@ = f.text_field(:name, class: 'form-control', required: true) .form-group = f.label(:path, t('activerecord.attributes.file.path')) - = f.select(:path, @paths, {}, class: 'form-control') + |   + a.toggle-input data={text_initial: t('shared.new'), text_toggled: t('shared.back')} href='#' = t('shared.new') + .original-input = f.select(:path, @paths, {}, class: 'form-control') + = f.text_field(:path, class: 'alternative-input form-control', disabled: true) .form-group = f.label(:file_type_id, t('activerecord.attributes.file.file_type_id')) = f.collection_select(:file_type_id, FileType.where(binary: false).order(:name), :id, :name, {selected: @exercise.execution_environment.file_type.try(:id)}, class: 'form-control') From 9f8dfb645aa65ba5a06ca1e4ca4975549767c385 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 14 Dec 2021 23:34:14 +0100 Subject: [PATCH 36/62] Fix translation for CodeOcean::File --- config/locales/de.yml | 2 +- config/locales/en.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/de.yml b/config/locales/de.yml index 73a0648d..09e3eebe 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -193,7 +193,7 @@ de: external_user: one: Externer Nutzer other: Externe Nutzer - file: + code_ocean/file: one: Datei other: Dateien file_template: diff --git a/config/locales/en.yml b/config/locales/en.yml index 057d6e65..4f441daf 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -193,7 +193,7 @@ en: external_user: one: External User other: External Users - file: + code_ocean/file: one: File other: Files file_template: From 46cb5e57f9a85430c60d16362a147c3a78f6d99d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 14 Dec 2021 23:39:31 +0100 Subject: [PATCH 37/62] Hide FileTemplate for new files if not configured --- app/views/code_ocean/files/_form.html.slim | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/code_ocean/files/_form.html.slim b/app/views/code_ocean/files/_form.html.slim index 0a42f458..bfdf2257 100644 --- a/app/views/code_ocean/files/_form.html.slim +++ b/app/views/code_ocean/files/_form.html.slim @@ -11,9 +11,10 @@ .form-group = f.label(:file_type_id, t('activerecord.attributes.file.file_type_id')) = f.collection_select(:file_type_id, FileType.where(binary: false).order(:name), :id, :name, {selected: @exercise.execution_environment.file_type.try(:id)}, class: 'form-control') - .form-group - = f.label(:file_template_id, t('activerecord.attributes.file.file_template_id')) - = f.collection_select(:file_template_id, FileTemplate.all.order(:name), :id, :name, {:include_blank => true}, class: 'form-control') + - if FileTemplate.any? + .form-group + = f.label(:file_template_id, t('activerecord.attributes.file.file_template_id')) + = f.collection_select(:file_template_id, FileTemplate.all.order(:name), :id, :name, {:include_blank => true}, class: 'form-control') = f.hidden_field(:context_id) .d-none#noTemplateLabel data-text=t('file_template.no_template_label') .actions = render('shared/submit_button', f: f, object: CodeOcean::File.new) From 88fb04080fc1a553b1b7c364b3e1b949132f096d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 14 Dec 2021 23:46:24 +0100 Subject: [PATCH 38/62] Show files with same name but different path --- lib/file_tree.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/file_tree.rb b/lib/file_tree.rb index dd1fe2ac..6b0d8dcd 100644 --- a/lib/file_tree.rb +++ b/lib/file_tree.rb @@ -29,7 +29,7 @@ class FileTree # Our tree needs a root node, but we won't display it. @root = Tree::TreeNode.new('ROOT') - files.uniq(&:name_with_extension).each do |file| + files.uniq(&:filepath).each do |file| parent = @root (file.path || '').split('/').each do |segment| node = parent.children.detect {|child| child.name == segment } || parent.add(Tree::TreeNode.new(segment)) From d543ac76aeb9548365f95ca647114cfcd6f7a1f2 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 15 Dec 2021 00:42:08 +0100 Subject: [PATCH 39/62] Fix Java RegEx for relative files --- app/assets/javascripts/editor/editor.js.erb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 72367214..079b74d0 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -407,7 +407,7 @@ var CodeOceanEditor = { initializeRegexes: function () { // These RegEx are run on the HTML escaped output! this.regex_for_language.set("ace/mode/python", /File "(.+?)", line (\d+)/g); - this.regex_for_language.set("ace/mode/java", /(.*\.java):(\d+):/g); + this.regex_for_language.set("ace/mode/java", /(?:\.\/)?(.*\.java):(\d+):/g); }, initializeTooltips: function () { @@ -626,15 +626,17 @@ var CodeOceanEditor = { }, jumpToSourceLine: function (event) { - var file = $(event.target).data('file'); - var line = $(event.target).data('line'); + const file = $(event.target).data('file'); + const line = $(event.target).data('line'); - // set active file, only needed for codepilot, so skipped for now - - var frame = $('div.frame[data-filename="' + file + '"]'); + const frame = $('div.frame[data-filename="' + file + '"]'); this.showFrame(frame); - var editor = this.editor_for_file.get(file); + const file_id = frame.find('.editor').data('file-id'); + this.setActiveFile(frame.data('filename'), file_id); + this.selectFileInJsTree($('#files'), file_id); + + const editor = this.editor_for_file.get(file); editor.gotoLine(line, 0); event.preventDefault(); }, From 0c1a10959c7f1ffe634fcc97baffbcac4c718f82 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 15 Dec 2021 00:43:42 +0100 Subject: [PATCH 40/62] Use file name with file path as identifier --- app/controllers/community_solutions_controller.rb | 4 ++-- app/controllers/exercises_controller.rb | 2 +- app/controllers/submissions_controller.rb | 12 +++--------- app/models/code_ocean/file.rb | 2 +- app/models/submission.rb | 8 ++++---- app/views/code_ocean/files/show.json.jbuilder | 2 +- app/views/exercises/_editor_frame.html.slim | 2 +- app/views/exercises/_file_form.html.slim | 5 +---- .../exercises/external_users/statistics.html.slim | 4 ++-- app/views/exercises/show.html.slim | 2 +- config/routes.rb | 2 +- 11 files changed, 18 insertions(+), 27 deletions(-) diff --git a/app/controllers/community_solutions_controller.rb b/app/controllers/community_solutions_controller.rb index ee61adbf..170bb0e5 100644 --- a/app/controllers/community_solutions_controller.rb +++ b/app/controllers/community_solutions_controller.rb @@ -36,10 +36,10 @@ class CommunitySolutionsController < ApplicationController # Add the ReadMe file first @files += all_visible_files.select {|f| CodeOcean::File.find_by(id: f.file_id)&.context_type == 'CommunitySolution' } # Then, add all remaining files and sort them by name with extension - @files += (all_visible_files - @files).sort_by(&:name_with_extension) + @files += (all_visible_files - @files).sort_by(&:filepath) # Own Submission as a reference - @own_files = @submission.collect_files.select(&:visible).sort_by(&:name_with_extension) + @own_files = @submission.collect_files.select(&:visible).sort_by(&:filepath) # Remove the file_id from the second graph. Otherwise, the comparison and file-tree selection does not work as expected @own_files.map do |file| file.file_id = nil diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 7e0a5435..a49a5ef0 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -321,7 +321,7 @@ raise: false @search = Search.new @search.exercise = @exercise @submission = current_user.submissions.where(exercise_id: @exercise.id).order('created_at DESC').first - @files = (@submission ? @submission.collect_files : @exercise.files).select(&:visible).sort_by(&:name_with_extension) + @files = (@submission ? @submission.collect_files : @exercise.files).select(&:visible).sort_by(&:filepath) @paths = collect_paths(@files) @user_id = if current_user.respond_to? :external_id diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 375142b1..5188320e 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -27,12 +27,7 @@ class SubmissionsController < ApplicationController stringio = Zip::OutputStream.write_buffer do |zio| @files.each do |file| - zio.put_next_entry(if file.path.to_s == '' - file.name_with_extension - else - File.join(file.path, - file.name_with_extension) - end) + zio.put_next_entry(file.filepath) zio.write(file.content.presence || file.native_file.read) end @@ -247,8 +242,7 @@ class SubmissionsController < ApplicationController # parse remote request url content += "#{request.base_url}/evaluate\n" @submission.files.each do |file| - file_path = file.path.to_s == '' ? file.name_with_extension : File.join(file.path, file.name_with_extension) - content += "#{file_path}=#{file.file_id}\n" + content += "#{file.filepath}=#{file.file_id}\n" end File.open(path, 'w+') do |f| f.write(content) @@ -317,7 +311,7 @@ class SubmissionsController < ApplicationController # @files contains all visible files for the user # @file contains the specific file requested for run / test / render / ... set_files - @file = @files.detect {|file| file.name_with_extension == sanitize_filename } + @file = @files.detect {|file| file.filepath == sanitize_filename } head :not_found unless @file end diff --git a/app/models/code_ocean/file.rb b/app/models/code_ocean/file.rb index 7bbba9b5..7a97427d 100644 --- a/app/models/code_ocean/file.rb +++ b/app/models/code_ocean/file.rb @@ -99,7 +99,7 @@ module CodeOcean private :incomplete_descendent? def name_with_extension - name + (file_type.file_extension || '') + name.to_s + (file_type&.file_extension || '') end def set_ancestor_values diff --git a/app/models/submission.rb b/app/models/submission.rb index d3281288..6027c50f 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -160,7 +160,7 @@ class Submission < ApplicationRecord # @raise [Runner::Error] if the code could not be run due to a failure with the runner. # See the specific type and message for more details. def run(file, &block) - run_command = command_for execution_environment.run_command, file.name_with_extension + run_command = command_for execution_environment.run_command, file.filepath durations = {} prepared_runner do |runner, waiting_duration| durations[:execution_duration] = runner.attach_to_execution(run_command, &block) @@ -185,7 +185,7 @@ class Submission < ApplicationRecord end def run_test_file(file, runner, waiting_duration) - test_command = command_for execution_environment.test_command, file.name_with_extension + test_command = command_for execution_environment.test_command, file.filepath result = {file_role: file.role, waiting_for_container_time: waiting_duration} output = runner.execute_command(test_command, raise_exception: false) result.merge(output) @@ -222,7 +222,7 @@ class Submission < ApplicationRecord end def command_for(template, file) - filepath = collect_files.find {|f| f.name_with_extension == file }.filepath + filepath = collect_files.find {|f| f.filepath == file }.filepath template % command_substitutions(filepath) end @@ -255,7 +255,7 @@ class Submission < ApplicationRecord waiting_for_container_time: output[:waiting_for_container_time] ) - filename = file.name_with_extension + filename = file.filepath if file.teacher_defined_linter? LinterCheckRun.create_from(testrun, assessment) diff --git a/app/views/code_ocean/files/show.json.jbuilder b/app/views/code_ocean/files/show.json.jbuilder index 94cef071..06f5996e 100644 --- a/app/views/code_ocean/files/show.json.jbuilder +++ b/app/views/code_ocean/files/show.json.jbuilder @@ -1,3 +1,3 @@ # frozen_string_literal: true -json.extract! @file, :id, :name_with_extension +json.extract! @file, :id, :filepath diff --git a/app/views/exercises/_editor_frame.html.slim b/app/views/exercises/_editor_frame.html.slim index 34cb938a..c63ccf3b 100644 --- a/app/views/exercises/_editor_frame.html.slim +++ b/app/views/exercises/_editor_frame.html.slim @@ -1,4 +1,4 @@ -div class=(defined?(own_solution) ? "own-frame" : "frame") data-executable=file.file_type.executable? data-filename=file.name_with_extension data-renderable=file.file_type.renderable? data-role=file.role data-binary=file.file_type.binary? data-context-type=file.context_type data-read-only=file.read_only +div class=(defined?(own_solution) ? "own-frame" : "frame") data-executable=file.file_type.executable? data-filename=file.filepath data-renderable=file.file_type.renderable? data-role=file.role data-binary=file.file_type.binary? data-context-type=file.context_type data-read-only=file.read_only - if file.file_type.binary? .binary-file data-file-id=file.ancestor_id - if file.file_type.renderable? diff --git a/app/views/exercises/_file_form.html.slim b/app/views/exercises/_file_form.html.slim index 06bc75b2..2ede87cb 100644 --- a/app/views/exercises/_file_form.html.slim +++ b/app/views/exercises/_file_form.html.slim @@ -7,10 +7,7 @@ li.card.mt-2 a class=['file-heading', collapsed_class] data-toggle="collapse" href="#collapse#{f.index}" aria-expanded="#{aria_expanded}" div.clearfix role="button" i class="fa" aria-hidden="true" - - if f.object.name.present? && f.object.file_type.present? - span = f.object.name_with_extension - - else - span = f.object.name + span = f.object.filepath .card-collapse.collapse class=('in' if f.object.name.nil?) id="collapse#{f.index}" role="tabpanel" .card-body - if policy(f.object).destroy? && id.present? diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index e894ac00..dc603ab3 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -65,9 +65,9 @@ h1 td.align-middle -this.testruns.includes(:file).order("files.name").each do |run| - if run.passed - .unit-test-result.positive-result title=[run.file&.name_with_extension, run.output].join("\n").strip + .unit-test-result.positive-result title=[run.file&.filepath, run.output].join("\n").strip - else - .unit-test-result.unknown-result title=[run.file&.name_with_extension, run.output].join("\n").strip + .unit-test-result.unknown-result title=[run.file&.filepath, run.output].join("\n").strip td = @working_times_until[index] if index > 0 if policy(@exercise).detailed_statistics? - elsif this.is_a? UserExerciseIntervention td = this.created_at.strftime("%F %T") diff --git a/app/views/exercises/show.html.slim b/app/views/exercises/show.html.slim index d582d66e..517a6980 100644 --- a/app/views/exercises/show.html.slim +++ b/app/views/exercises/show.html.slim @@ -49,7 +49,7 @@ ul.list-unstyled#files a.file-heading.collapsed data-toggle="collapse" data-parent="#files" href=".collapse#{file.id}" div.clearfix role="button" i class="fa" aria-hidden="true" - span = file.name_with_extension + span = file.filepath .card-collapse.collapse class="collapse#{file.id}" role="tabpanel" .card-body - if policy(file).destroy? diff --git a/config/routes.rb b/config/routes.rb index c0042292..19e70cc4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -FILENAME_REGEXP = /[\w.]+/.freeze unless Kernel.const_defined?(:FILENAME_REGEXP) +FILENAME_REGEXP = %r{[\w./]+}.freeze unless Kernel.const_defined?(:FILENAME_REGEXP) Rails.application.routes.draw do resources :community_solutions, only: %i[index edit update] From 4e6d09db19aa4198fb76990e9d55337d458453b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 03:00:46 +0000 Subject: [PATCH 41/62] Bump rails from 6.1.4.1 to 6.1.4.3 Bumps [rails](https://github.com/rails/rails) from 6.1.4.1 to 6.1.4.3. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.1...v6.1.4.3) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 110 +++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index db54f366..9f138a09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,64 +30,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.0) - actioncable (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + actioncable (6.1.4.3) + actionpack (= 6.1.4.3) + activesupport (= 6.1.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailbox (6.1.4.3) + actionpack (= 6.1.4.3) + activejob (= 6.1.4.3) + activerecord (= 6.1.4.3) + activestorage (= 6.1.4.3) + activesupport (= 6.1.4.3) mail (>= 2.7.1) - actionmailer (6.1.4.1) - actionpack (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailer (6.1.4.3) + actionpack (= 6.1.4.3) + actionview (= 6.1.4.3) + activejob (= 6.1.4.3) + activesupport (= 6.1.4.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.1) - actionview (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionpack (6.1.4.3) + actionview (= 6.1.4.3) + activesupport (= 6.1.4.3) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.1) - actionpack (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actiontext (6.1.4.3) + actionpack (= 6.1.4.3) + activerecord (= 6.1.4.3) + activestorage (= 6.1.4.3) + activesupport (= 6.1.4.3) nokogiri (>= 1.8.5) - actionview (6.1.4.1) - activesupport (= 6.1.4.1) + actionview (6.1.4.3) + activesupport (= 6.1.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.4.1) - activesupport (= 6.1.4.1) + activejob (6.1.4.3) + activesupport (= 6.1.4.3) globalid (>= 0.3.6) - activemodel (6.1.4.1) - activesupport (= 6.1.4.1) + activemodel (6.1.4.3) + activesupport (= 6.1.4.3) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.4.1) - activemodel (= 6.1.4.1) - activesupport (= 6.1.4.1) - activestorage (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activesupport (= 6.1.4.1) + activerecord (6.1.4.3) + activemodel (= 6.1.4.3) + activesupport (= 6.1.4.3) + activestorage (6.1.4.3) + actionpack (= 6.1.4.3) + activejob (= 6.1.4.3) + activerecord (= 6.1.4.3) + activesupport (= 6.1.4.3) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.1) + activesupport (6.1.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -249,7 +249,7 @@ GEM listen (3.7.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.12.0) + loofah (2.13.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -330,20 +330,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.1) - actioncable (= 6.1.4.1) - actionmailbox (= 6.1.4.1) - actionmailer (= 6.1.4.1) - actionpack (= 6.1.4.1) - actiontext (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activemodel (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + rails (6.1.4.3) + actioncable (= 6.1.4.3) + actionmailbox (= 6.1.4.3) + actionmailer (= 6.1.4.3) + actionpack (= 6.1.4.3) + actiontext (= 6.1.4.3) + actionview (= 6.1.4.3) + activejob (= 6.1.4.3) + activemodel (= 6.1.4.3) + activerecord (= 6.1.4.3) + activestorage (= 6.1.4.3) + activesupport (= 6.1.4.3) bundler (>= 1.15.0) - railties (= 6.1.4.1) + railties (= 6.1.4.3) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -372,9 +372,9 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + railties (6.1.4.3) + actionpack (= 6.1.4.3) + activesupport (= 6.1.4.3) method_source rake (>= 0.13) thor (~> 1.0) @@ -498,7 +498,7 @@ GEM sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.4.1) + sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) From c4d3e5108eaed1df0ae2090e18fdd9530f3a9cf2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Dec 2021 03:01:15 +0000 Subject: [PATCH 42/62] Bump rails from 6.1.4.3 to 6.1.4.4 Bumps [rails](https://github.com/rails/rails) from 6.1.4.3 to 6.1.4.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.3...v6.1.4.4) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9f138a09..2d81dea1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,64 +30,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.0) - actioncable (6.1.4.3) - actionpack (= 6.1.4.3) - activesupport (= 6.1.4.3) + actioncable (6.1.4.4) + actionpack (= 6.1.4.4) + activesupport (= 6.1.4.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.3) - actionpack (= 6.1.4.3) - activejob (= 6.1.4.3) - activerecord (= 6.1.4.3) - activestorage (= 6.1.4.3) - activesupport (= 6.1.4.3) + actionmailbox (6.1.4.4) + actionpack (= 6.1.4.4) + activejob (= 6.1.4.4) + activerecord (= 6.1.4.4) + activestorage (= 6.1.4.4) + activesupport (= 6.1.4.4) mail (>= 2.7.1) - actionmailer (6.1.4.3) - actionpack (= 6.1.4.3) - actionview (= 6.1.4.3) - activejob (= 6.1.4.3) - activesupport (= 6.1.4.3) + actionmailer (6.1.4.4) + actionpack (= 6.1.4.4) + actionview (= 6.1.4.4) + activejob (= 6.1.4.4) + activesupport (= 6.1.4.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.3) - actionview (= 6.1.4.3) - activesupport (= 6.1.4.3) + actionpack (6.1.4.4) + actionview (= 6.1.4.4) + activesupport (= 6.1.4.4) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.3) - actionpack (= 6.1.4.3) - activerecord (= 6.1.4.3) - activestorage (= 6.1.4.3) - activesupport (= 6.1.4.3) + actiontext (6.1.4.4) + actionpack (= 6.1.4.4) + activerecord (= 6.1.4.4) + activestorage (= 6.1.4.4) + activesupport (= 6.1.4.4) nokogiri (>= 1.8.5) - actionview (6.1.4.3) - activesupport (= 6.1.4.3) + actionview (6.1.4.4) + activesupport (= 6.1.4.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.4.3) - activesupport (= 6.1.4.3) + activejob (6.1.4.4) + activesupport (= 6.1.4.4) globalid (>= 0.3.6) - activemodel (6.1.4.3) - activesupport (= 6.1.4.3) + activemodel (6.1.4.4) + activesupport (= 6.1.4.4) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.4.3) - activemodel (= 6.1.4.3) - activesupport (= 6.1.4.3) - activestorage (6.1.4.3) - actionpack (= 6.1.4.3) - activejob (= 6.1.4.3) - activerecord (= 6.1.4.3) - activesupport (= 6.1.4.3) + activerecord (6.1.4.4) + activemodel (= 6.1.4.4) + activesupport (= 6.1.4.4) + activestorage (6.1.4.4) + actionpack (= 6.1.4.4) + activejob (= 6.1.4.4) + activerecord (= 6.1.4.4) + activesupport (= 6.1.4.4) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.3) + activesupport (6.1.4.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -266,7 +266,7 @@ GEM mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.5.3) - minitest (5.14.4) + minitest (5.15.0) minitest-autotest (1.1.1) minitest-server (~> 1.0) path_expander (~> 1.0) @@ -330,20 +330,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.3) - actioncable (= 6.1.4.3) - actionmailbox (= 6.1.4.3) - actionmailer (= 6.1.4.3) - actionpack (= 6.1.4.3) - actiontext (= 6.1.4.3) - actionview (= 6.1.4.3) - activejob (= 6.1.4.3) - activemodel (= 6.1.4.3) - activerecord (= 6.1.4.3) - activestorage (= 6.1.4.3) - activesupport (= 6.1.4.3) + rails (6.1.4.4) + actioncable (= 6.1.4.4) + actionmailbox (= 6.1.4.4) + actionmailer (= 6.1.4.4) + actionpack (= 6.1.4.4) + actiontext (= 6.1.4.4) + actionview (= 6.1.4.4) + activejob (= 6.1.4.4) + activemodel (= 6.1.4.4) + activerecord (= 6.1.4.4) + activestorage (= 6.1.4.4) + activesupport (= 6.1.4.4) bundler (>= 1.15.0) - railties (= 6.1.4.3) + railties (= 6.1.4.4) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -372,9 +372,9 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.4.3) - actionpack (= 6.1.4.3) - activesupport (= 6.1.4.3) + railties (6.1.4.4) + actionpack (= 6.1.4.4) + activesupport (= 6.1.4.4) method_source rake (>= 0.13) thor (~> 1.0) From 416135daf09e654cd826a079be1a29c84df2cf8f Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 16 Dec 2021 11:54:31 +0100 Subject: [PATCH 43/62] Change order of autosave and clearing of editors when submitting code --- app/assets/javascripts/editor/submissions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/editor/submissions.js b/app/assets/javascripts/editor/submissions.js index f72c478f..e8cae56e 100644 --- a/app/assets/javascripts/editor/submissions.js +++ b/app/assets/javascripts/editor/submissions.js @@ -196,9 +196,9 @@ CodeOceanEditorSubmissions = { const button = $(event.target) || $('#submit'); this.createSubmission(button, null, function (response) { if (response.redirect) { + this.unloadAutoSave(); this.editors = []; Turbolinks.clearCache(); - clearTimeout(this.autosaveTimer); Turbolinks.visit(response.redirect); } else if (response.status === 'container_depleted') { this.showContainerDepletedMessage(); From 79edace57ba003970b4c0c6be7e8a61449f7090a Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 16 Dec 2021 23:12:16 +0100 Subject: [PATCH 44/62] Use BigDecimals for score calculations --- app/models/submission.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/submission.rb b/app/models/submission.rb index 6027c50f..5acf4f34 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -291,7 +291,8 @@ class Submission < ApplicationRecord score += output[:score] * output[:weight] unless output.nil? end end - update(score: score) + # Prevent floating point precision issues by converting to BigDecimal, e.g., for `0.28 * 25` + update(score: score.to_d) if normalized_score.to_d == 1.0.to_d Thread.new do RequestForComment.where(exercise_id: exercise_id, user_id: user_id, user_type: user_type).find_each do |rfc| From 4fc4b7ac35ee87736a4fae45ab2799052dd5a4db Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 16 Dec 2021 23:15:27 +0100 Subject: [PATCH 45/62] Remove temporary fix for Poseidon#54 --- lib/runner/strategy/poseidon.rb | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index fb3cbd9a..b0bb6607 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -127,9 +127,6 @@ class Runner::Strategy::Poseidon < Runner::Strategy Runner.destroy(@allocation_id) if response.status == 400 self.class.handle_error response - rescue Faraday::ConnectionFailed - # TODO: Remove fix after the following issue is resolved: https://github.com/openHPI/poseidon/issues/54 - raise Runner::Error::RunnerNotFound.new rescue Faraday::Error => e raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}") ensure From 8977ec12ae50eb517596639ca92a913b40051537 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Dec 2021 03:02:14 +0000 Subject: [PATCH 46/62] Bump underscore from 1.13.1 to 1.13.2 Bumps [underscore](https://github.com/jashkenas/underscore) from 1.13.1 to 1.13.2. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](https://github.com/jashkenas/underscore/compare/1.13.1...1.13.2) --- updated-dependencies: - dependency-name: underscore dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 237ee048..1ef05feb 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "popper.js": "^1.16.1", "rails-erb-loader": "^5.5.2", "sortablejs": "^1.14.0", - "underscore": "^1.13.1", + "underscore": "^1.13.2", "vis": "^4.21.0", "webpack-merge": "^5.8.0" }, diff --git a/yarn.lock b/yarn.lock index ba2ad153..d9cb9075 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6983,10 +6983,10 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -underscore@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== +underscore@^1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" + integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" From 863886a6f7d84e6a0619a5505630b41a7a7a2928 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Dec 2021 03:01:38 +0000 Subject: [PATCH 47/62] Bump jbuilder from 2.11.3 to 2.11.4 Bumps [jbuilder](https://github.com/rails/jbuilder) from 2.11.3 to 2.11.4. - [Release notes](https://github.com/rails/jbuilder/releases) - [Changelog](https://github.com/rails/jbuilder/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/jbuilder/compare/v2.11.3...v2.11.4) --- updated-dependencies: - dependency-name: jbuilder dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2d81dea1..36903756 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -215,7 +215,7 @@ GEM builder (>= 1.0, < 4.0) oauth (>= 0.4.5, < 0.6) influxdb (0.8.1) - jbuilder (2.11.3) + jbuilder (2.11.4) activesupport (>= 5.0.0) jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) From 78ffb1bee8a906ad525f429680eeb6746d1beea2 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 20 Dec 2021 13:19:23 +0100 Subject: [PATCH 48/62] Update codeclimate-action in ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b20acdfc..c7498b09 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: run: bundle exec rspec --color --format progress --require spec_helper --require rails_helper - name: Send coverage to CodeClimate - uses: paambaati/codeclimate-action@v2.7.4 + uses: paambaati/codeclimate-action@v3 continue-on-error: true if: ${{ success() || failure() }} env: From 0f92e862c675ed0031377578a5649022dd46afe9 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 20 Dec 2021 13:23:45 +0100 Subject: [PATCH 49/62] Update codeclimate-action in ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7498b09..f966ebf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: run: bundle exec rspec --color --format progress --require spec_helper --require rails_helper - name: Send coverage to CodeClimate - uses: paambaati/codeclimate-action@v3 + uses: paambaati/codeclimate-action@v3.0.0 continue-on-error: true if: ${{ success() || failure() }} env: From 3dc8265292c2947f7c2000671c0b8de902ee102d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 21 Dec 2021 13:26:06 +0100 Subject: [PATCH 50/62] Toggle editor buttons when jumping to a source line --- app/assets/javascripts/editor/editor.js.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 079b74d0..cce1c53e 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -631,6 +631,7 @@ var CodeOceanEditor = { const frame = $('div.frame[data-filename="' + file + '"]'); this.showFrame(frame); + this.toggleButtonStates(); const file_id = frame.find('.editor').data('file-id'); this.setActiveFile(frame.data('filename'), file_id); From f7eecd4306eff0c90f4d1790b5db167f9bc09e2c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 21 Dec 2021 13:27:12 +0100 Subject: [PATCH 51/62] Bundle update --- Gemfile.lock | 5 +- yarn.lock | 1095 +++++++++++++++++++++++++------------------------- 2 files changed, 551 insertions(+), 549 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 36903756..a196a0f3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -215,7 +215,8 @@ GEM builder (>= 1.0, < 4.0) oauth (>= 0.4.5, < 0.6) influxdb (0.8.1) - jbuilder (2.11.4) + jbuilder (2.11.5) + actionview (>= 5.0.0) activesupport (>= 5.0.0) jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) @@ -430,7 +431,7 @@ GEM rubocop-ast (>= 1.12.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.14.0) + rubocop-ast (1.15.0) parser (>= 3.0.1.1) rubocop-performance (1.12.0) rubocop (>= 1.7.0, < 2.0) diff --git a/yarn.lock b/yarn.lock index d9cb9075..988e1fb9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,18 +15,18 @@ integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== "@babel/core@^7.15.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" - integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" + integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== dependencies: "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helpers" "^7.16.0" - "@babel/parser" "^7.16.0" + "@babel/generator" "^7.16.5" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-module-transforms" "^7.16.5" + "@babel/helpers" "^7.16.5" + "@babel/parser" "^7.16.5" "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" + "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" convert-source-map "^1.7.0" debug "^4.1.0" @@ -35,10 +35,10 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" - integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== +"@babel/generator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" + integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== dependencies: "@babel/types" "^7.16.0" jsesc "^2.5.1" @@ -51,15 +51,15 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz#f1a686b92da794020c26582eb852e9accd0d7882" - integrity sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz#a8429d064dce8207194b8bf05a70a9ea828746af" + integrity sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA== dependencies: "@babel/helper-explode-assignable-expression" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.3": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== @@ -69,16 +69,17 @@ browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" - integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== +"@babel/helper-create-class-features-plugin@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz#5d1bcd096792c1ebec6249eebc6358eec55d0cad" + integrity sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-environment-visitor" "^7.16.5" "@babel/helper-function-name" "^7.16.0" - "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-member-expression-to-functions" "^7.16.5" "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.5" "@babel/helper-split-export-declaration" "^7.16.0" "@babel/helper-create-regexp-features-plugin@^7.16.0": @@ -103,6 +104,13 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-environment-visitor@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" + integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== + dependencies: + "@babel/types" "^7.16.0" + "@babel/helper-explode-assignable-expression@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" @@ -133,10 +141,10 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-member-expression-to-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" - integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== +"@babel/helper-member-expression-to-functions@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz#1bc9f7e87354e86f8879c67b316cb03d3dc2caab" + integrity sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw== dependencies: "@babel/types" "^7.16.0" @@ -147,18 +155,18 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-module-transforms@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" - integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== +"@babel/helper-module-transforms@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" + integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== dependencies: + "@babel/helper-environment-visitor" "^7.16.5" "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" "@babel/helper-simple-access" "^7.16.0" "@babel/helper-split-export-declaration" "^7.16.0" "@babel/helper-validator-identifier" "^7.15.7" "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" + "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" "@babel/helper-optimise-call-expression@^7.16.0": @@ -168,28 +176,29 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" + integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== -"@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" - integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== +"@babel/helper-remap-async-to-generator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz#e706646dc4018942acb4b29f7e185bc246d65ac3" + integrity sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-wrap-function" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.5" "@babel/types" "^7.16.0" -"@babel/helper-replace-supers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" - integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== +"@babel/helper-replace-supers@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz#96d3988bd0ab0a2d22c88c6198c3d3234ca25326" + integrity sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ== dependencies: - "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-environment-visitor" "^7.16.5" + "@babel/helper-member-expression-to-functions" "^7.16.5" "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.0" + "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" "@babel/helper-simple-access@^7.16.0": @@ -223,23 +232,23 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== -"@babel/helper-wrap-function@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" - integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== +"@babel/helper-wrap-function@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" + integrity sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA== dependencies: "@babel/helper-function-name" "^7.16.0" "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" + "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" -"@babel/helpers@^7.16.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" - integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== +"@babel/helpers@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" + integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== dependencies: "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.3" + "@babel/traverse" "^7.16.5" "@babel/types" "^7.16.0" "@babel/highlight@^7.16.0": @@ -251,10 +260,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.0", "@babel/parser@^7.16.3": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" - integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== +"@babel/parser@^7.16.0", "@babel/parser@^7.16.5": + version "7.16.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" + integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": version "7.16.2" @@ -272,133 +281,133 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.0" -"@babel/plugin-proposal-async-generator-functions@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" - integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== +"@babel/plugin-proposal-async-generator-functions@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz#fd3bd7e0d98404a3d4cbca15a72d533f8c9a2f67" + integrity sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.4" + "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-remap-async-to-generator" "^7.16.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" - integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz#3269f44b89122110f6339806e05d43d84106468a" + integrity sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-proposal-class-static-block@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz#5296942c564d8144c83eea347d0aa8a0b89170e7" - integrity sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA== +"@babel/plugin-proposal-class-static-block@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz#df58ab015a7d3b0963aafc8f20792dcd834952a9" + integrity sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz#783eca61d50526202f9b296095453977e88659f1" - integrity sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ== +"@babel/plugin-proposal-dynamic-import@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz#2e0d19d5702db4dcb9bc846200ca02f2e9d60e9e" + integrity sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz#9c01dee40b9d6b847b656aaf4a3976a71740f222" - integrity sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA== +"@babel/plugin-proposal-export-namespace-from@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz#3b4dd28378d1da2fea33e97b9f25d1c2f5bf1ac9" + integrity sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz#cae35a95ed1d2a7fa29c4dc41540b84a72e9ab25" - integrity sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg== +"@babel/plugin-proposal-json-strings@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz#1e726930fca139caab6b084d232a9270d9d16f9c" + integrity sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz#a711b8ceb3ffddd3ef88d3a49e86dbd3cc7db3fd" - integrity sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz#df1f2e4b5a0ec07abf061d2c18e53abc237d3ef5" + integrity sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" - integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz#652555bfeeeee2d2104058c6225dc6f75e2d0f07" + integrity sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz#5d418e4fbbf8b9b7d03125d3a52730433a373734" - integrity sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q== +"@babel/plugin-proposal-numeric-separator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz#edcb6379b6cf4570be64c45965d8da7a2debf039" + integrity sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz#5fb32f6d924d6e6712810362a60e12a2609872e6" - integrity sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg== +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz#f30f80dacf7bc1404bf67f99c8d9c01665e830ad" + integrity sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw== dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.0" + "@babel/plugin-transform-parameters" "^7.16.5" -"@babel/plugin-proposal-optional-catch-binding@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz#5910085811ab4c28b00d6ebffa4ab0274d1e5f16" - integrity sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw== +"@babel/plugin-proposal-optional-catch-binding@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz#1a5405765cf589a11a33a1fd75b2baef7d48b74e" + integrity sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" - integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== +"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" + integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz#b4dafb9c717e4301c5776b30d080d6383c89aff6" - integrity sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg== +"@babel/plugin-proposal-private-methods@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz#2086f7d78c1b0c712d49b5c3fbc2d1ca21a7ee12" + integrity sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-proposal-private-property-in-object@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz#69e935b2c5c79d2488112d886f0c4e2790fee76f" - integrity sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw== +"@babel/plugin-proposal-private-property-in-object@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz#a42d4b56005db3d405b12841309dbca647e7a21b" + integrity sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-create-class-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz#890482dfc5ea378e42e19a71e709728cabf18612" - integrity sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g== +"@babel/plugin-proposal-unicode-property-regex@^7.16.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz#35fe753afa7c572f322bd068ff3377bde0f37080" + integrity sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -498,292 +507,293 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz#951706f8b449c834ed07bd474c0924c944b95a8e" - integrity sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA== +"@babel/plugin-transform-arrow-functions@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz#04c18944dd55397b521d9d7511e791acea7acf2d" + integrity sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-async-to-generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" - integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== +"@babel/plugin-transform-async-to-generator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz#89c9b501e65bb14c4579a6ce9563f859de9b34e4" + integrity sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w== dependencies: "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.16.0" + "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-remap-async-to-generator" "^7.16.5" -"@babel/plugin-transform-block-scoped-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz#c618763233ad02847805abcac4c345ce9de7145d" - integrity sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg== +"@babel/plugin-transform-block-scoped-functions@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz#af087494e1c387574260b7ee9b58cdb5a4e9b0b0" + integrity sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-block-scoping@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz#bcf433fb482fe8c3d3b4e8a66b1c4a8e77d37c16" - integrity sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw== +"@babel/plugin-transform-block-scoping@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz#b91f254fe53e210eabe4dd0c40f71c0ed253c5e7" + integrity sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-classes@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz#54cf5ff0b2242c6573d753cd4bfc7077a8b282f5" - integrity sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ== +"@babel/plugin-transform-classes@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz#6acf2ec7adb50fb2f3194dcd2909dbd056dcf216" + integrity sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-environment-visitor" "^7.16.5" "@babel/helper-function-name" "^7.16.0" "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-replace-supers" "^7.16.5" "@babel/helper-split-export-declaration" "^7.16.0" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz#e0c385507d21e1b0b076d66bed6d5231b85110b7" - integrity sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw== +"@babel/plugin-transform-computed-properties@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz#2af91ebf0cceccfcc701281ada7cfba40a9b322a" + integrity sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz#ad3d7e74584ad5ea4eadb1e6642146c590dee33c" - integrity sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q== +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz#89ebc87499ac4a81b897af53bb5d3eed261bd568" + integrity sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-dotall-regex@^7.16.0", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz#50bab00c1084b6162d0a58a818031cf57798e06f" - integrity sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw== +"@babel/plugin-transform-dotall-regex@^7.16.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz#b40739c00b6686820653536d6d143e311de67936" + integrity sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-duplicate-keys@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz#8bc2e21813e3e89e5e5bf3b60aa5fc458575a176" - integrity sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ== +"@babel/plugin-transform-duplicate-keys@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz#2450f2742325412b746d7d005227f5e8973b512a" + integrity sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-exponentiation-operator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz#a180cd2881e3533cef9d3901e48dad0fbeff4be4" - integrity sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw== +"@babel/plugin-transform-exponentiation-operator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz#36e261fa1ab643cfaf30eeab38e00ed1a76081e2" + integrity sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-for-of@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz#f7abaced155260e2461359bbc7c7248aca5e6bd2" - integrity sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ== +"@babel/plugin-transform-for-of@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz#9b544059c6ca11d565457c0ff1f08e13ce225261" + integrity sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz#02e3699c284c6262236599f751065c5d5f1f400e" - integrity sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg== +"@babel/plugin-transform-function-name@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz#6896ebb6a5538a75d6a4086a277752f655a7bd15" + integrity sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ== dependencies: "@babel/helper-function-name" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz#79711e670ffceb31bd298229d50f3621f7980cac" - integrity sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ== +"@babel/plugin-transform-literals@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz#af392b90e3edb2bd6dc316844cbfd6b9e009d320" + integrity sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-member-expression-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz#5251b4cce01eaf8314403d21aedb269d79f5e64b" - integrity sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg== +"@babel/plugin-transform-member-expression-literals@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz#4bd6ecdc11932361631097b779ca5c7570146dd5" + integrity sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-modules-amd@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz#09abd41e18dcf4fd479c598c1cef7bd39eb1337e" - integrity sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw== +"@babel/plugin-transform-modules-amd@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz#92c0a3e83f642cb7e75fada9ab497c12c2616527" + integrity sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ== dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" - integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== +"@babel/plugin-transform-modules-commonjs@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz#4ee03b089536f076b2773196529d27c32b9d7bde" + integrity sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ== dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/helper-simple-access" "^7.16.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz#a92cf240afeb605f4ca16670453024425e421ea4" - integrity sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg== +"@babel/plugin-transform-modules-systemjs@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz#07078ba2e3cc94fbdd06836e355c246e98ad006b" + integrity sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA== dependencies: "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/helper-validator-identifier" "^7.15.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz#195f26c2ad6d6a391b70880effce18ce625e06a7" - integrity sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg== +"@babel/plugin-transform-modules-umd@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz#caa9c53d636fb4e3c99fd35a4c9ba5e5cd7e002e" + integrity sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw== dependencies: - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz#d3db61cc5d5b97986559967cd5ea83e5c32096ca" - integrity sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz#4afd8cdee377ce3568f4e8a9ee67539b69886a3c" + integrity sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.0" -"@babel/plugin-transform-new-target@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz#af823ab576f752215a49937779a41ca65825ab35" - integrity sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw== +"@babel/plugin-transform-new-target@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz#759ea9d6fbbc20796056a5d89d13977626384416" + integrity sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-object-super@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz#fb20d5806dc6491a06296ac14ea8e8d6fedda72b" - integrity sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg== +"@babel/plugin-transform-object-super@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz#8ccd9a1bcd3e7732ff8aa1702d067d8cd70ce380" + integrity sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-replace-supers" "^7.16.5" -"@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" - integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== +"@babel/plugin-transform-parameters@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz#4fc74b18a89638bd90aeec44a11793ecbe031dde" + integrity sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-property-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz#a95c552189a96a00059f6776dc4e00e3690c78d1" - integrity sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ== +"@babel/plugin-transform-property-literals@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz#58f1465a7202a2bb2e6b003905212dd7a79abe3f" + integrity sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz#eaee422c84b0232d03aea7db99c97deeaf6125a4" - integrity sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg== +"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz#704cc6d8dd3dd4758267621ab7b36375238cef13" + integrity sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz#fff4b9dcb19e12619394bda172d14f2d04c0379c" - integrity sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg== +"@babel/plugin-transform-reserved-words@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz#db95e98799675e193dc2b47d3e72a7c0651d0c30" + integrity sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/plugin-transform-runtime@^7.15.0": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz#f9ba3c7034d429c581e1bd41b4952f3db3c2c7e8" - integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A== + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.5.tgz#0cc3f01d69f299d5a42cd9ec43b92ea7a777b8db" + integrity sha512-gxpfS8XQWDbQ8oP5NcmpXxtEgCJkbO+W9VhZlOhr0xPyVaRjAQPOv7ZDj9fg0d5s9+NiVvMCE6gbkEkcsxwGRw== dependencies: "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.4.0" babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz#090372e3141f7cc324ed70b3daf5379df2fa384d" - integrity sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow== +"@babel/plugin-transform-shorthand-properties@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz#ccb60b1a23b799f5b9a14d97c5bc81025ffd96d7" + integrity sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-spread@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz#d21ca099bbd53ab307a8621e019a7bd0f40cdcfb" - integrity sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg== +"@babel/plugin-transform-spread@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz#912b06cff482c233025d3e69cf56d3e8fa166c29" + integrity sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" -"@babel/plugin-transform-sticky-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz#c35ea31a02d86be485f6aa510184b677a91738fd" - integrity sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q== +"@babel/plugin-transform-sticky-regex@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz#593579bb2b5a8adfbe02cb43823275d9098f75f9" + integrity sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-template-literals@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz#a8eced3a8e7b8e2d40ec4ec4548a45912630d302" - integrity sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q== +"@babel/plugin-transform-template-literals@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz#343651385fd9923f5aa2275ca352c5d9183e1773" + integrity sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-typeof-symbol@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz#8b19a244c6f8c9d668dca6a6f754ad6ead1128f2" - integrity sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg== +"@babel/plugin-transform-typeof-symbol@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz#a1d1bf2c71573fe30965d0e4cd6a3291202e20ed" + integrity sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-unicode-escapes@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz#1a354064b4c45663a32334f46fa0cf6100b5b1f3" - integrity sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A== +"@babel/plugin-transform-unicode-escapes@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz#80507c225af49b4f4ee647e2a0ce53d2eeff9e85" + integrity sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" -"@babel/plugin-transform-unicode-regex@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz#293b80950177c8c85aede87cef280259fb995402" - integrity sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A== +"@babel/plugin-transform-unicode-regex@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz#ac84d6a1def947d71ffb832426aa53b83d7ed49e" + integrity sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/preset-env@^7.15.0": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" - integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.5.tgz#2e94d922f4a890979af04ffeb6a6b4e44ba90847" + integrity sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ== dependencies: "@babel/compat-data" "^7.16.4" "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.5" "@babel/helper-validator-option" "^7.14.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.4" - "@babel/plugin-proposal-class-properties" "^7.16.0" - "@babel/plugin-proposal-class-static-block" "^7.16.0" - "@babel/plugin-proposal-dynamic-import" "^7.16.0" - "@babel/plugin-proposal-export-namespace-from" "^7.16.0" - "@babel/plugin-proposal-json-strings" "^7.16.0" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" - "@babel/plugin-proposal-numeric-separator" "^7.16.0" - "@babel/plugin-proposal-object-rest-spread" "^7.16.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-private-methods" "^7.16.0" - "@babel/plugin-proposal-private-property-in-object" "^7.16.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions" "^7.16.5" + "@babel/plugin-proposal-class-properties" "^7.16.5" + "@babel/plugin-proposal-class-static-block" "^7.16.5" + "@babel/plugin-proposal-dynamic-import" "^7.16.5" + "@babel/plugin-proposal-export-namespace-from" "^7.16.5" + "@babel/plugin-proposal-json-strings" "^7.16.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.5" + "@babel/plugin-proposal-numeric-separator" "^7.16.5" + "@babel/plugin-proposal-object-rest-spread" "^7.16.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.5" + "@babel/plugin-proposal-optional-chaining" "^7.16.5" + "@babel/plugin-proposal-private-methods" "^7.16.5" + "@babel/plugin-proposal-private-property-in-object" "^7.16.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.5" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -798,38 +808,38 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.0" - "@babel/plugin-transform-async-to-generator" "^7.16.0" - "@babel/plugin-transform-block-scoped-functions" "^7.16.0" - "@babel/plugin-transform-block-scoping" "^7.16.0" - "@babel/plugin-transform-classes" "^7.16.0" - "@babel/plugin-transform-computed-properties" "^7.16.0" - "@babel/plugin-transform-destructuring" "^7.16.0" - "@babel/plugin-transform-dotall-regex" "^7.16.0" - "@babel/plugin-transform-duplicate-keys" "^7.16.0" - "@babel/plugin-transform-exponentiation-operator" "^7.16.0" - "@babel/plugin-transform-for-of" "^7.16.0" - "@babel/plugin-transform-function-name" "^7.16.0" - "@babel/plugin-transform-literals" "^7.16.0" - "@babel/plugin-transform-member-expression-literals" "^7.16.0" - "@babel/plugin-transform-modules-amd" "^7.16.0" - "@babel/plugin-transform-modules-commonjs" "^7.16.0" - "@babel/plugin-transform-modules-systemjs" "^7.16.0" - "@babel/plugin-transform-modules-umd" "^7.16.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" - "@babel/plugin-transform-new-target" "^7.16.0" - "@babel/plugin-transform-object-super" "^7.16.0" - "@babel/plugin-transform-parameters" "^7.16.3" - "@babel/plugin-transform-property-literals" "^7.16.0" - "@babel/plugin-transform-regenerator" "^7.16.0" - "@babel/plugin-transform-reserved-words" "^7.16.0" - "@babel/plugin-transform-shorthand-properties" "^7.16.0" - "@babel/plugin-transform-spread" "^7.16.0" - "@babel/plugin-transform-sticky-regex" "^7.16.0" - "@babel/plugin-transform-template-literals" "^7.16.0" - "@babel/plugin-transform-typeof-symbol" "^7.16.0" - "@babel/plugin-transform-unicode-escapes" "^7.16.0" - "@babel/plugin-transform-unicode-regex" "^7.16.0" + "@babel/plugin-transform-arrow-functions" "^7.16.5" + "@babel/plugin-transform-async-to-generator" "^7.16.5" + "@babel/plugin-transform-block-scoped-functions" "^7.16.5" + "@babel/plugin-transform-block-scoping" "^7.16.5" + "@babel/plugin-transform-classes" "^7.16.5" + "@babel/plugin-transform-computed-properties" "^7.16.5" + "@babel/plugin-transform-destructuring" "^7.16.5" + "@babel/plugin-transform-dotall-regex" "^7.16.5" + "@babel/plugin-transform-duplicate-keys" "^7.16.5" + "@babel/plugin-transform-exponentiation-operator" "^7.16.5" + "@babel/plugin-transform-for-of" "^7.16.5" + "@babel/plugin-transform-function-name" "^7.16.5" + "@babel/plugin-transform-literals" "^7.16.5" + "@babel/plugin-transform-member-expression-literals" "^7.16.5" + "@babel/plugin-transform-modules-amd" "^7.16.5" + "@babel/plugin-transform-modules-commonjs" "^7.16.5" + "@babel/plugin-transform-modules-systemjs" "^7.16.5" + "@babel/plugin-transform-modules-umd" "^7.16.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.5" + "@babel/plugin-transform-new-target" "^7.16.5" + "@babel/plugin-transform-object-super" "^7.16.5" + "@babel/plugin-transform-parameters" "^7.16.5" + "@babel/plugin-transform-property-literals" "^7.16.5" + "@babel/plugin-transform-regenerator" "^7.16.5" + "@babel/plugin-transform-reserved-words" "^7.16.5" + "@babel/plugin-transform-shorthand-properties" "^7.16.5" + "@babel/plugin-transform-spread" "^7.16.5" + "@babel/plugin-transform-sticky-regex" "^7.16.5" + "@babel/plugin-transform-template-literals" "^7.16.5" + "@babel/plugin-transform-typeof-symbol" "^7.16.5" + "@babel/plugin-transform-unicode-escapes" "^7.16.5" + "@babel/plugin-transform-unicode-regex" "^7.16.5" "@babel/preset-modules" "^0.1.5" "@babel/types" "^7.16.0" babel-plugin-polyfill-corejs2 "^0.3.0" @@ -850,9 +860,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" - integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.5.tgz#7f3e34bf8bdbbadf03fbb7b1ea0d929569c9487a" + integrity sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA== dependencies: regenerator-runtime "^0.13.4" @@ -865,17 +875,18 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" - integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.5": + version "7.16.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" + integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== dependencies: "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" + "@babel/generator" "^7.16.5" + "@babel/helper-environment-visitor" "^7.16.5" "@babel/helper-function-name" "^7.16.0" "@babel/helper-hoist-variables" "^7.16.0" "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.3" + "@babel/parser" "^7.16.5" "@babel/types" "^7.16.0" debug "^4.1.0" globals "^11.1.0" @@ -904,9 +915,9 @@ integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== "@npmcli/fs@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f" - integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951" + integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" @@ -964,55 +975,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.16.0.tgz#aa2207ea4d8e30a10bce0255798323c3b8e9c282" - integrity sha512-rpFrS/DPKH9NAWfEhrgpVmqJtfUIGvl9y6KQv0QsNv7X0ZISNtsoHIUe2jVrbjysjWXrJCryCxcSxNgqsa4Www== + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.16.1.tgz#4270ab0fbd1de425e339b3e7a364feb09f470a87" + integrity sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow== dependencies: - "@sentry/core" "6.16.0" - "@sentry/types" "6.16.0" - "@sentry/utils" "6.16.0" + "@sentry/core" "6.16.1" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" tslib "^1.9.3" -"@sentry/core@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.16.0.tgz#3312e38c6ab66c9d9c4704db696194676c25d001" - integrity sha512-XqIlMjefuJmwQSAzv9J1PtV6+sXiz1dgBbtRr6e+QGIYZ+BDkuyDQv/HsGPfxxMHxgJBxBzi71FFLjEJsF6CBg== +"@sentry/core@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.16.1.tgz#d9f7a75f641acaddf21b6aafa7a32e142f68f17c" + integrity sha512-UFI0264CPUc5cR1zJH+S2UPOANpm6dLJOnsvnIGTjsrwzR0h8Hdl6rC2R/GPq+WNbnipo9hkiIwDlqbqvIU5vw== dependencies: - "@sentry/hub" "6.16.0" - "@sentry/minimal" "6.16.0" - "@sentry/types" "6.16.0" - "@sentry/utils" "6.16.0" + "@sentry/hub" "6.16.1" + "@sentry/minimal" "6.16.1" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" tslib "^1.9.3" -"@sentry/hub@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.16.0.tgz#98b3b68abfe8ec85065a883f92a04a9953f92c16" - integrity sha512-NBkcgGjnYsoXyIJwi2TGCxGnxbDJc/t++0ukFoBRy6RL/pw2YnryCu8PWNFsDkZdlb1zt5SIC6Kui+q1ViNS/A== +"@sentry/hub@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.16.1.tgz#526e19db51f4412da8634734044c605b936a7b80" + integrity sha512-4PGtg6AfpqMkreTpL7ymDeQ/U1uXv03bKUuFdtsSTn/FRf9TLS4JB0KuTZCxfp1IRgAA+iFg6B784dDkT8R9eg== dependencies: - "@sentry/types" "6.16.0" - "@sentry/utils" "6.16.0" + "@sentry/types" "6.16.1" + "@sentry/utils" "6.16.1" tslib "^1.9.3" -"@sentry/minimal@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.16.0.tgz#0f41337be90470fbdccc390aaac6a22cb250ed7f" - integrity sha512-9/h0J9BDDY5W/dKILGEq3ewECspNoxcXuly/WOWQdt2SQpIcoh8l/dF8iTXle+icndin0EiMEyHOzaCPWG24oQ== +"@sentry/minimal@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.16.1.tgz#6a9506a92623d2ff1fc17d60989688323326772e" + integrity sha512-dq+mI1EQIvUM+zJtGCVgH3/B3Sbx4hKlGf2Usovm9KoqWYA+QpfVBholYDe/H2RXgO7LFEefDLvOdHDkqeJoyA== dependencies: - "@sentry/hub" "6.16.0" - "@sentry/types" "6.16.0" + "@sentry/hub" "6.16.1" + "@sentry/types" "6.16.1" tslib "^1.9.3" -"@sentry/types@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.16.0.tgz#05a8daea73ac9faac8036ae5f84b89f27ffb0ec8" - integrity sha512-ZgIyLYlQS4SPi+d68XD8n9FzoObrNQLWxBuMYMnG3uJSuFeYAJrVYkDRtW4OW0D3awuajYGiHJZC2O5qTRGflA== +"@sentry/types@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.16.1.tgz#4917607115b30315757c2cf84f80bac5100b8ac0" + integrity sha512-Wh354g30UsJ5kYJbercektGX4ZMc9MHU++1NjeN2bTMnbofEcpUDWIiKeulZEY65IC1iU+1zRQQgtYO+/hgCUQ== -"@sentry/utils@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.16.0.tgz#f04f1a46fea95662dbb26dc2cde02962fe18acb9" - integrity sha512-FJl1AyUVAIzxfEXufWsgX7KxIvOrQawxhAhLXO4vU5xrFrJOteicxAIFJO+GG0QDELgr9siP0Qgeb8LoINWcrw== +"@sentry/utils@6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.16.1.tgz#1b9e14c2831b6e8b816f7021b9876133bf2be008" + integrity sha512-7ngq/i4R8JZitJo9Sl8PDnjSbDehOxgr1vsoMmerIsyRZ651C/8B+jVkMhaAPgSdyJ0AlE3O7DKKTP1FXFw9qw== dependencies: - "@sentry/types" "6.16.0" + "@sentry/types" "6.16.1" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1034,9 +1045,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "16.11.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" - integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.2.tgz#a4c07d47ff737e8ee7e586fe636ff0e1ddff070a" + integrity sha512-JepeIUPFDARgIs0zD/SKPgFsJEAF0X5/qO80llx59gOxFTboS9Amv3S+QfB7lqBId5sFXJ99BN0J6zFRvL9dDA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1519,21 +1530,21 @@ bn.js@^5.0.0, bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== +body-parser@1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" + integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== dependencies: - bytes "3.1.0" + bytes "3.1.1" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" - http-errors "1.7.2" + http-errors "1.8.1" iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" + qs "6.9.6" + raw-body "2.4.2" + type-is "~1.6.18" bonjour@^3.5.0: version "3.5.0" @@ -1659,13 +1670,13 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.18.1, browserslist@^4.6.4: - version "4.18.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" - integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.6.4: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== dependencies: - caniuse-lite "^1.0.30001280" - electron-to-chromium "^1.3.896" + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" escalade "^3.1.1" node-releases "^2.0.1" picocolors "^1.0.0" @@ -1704,10 +1715,10 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +bytes@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" + integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== cacache@^12.0.2: version "12.0.4" @@ -1816,10 +1827,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280: - version "1.0.30001286" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz#3e9debad420419618cfdf52dc9b6572b28a8fff6" - integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286: + version "1.0.30001291" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz#08a8d2cfea0b2cf2e1d94dd795942d0daef6108c" + integrity sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2061,12 +2072,12 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: - safe-buffer "5.1.2" + safe-buffer "5.2.1" content-type@~1.0.4: version "1.0.4" @@ -2085,10 +2096,10 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookie@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" + integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== copy-concurrently@^1.0.0: version "1.0.5" @@ -2108,17 +2119,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.19.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.3.tgz#de75e5821c5ce924a0a1e7b7d5c2cb973ff388aa" - integrity sha512-59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA== + version "3.20.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.0.tgz#fd704640c5a213816b6d10ec0192756111e2c9d1" + integrity sha512-relrah5h+sslXssTTOkvqcC/6RURifB0W5yhYBdBkaPYa5/2KBMiog3XiD+s3TwEHWxInWVv4Jx2/Lw0vng+IQ== dependencies: - browserslist "^4.18.1" + browserslist "^4.19.1" semver "7.0.0" core-js@^3.16.2: - version "3.19.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.3.tgz#6df8142a996337503019ff3235a7022d7cdf4559" - integrity sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g== + version "3.20.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.0.tgz#1c5ac07986b8d15473ab192e45a2e115a4a95b79" + integrity sha512-KjbKU7UEfg4YPpskMtMXPhUKn7m/1OdTHTVjy09ScR2LVaoUXe8Jh0UdvN2EKUR6iKTJph52SJP95mAB0MnVLQ== core-util-is@~1.0.0: version "1.0.3" @@ -2500,9 +2511,9 @@ d3-geo@3: d3-array "2.5.0 - 3" d3-hierarchy@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.0.tgz#f7b50df24bdc16ed8f8021e2f944442a0e231fe1" - integrity sha512-RZWnhsvcrf81F+khYxu2IOfoSwfCGla9je0JQaRIEuPOgJd+3cKdvAYyMXvTt0MDbluiHThYBQzIb0xxXfnqmA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz#9cbb0ffd2375137a351e6cfeed344a06d4ff4597" + integrity sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA== "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: version "3.0.1" @@ -2862,10 +2873,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.896: - version "1.4.14" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.14.tgz#b0aa41fbfbf2eff8c2c6f7a871c03075250f8956" - integrity sha512-RsGkAN9JEAYMObS72kzUsPPcPGMqX1rBqGuXi9aa4TBKLzICoLf+DAAtd0fVFzrniJqYzpby47gthCUoObfs0Q== +electron-to-chromium@^1.4.17: + version "1.4.25" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz#ce95e6678f8c6893ae892c7e95a5000e83f1957f" + integrity sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg== elliptic@^6.5.3: version "6.5.4" @@ -3084,16 +3095,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: homedir-polyfill "^1.0.1" express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + version "4.17.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" + integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== dependencies: accepts "~1.3.7" array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" + body-parser "1.19.1" + content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.0" + cookie "0.4.1" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" @@ -3107,13 +3118,13 @@ express@^4.17.1: on-finished "~2.3.0" parseurl "~1.3.3" path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" + proxy-addr "~2.0.7" + qs "6.9.6" range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" statuses "~1.5.0" type-is "~1.6.18" utils-merge "1.0.1" @@ -3620,16 +3631,16 @@ http-deceiver@^1.2.7: resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== dependencies: depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" + inherits "2.0.4" + setprototypeof "1.2.0" statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" + toidentifier "1.0.1" http-errors@~1.6.2: version "1.6.3" @@ -3641,17 +3652,6 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-parser-js@>=0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" @@ -4026,9 +4026,9 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: is-extglob "^2.1.1" is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.6" @@ -4123,11 +4123,11 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: has-symbols "^1.0.2" is-weakref@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" - integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" @@ -4580,9 +4580,9 @@ minipass-pipeline@^1.2.2: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: - version "3.1.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz#71f6251b0a33a49c01b3cf97ff77eda030dff732" - integrity sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw== + version "3.1.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== dependencies: yallist "^4.0.0" @@ -4652,17 +4652,12 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: +ms@2.1.3, ms@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -4822,9 +4817,9 @@ object-copy@^0.1.0: kind-of "^3.0.3" object-inspect@^1.11.0, object-inspect@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" - integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" + integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== object-is@^1.0.1: version "1.1.5" @@ -5869,7 +5864,7 @@ propagating-hammerjs@^1.4.6: dependencies: hammerjs "^2.0.8" -proxy-addr@~2.0.5: +proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== @@ -5939,10 +5934,10 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@6.9.6: + version "6.9.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" + integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== query-string@^4.1.0: version "4.3.4" @@ -5995,13 +5990,13 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== +raw-body@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" + integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== dependencies: - bytes "3.1.0" - http-errors "1.7.2" + bytes "3.1.1" + http-errors "1.8.1" iconv-lite "0.4.24" unpipe "1.0.0" @@ -6246,7 +6241,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -6275,12 +6270,13 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.44.0.tgz#619aa0a2275c097f9af5e6b8fe8a95e3056430fb" - integrity sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw== + version "1.45.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.45.1.tgz#fa03951f924d1ba5762949567eaf660e608a1ab0" + integrity sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" sax@~1.2.4: version "1.2.4" @@ -6348,10 +6344,10 @@ semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== dependencies: debug "2.6.9" depd "~1.1.2" @@ -6360,9 +6356,9 @@ send@0.17.1: escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "~1.7.2" + http-errors "1.8.1" mime "1.6.0" - ms "2.1.1" + ms "2.1.3" on-finished "~2.3.0" range-parser "~1.2.1" statuses "~1.5.0" @@ -6394,15 +6390,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.1" + send "0.17.2" set-blocking@^2.0.0: version "2.0.0" @@ -6429,10 +6425,10 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" @@ -6550,6 +6546,11 @@ source-list-map@^2.0.0: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +"source-map-js@>=0.6.2 <2.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -6940,10 +6941,10 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== ts-pnp@^1.1.6: version "1.2.0" @@ -6960,7 +6961,7 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -type-is@~1.6.17, type-is@~1.6.18: +type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== From 83d6b052c50643d3003a42c628278832c3632063 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Dec 2021 03:01:35 +0000 Subject: [PATCH 52/62] Bump js-routes from 2.1.2 to 2.2.0 Bumps [js-routes](https://github.com/railsware/js-routes) from 2.1.2 to 2.2.0. - [Release notes](https://github.com/railsware/js-routes/releases) - [Changelog](https://github.com/railsware/js-routes/blob/master/CHANGELOG.md) - [Commits](https://github.com/railsware/js-routes/compare/v2.1.2...v2.2.0) --- updated-dependencies: - dependency-name: js-routes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a196a0f3..b3216aef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -224,7 +224,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - js-routes (2.1.2) + js-routes (2.2.0) railties (>= 4) json (2.3.1) json_schemer (0.2.18) From 01e19f40426b105e2efbf9afd5f007bf56a38898 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Dec 2021 03:01:44 +0000 Subject: [PATCH 53/62] Bump prometheus_exporter from 1.0.0 to 1.0.1 Bumps [prometheus_exporter](https://github.com/discourse/prometheus_exporter) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/discourse/prometheus_exporter/releases) - [Changelog](https://github.com/discourse/prometheus_exporter/blob/main/CHANGELOG) - [Commits](https://github.com/discourse/prometheus_exporter/compare/v1.0.0...v1.0.1) --- updated-dependencies: - dependency-name: prometheus_exporter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a196a0f3..c4ae16b3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -305,7 +305,7 @@ GEM ast (~> 2.4.1) path_expander (1.1.0) pg (1.2.3) - prometheus_exporter (1.0.0) + prometheus_exporter (1.0.1) webrick pry (0.13.1) coderay (~> 1.1) From 97e4ecb4d9578ef642465f9e9b3745e7e12b8e5a Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 22 Dec 2021 19:10:59 +0100 Subject: [PATCH 54/62] Increase wait time for validating Docker image --- app/models/execution_environment.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/execution_environment.rb b/app/models/execution_environment.rb index 64167dae..91c62898 100644 --- a/app/models/execution_environment.rb +++ b/app/models/execution_environment.rb @@ -93,9 +93,9 @@ class ExecutionEnvironment < ApplicationRecord rescue Runner::Error => e # In case of an Runner::Error, we retry multiple times before giving up. # The time between each retry increases to allow the runner management to catch up. - if retries < 5 && !Rails.env.test? + if retries < 30 && !Rails.env.test? retries += 1 - sleep retries + sleep 1.second.to_i retry elsif errors.exclude?(:docker_image) errors.add(:docker_image, "error: #{e}") From 83349132e7c5fdf6d0426b1f890601a058517572 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Dec 2021 03:00:56 +0000 Subject: [PATCH 55/62] Bump shoulda-matchers from 5.0.0 to 5.1.0 Bumps [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) from 5.0.0 to 5.1.0. - [Release notes](https://github.com/thoughtbot/shoulda-matchers/releases) - [Changelog](https://github.com/thoughtbot/shoulda-matchers/blob/main/CHANGELOG.md) - [Commits](https://github.com/thoughtbot/shoulda-matchers/compare/v5.0.0...v5.1.0) --- updated-dependencies: - dependency-name: shoulda-matchers dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a672b03c..cb3f74e7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -473,7 +473,7 @@ GEM concurrent-ruby faraday set (1.0.2) - shoulda-matchers (5.0.0) + shoulda-matchers (5.1.0) activesupport (>= 5.2.0) simplecov (0.21.2) docile (~> 1.1) From 028fbb40174e6dcbb31348210fde23927b043af1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Dec 2021 03:01:52 +0000 Subject: [PATCH 56/62] Bump rails-i18n from 6.0.0 to 7.0.1 Bumps [rails-i18n](https://github.com/svenfuchs/rails-i18n) from 6.0.0 to 7.0.1. - [Release notes](https://github.com/svenfuchs/rails-i18n/releases) - [Changelog](https://github.com/svenfuchs/rails-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/svenfuchs/rails-i18n/commits) --- updated-dependencies: - dependency-name: rails-i18n dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cb3f74e7..946098ff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -355,9 +355,9 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) - rails-i18n (6.0.0) + rails-i18n (7.0.1) i18n (>= 0.7, < 2) - railties (>= 6.0.0, < 7) + railties (>= 6.0.0, < 8) rails-timeago (2.19.1) actionpack (>= 3.1) activesupport (>= 3.1) From ea85519163d97c4b9faf563643cfac44dad8a93c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 3 Jan 2022 18:11:17 +0100 Subject: [PATCH 57/62] Update bundle (with newest rubocop version) and fix offenses --- Gemfile.lock | 52 +- app/controllers/concerns/redirect_behavior.rb | 2 +- app/controllers/exercises_controller.rb | 2 +- app/controllers/proxy_exercises_controller.rb | 4 +- app/controllers/study_groups_controller.rb | 2 +- app/controllers/submissions_controller.rb | 4 +- .../user_exercise_feedbacks_controller.rb | 4 +- app/models/code_ocean/file.rb | 1 - app/models/concerns/creation.rb | 3 - app/models/exercise.rb | 4 +- app/models/external_user.rb | 1 - app/models/proxy_exercise.rb | 2 +- app/models/runner.rb | 2 +- app/models/submission.rb | 3 +- app/models/user_exercise_intervention.rb | 4 - app/models/user_proxy_exercise_exercise.rb | 5 - .../convert_task_to_exercise.rb | 4 +- db/migrate/20181129093207_drop_errors.rb | 1 - .../validations/boolean_presence_validator.rb | 2 +- lib/assessor.rb | 2 +- lib/code_ocean/config.rb | 4 +- lib/cpp_catch2_adapter.rb | 2 +- lib/docker_client.rb | 6 +- lib/junit5_adapter.rb | 2 +- lib/junit_adapter.rb | 2 +- lib/py_lint_adapter.rb | 4 +- lib/py_unit_adapter.rb | 2 +- lib/r_script_adapter.rb | 2 +- lib/runner/strategy/docker_container_pool.rb | 2 +- spec/concerns/file_parameters_spec.rb | 18 +- spec/concerns/lti_spec.rb | 20 +- .../admin/dashboard_controller_spec.rb | 2 +- .../application_controller_spec.rb | 4 +- .../code_ocean/files_controller_spec.rb | 10 +- .../codeharbor_links_controller_spec.rb | 8 +- spec/controllers/consumers_controller_spec.rb | 12 +- ...ror_template_attributes_controller_spec.rb | 6 +- .../error_templates_controller_spec.rb | 6 +- spec/controllers/events_controller_spec.rb | 4 +- .../execution_environments_controller_spec.rb | 16 +- spec/controllers/exercises_controller_spec.rb | 44 +- .../external_users_controller_spec.rb | 4 +- .../controllers/file_types_controller_spec.rb | 12 +- .../internal_users_controller_spec.rb | 12 +- .../request_for_comments_controller_spec.rb | 12 +- spec/controllers/sessions_controller_spec.rb | 20 +- .../controllers/statistics_controller_spec.rb | 2 +- .../submissions_controller_spec.rb | 16 +- spec/features/authentication_spec.rb | 4 +- spec/features/authorization_spec.rb | 6 +- spec/features/editor_spec.rb | 8 +- spec/features/prometheus/controller_spec.rb | 18 +- .../request_for_comments_filter_spec.rb | 10 +- spec/helpers/admin/dashboard_helper_spec.rb | 2 +- spec/helpers/exercise_helper_spec.rb | 2 +- spec/lib/assessor_spec.rb | 4 +- spec/lib/docker_client_spec.rb | 10 +- spec/lib/file_tree_spec.rb | 20 +- .../strategy/docker_container_pool_spec.rb | 24 +- spec/lib/runner/strategy/poseidon_spec.rb | 8 +- spec/mailers/user_mailer_spec.rb | 2 +- spec/models/code_ocean/file_spec.rb | 2 +- spec/models/codeharbor_link_spec.rb | 2 +- spec/models/consumer_spec.rb | 2 +- spec/models/execution_environment_spec.rb | 15 +- spec/models/exercise_spec.rb | 25 +- spec/models/external_user_spec.rb | 6 +- spec/models/file_type_spec.rb | 3 +- spec/models/internal_user_spec.rb | 16 +- spec/models/request_for_comment_spec.rb | 4 +- spec/models/runner_spec.rb | 18 +- spec/models/submission_spec.rb | 41 +- spec/policies/admin/dashboard_policy_spec.rb | 6 +- spec/policies/code_ocean/file_policy_spec.rb | 16 +- spec/policies/codeharbor_link_policy_spec.rb | 14 +- spec/policies/consumer_policy_spec.rb | 4 +- .../execution_environment_policy_spec.rb | 20 +- spec/policies/exercise_policy_spec.rb | 38 +- spec/policies/external_user_policy_spec.rb | 10 +- spec/policies/file_type_policy_spec.rb | 6 +- spec/policies/internal_user_policy_spec.rb | 10 +- spec/policies/submission_policy_spec.rb | 12 +- .../exercise_service/check_external_spec.rb | 4 +- .../exercise_service/push_external_spec.rb | 8 +- .../convert_exercise_to_task_spec.rb | 20 +- .../convert_task_to_exercise_spec.rb | 10 +- .../proforma_service/export_task_spec.rb | 4 +- spec/services/proforma_service/import_spec.rb | 26 +- spec/support/factory_bot.rb | 4 + spec/uploaders/file_uploader_spec.rb | 2 +- .../shell.html.slim_spec.rb | 2 +- .../exercises/implement.html.slim_spec.rb | 4 +- yarn.lock | 1123 +++++++++-------- 93 files changed, 968 insertions(+), 985 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 946098ff..d414b084 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,9 +1,9 @@ GIT remote: https://github.com/evolve75/RubyTree.git - revision: eb045068f73529c66d9d84f0553fdf85fc98bc4f + revision: 6081d0959b706dcefb85e85faa329ebb2dabcf9e specs: rubytree (1.0.2) - json (~> 2.3.1) + json (~> 2.6.1) structured_warnings (~> 0.4.0) GIT @@ -151,7 +151,7 @@ GEM database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) debug_inspector (1.1.0) - diff-lcs (1.4.4) + diff-lcs (1.5.0) docile (1.4.0) docker-api (2.2.0) excon (>= 0.47.0) @@ -226,25 +226,25 @@ GEM railties (>= 3.2.16) js-routes (2.2.0) railties (>= 4) - json (2.3.1) + json (2.6.1) json_schemer (0.2.18) ecma-re-validator (~> 0.3) hana (~> 1.3) regexp_parser (~> 2.0) uri_template (~> 0.7) jwt (2.3.0) - kaminari (1.2.1) + kaminari (1.2.2) activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.1) - kaminari-activerecord (= 1.2.1) - kaminari-core (= 1.2.1) - kaminari-actionview (1.2.1) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) actionview - kaminari-core (= 1.2.1) - kaminari-activerecord (1.2.1) + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) activerecord - kaminari-core (= 1.2.1) - kaminari-core (1.2.1) + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) kramdown (2.3.1) rexml listen (3.7.0) @@ -266,7 +266,7 @@ GEM rake mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.5.3) + mini_portile2 (2.6.1) minitest (5.15.0) minitest-autotest (1.1.1) minitest-server (~> 1.0) @@ -286,8 +286,8 @@ GEM netrc (0.11.0) newrelic_rpm (8.2.0) nio4r (2.5.8) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + nokogiri (1.12.5) + mini_portile2 (~> 2.6.1) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) @@ -301,7 +301,7 @@ GEM pagedown-bootstrap-rails (2.1.4) railties (> 3.1) parallel (1.21.0) - parser (3.0.3.2) + parser (3.1.0.0) ast (~> 2.4.1) path_expander (1.1.0) pg (1.2.3) @@ -381,7 +381,7 @@ GEM thor (~> 1.0) rainbow (3.0.0) rake (13.0.6) - ransack (2.4.2) + ransack (2.5.0) activerecord (>= 5.2.4) activesupport (>= 5.2.4) i18n @@ -422,25 +422,25 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.10.3) - rubocop (1.23.0) + rubocop (1.24.1) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.12.0, < 2.0) + rubocop-ast (>= 1.15.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.15.0) + rubocop-ast (1.15.1) parser (>= 3.0.1.1) - rubocop-performance (1.12.0) + rubocop-performance (1.13.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.12.4) + rubocop-rails (2.13.0) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.6.0) + rubocop-rspec (2.7.0) rubocop (~> 1.19) ruby-progressbar (1.11.0) ruby-vips (2.1.4) @@ -544,7 +544,7 @@ GEM will_paginate (3.3.1) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.5.1) + zeitwerk (2.5.3) PLATFORMS ruby @@ -625,4 +625,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.2.32 + 2.3.4 diff --git a/app/controllers/concerns/redirect_behavior.rb b/app/controllers/concerns/redirect_behavior.rb index 5292e0d7..a3d6fd24 100644 --- a/app/controllers/concerns/redirect_behavior.rb +++ b/app/controllers/concerns/redirect_behavior.rb @@ -5,7 +5,7 @@ module RedirectBehavior def redirect_after_submit Rails.logger.debug { "Redirecting user with score:s #{@submission.normalized_score}" } - if @submission.normalized_score.to_d == 1.0.to_d + if @submission.normalized_score.to_d == BigDecimal('1.0') if redirect_to_community_solution? redirect_to_community_solution return diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index a49a5ef0..02c184b4 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -59,7 +59,7 @@ raise: false end def collect_paths(files) - unique_paths = files.map(&:path).reject(&:blank?).uniq + unique_paths = files.map(&:path).compact_blank.uniq subpaths = unique_paths.map do |path| Array.new((path.split('/').length + 1)) do |n| path.split('/').shift(n).join('/') diff --git a/app/controllers/proxy_exercises_controller.rb b/app/controllers/proxy_exercises_controller.rb index 74ff9908..d6f0863a 100644 --- a/app/controllers/proxy_exercises_controller.rb +++ b/app/controllers/proxy_exercises_controller.rb @@ -24,7 +24,7 @@ class ProxyExercisesController < ApplicationController def create myparams = proxy_exercise_params - myparams[:exercises] = Exercise.find(myparams[:exercise_ids].reject(&:empty?)) + myparams[:exercises] = Exercise.find(myparams[:exercise_ids].compact_blank) @proxy_exercise = ProxyExercise.new(myparams) authorize! @@ -78,7 +78,7 @@ class ProxyExercisesController < ApplicationController def update myparams = proxy_exercise_params - myparams[:exercises] = Exercise.find(myparams[:exercise_ids].reject(&:blank?)) + myparams[:exercises] = Exercise.find(myparams[:exercise_ids].compact_blank) update_and_respond(object: @proxy_exercise, params: myparams) end end diff --git a/app/controllers/study_groups_controller.rb b/app/controllers/study_groups_controller.rb index 1bd3a4fa..87b8f8ea 100644 --- a/app/controllers/study_groups_controller.rb +++ b/app/controllers/study_groups_controller.rb @@ -23,7 +23,7 @@ class StudyGroupsController < ApplicationController def update myparams = study_group_params myparams[:external_users] = - StudyGroupMembership.find(myparams[:study_group_membership_ids].reject(&:empty?)).map(&:user) + StudyGroupMembership.find(myparams[:study_group_membership_ids].compact_blank).map(&:user) myparams.delete(:study_group_membership_ids) update_and_respond(object: @study_group, params: myparams) end diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 5188320e..de9cf368 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -244,9 +244,7 @@ class SubmissionsController < ApplicationController @submission.files.each do |file| content += "#{file.filepath}=#{file.file_id}\n" end - File.open(path, 'w+') do |f| - f.write(content) - end + File.write(path, content) path end diff --git a/app/controllers/user_exercise_feedbacks_controller.rb b/app/controllers/user_exercise_feedbacks_controller.rb index bde9bd43..e07b9c4a 100644 --- a/app/controllers/user_exercise_feedbacks_controller.rb +++ b/app/controllers/user_exercise_feedbacks_controller.rb @@ -39,7 +39,7 @@ class UserExerciseFeedbacksController < ApplicationController authorize! if validate_inputs(uef_params) path = - if rfc && submission && submission.normalized_score.to_d == 1.0.to_d + if rfc && submission && submission.normalized_score.to_d == BigDecimal('1.0') request_for_comment_path(rfc) else implement_exercise_path(@exercise) @@ -82,7 +82,7 @@ class UserExerciseFeedbacksController < ApplicationController authorize! if @exercise && validate_inputs(uef_params) path = - if rfc && submission && submission.normalized_score.to_d == 1.0.to_d + if rfc && submission && submission.normalized_score.to_d == BigDecimal('1.0') request_for_comment_path(rfc) else implement_exercise_path(@exercise) diff --git a/app/models/code_ocean/file.rb b/app/models/code_ocean/file.rb index 7a97427d..152286dd 100644 --- a/app/models/code_ocean/file.rb +++ b/app/models/code_ocean/file.rb @@ -41,7 +41,6 @@ module CodeOcean validates :feedback_message, if: :teacher_defined_assessment?, presence: true validates :feedback_message, absence: true, unless: :teacher_defined_assessment? - validates :file_type_id, presence: true validates :hashed_content, if: :content_present?, presence: true validates :hidden, boolean_presence: true validates :name, presence: true diff --git a/app/models/concerns/creation.rb b/app/models/concerns/creation.rb index ec16164f..926245bc 100644 --- a/app/models/concerns/creation.rb +++ b/app/models/concerns/creation.rb @@ -7,8 +7,5 @@ module Creation belongs_to :user, polymorphic: true alias_method :author, :user alias_method :creator, :user - - validates :user_id, presence: true - validates :user_type, presence: true end end diff --git a/app/models/exercise.rb b/app/models/exercise.rb index 9aae3476..5f9a927a 100644 --- a/app/models/exercise.rb +++ b/app/models/exercise.rb @@ -49,7 +49,7 @@ class Exercise < ApplicationRecord MAX_GROUP_EXERCISE_FEEDBACKS = 20 def average_percentage - if average_score && (maximum_score.to_d != 0.0.to_d) && submissions.exists?(cause: 'submit') + if average_score && (maximum_score.to_d != BigDecimal('0.0')) && submissions.exists?(cause: 'submit') (average_score / maximum_score * 100).round(2) else 0 @@ -580,7 +580,7 @@ cause: %w[submit assess remoteSubmit remoteAssess]}).distinct private :valid_submission_deadlines? def needs_more_feedback?(submission) - if submission.normalized_score.to_d == 1.0.to_d + if submission.normalized_score.to_d == BigDecimal('1.0') user_exercise_feedbacks.final.size <= MAX_GROUP_EXERCISE_FEEDBACKS else user_exercise_feedbacks.intermediate.size <= MAX_GROUP_EXERCISE_FEEDBACKS diff --git a/app/models/external_user.rb b/app/models/external_user.rb index 9081f850..25df7be7 100644 --- a/app/models/external_user.rb +++ b/app/models/external_user.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class ExternalUser < User - validates :consumer_id, presence: true validates :external_id, presence: true def displayname diff --git a/app/models/proxy_exercise.rb b/app/models/proxy_exercise.rb index 6ef8cf7b..497a2d70 100644 --- a/app/models/proxy_exercise.rb +++ b/app/models/proxy_exercise.rb @@ -175,7 +175,7 @@ class ProxyExercise < ApplicationRecord return 0.0 end points_ratio = exercise.maximum_score(user) / max_score - if points_ratio.to_d == 0.0.to_d + if points_ratio.to_d == BigDecimal('0.0') Rails.logger.debug { "scoring user #{user.id} for exercise #{exercise.id}: points_ratio=#{points_ratio} score: 0" } return 0.0 elsif points_ratio > 1.0 diff --git a/app/models/runner.rb b/app/models/runner.rb index 63f080f1..67edef2e 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -6,7 +6,7 @@ class Runner < ApplicationRecord before_validation :request_id - validates :execution_environment, :user, :runner_id, presence: true + validates :runner_id, presence: true attr_accessor :strategy diff --git a/app/models/submission.rb b/app/models/submission.rb index 5acf4f34..6b8a4fd8 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -45,7 +45,6 @@ class Submission < ApplicationRecord scope :in_study_group_of, ->(user) { where(study_group_id: user.study_groups) unless user.admin? } validates :cause, inclusion: {in: CAUSES} - validates :exercise_id, presence: true # after_save :trigger_working_times_action_cable @@ -293,7 +292,7 @@ class Submission < ApplicationRecord end # Prevent floating point precision issues by converting to BigDecimal, e.g., for `0.28 * 25` update(score: score.to_d) - if normalized_score.to_d == 1.0.to_d + if normalized_score.to_d == BigDecimal('1.0') Thread.new do RequestForComment.where(exercise_id: exercise_id, user_id: user_id, user_type: user_type).find_each do |rfc| rfc.full_score_reached = true diff --git a/app/models/user_exercise_intervention.rb b/app/models/user_exercise_intervention.rb index e246ae80..ff5e7749 100644 --- a/app/models/user_exercise_intervention.rb +++ b/app/models/user_exercise_intervention.rb @@ -4,8 +4,4 @@ class UserExerciseIntervention < ApplicationRecord belongs_to :user, polymorphic: true belongs_to :intervention belongs_to :exercise - - validates :user, presence: true - validates :exercise, presence: true - validates :intervention, presence: true end diff --git a/app/models/user_proxy_exercise_exercise.rb b/app/models/user_proxy_exercise_exercise.rb index 971d7e72..05a57c24 100644 --- a/app/models/user_proxy_exercise_exercise.rb +++ b/app/models/user_proxy_exercise_exercise.rb @@ -5,10 +5,5 @@ class UserProxyExerciseExercise < ApplicationRecord belongs_to :exercise belongs_to :proxy_exercise - validates :user_id, presence: true - validates :user_type, presence: true - validates :exercise_id, presence: true - validates :proxy_exercise_id, presence: true - validates :user_id, uniqueness: {scope: %i[proxy_exercise_id user_type]} end diff --git a/app/services/proforma_service/convert_task_to_exercise.rb b/app/services/proforma_service/convert_task_to_exercise.rb index 8a13f835..a147c7cd 100644 --- a/app/services/proforma_service/convert_task_to_exercise.rb +++ b/app/services/proforma_service/convert_task_to_exercise.rb @@ -40,9 +40,9 @@ module ProformaService end def task_files - @task_files ||= @task.all_files.reject {|file| file.id == 'ms-placeholder-file' }.map do |task_file| + @task_files ||= @task.all_files.reject {|file| file.id == 'ms-placeholder-file' }.to_h do |task_file| [task_file.id, codeocean_file_from_task_file(task_file)] - end.to_h + end end def codeocean_file_from_task_file(file) diff --git a/db/migrate/20181129093207_drop_errors.rb b/db/migrate/20181129093207_drop_errors.rb index 59418c38..90973d62 100644 --- a/db/migrate/20181129093207_drop_errors.rb +++ b/db/migrate/20181129093207_drop_errors.rb @@ -9,7 +9,6 @@ class DropErrors < ActiveRecord::Migration[5.2] scope :for_execution_environment, ->(execution_environment) { where(execution_environment_id: execution_environment.id) } scope :grouped_by_message, -> { select('MAX(created_at) AS created_at, MAX(id) AS id, message, COUNT(id) AS count').group(:message).order('count DESC') } - validates :execution_environment_id, presence: true validates :message, presence: true def self.nested_resource? diff --git a/lib/active_model/validations/boolean_presence_validator.rb b/lib/active_model/validations/boolean_presence_validator.rb index fa959e6e..7a2e606f 100644 --- a/lib/active_model/validations/boolean_presence_validator.rb +++ b/lib/active_model/validations/boolean_presence_validator.rb @@ -8,7 +8,7 @@ module ActiveModel def validate(record) [attributes].flatten.each do |attribute| value = record.send(:read_attribute_for_validation, attribute) - record.errors.add(attribute, nil, options) unless BOOLEAN_VALUES.include?(value) + record.errors.add(attribute, nil, **options) unless BOOLEAN_VALUES.include?(value) end end end diff --git a/lib/assessor.rb b/lib/assessor.rb index 7d4bf600..b7f68e16 100644 --- a/lib/assessor.rb +++ b/lib/assessor.rb @@ -12,7 +12,7 @@ class Assessor def calculate_score(test_outcome) score = 0.0 - if test_outcome[:passed].to_d != 0.0.to_d && test_outcome[:count].to_d != 0.0.to_d + if test_outcome[:passed].to_d != BigDecimal('0.0') && test_outcome[:count].to_d != BigDecimal('0.0') score = (test_outcome[:passed].to_f / test_outcome[:count]) # prevent negative scores score = [0.0, score].max diff --git a/lib/code_ocean/config.rb b/lib/code_ocean/config.rb index e8623254..c8055a54 100644 --- a/lib/code_ocean/config.rb +++ b/lib/code_ocean/config.rb @@ -9,7 +9,9 @@ module CodeOcean def read(options = {}) path = Rails.root.join('config', "#{@filename}.yml#{options[:erb] ? '.erb' : ''}") if ::File.exist?(path) - content = options[:erb] ? YAML.safe_load(ERB.new(::File.new(path, 'r').read).result, aliases: true, permitted_classes: [Range]) : YAML.load_file(path) + yaml_content = ::File.new(path, 'r').read || '' + yaml_content = ERB.new(yaml_content).result if options[:erb] + content = YAML.safe_load(yaml_content, aliases: true, permitted_classes: [Range, Symbol]) content[Rails.env].with_indifferent_access else raise Error.new("Configuration file not found: #{path}") diff --git a/lib/cpp_catch2_adapter.rb b/lib/cpp_catch2_adapter.rb index 02dc9ea0..232ca7d7 100644 --- a/lib/cpp_catch2_adapter.rb +++ b/lib/cpp_catch2_adapter.rb @@ -17,7 +17,7 @@ class CppCatch2Adapter < TestingFrameworkAdapter count = output[:stdout].scan(COUNT_REGEXP).try(:last).try(:first).try(:to_i) || 0 failed = output[:stdout].scan(FAILURES_REGEXP).try(:last).try(:first).try(:to_i) || 0 error_matches = output[:stdout].scan(ASSERTION_ERROR_REGEXP) || [] - {count: count, failed: failed, error_messages: error_matches.flatten.reject(&:blank?)} + {count: count, failed: failed, error_messages: error_matches.flatten.compact_blank} end end end diff --git a/lib/docker_client.rb b/lib/docker_client.rb index af8667f3..8355e03e 100644 --- a/lib/docker_client.rb +++ b/lib/docker_client.rb @@ -315,7 +315,7 @@ container_execution_time: nil} @tubesock&.send_data JSON.dump({'cmd' => 'timeout'}) if @socket begin - @socket.send('#timeout') + @socket.send('#timeout') # rubocop:disable Performance/StringIdentifierArgument # sleep one more second to ensure that the message reaches the submissions_controller. sleep(1) @socket.close @@ -434,9 +434,9 @@ container_execution_time: nil} end def self.mapped_ports(execution_environment) - execution_environment.exposed_ports.map do |port| + execution_environment.exposed_ports.to_h do |port| ["#{port}/tcp", [{'HostPort' => PortPool.available_port.to_s}]] - end.to_h + end end def self.pull(docker_image) diff --git a/lib/junit5_adapter.rb b/lib/junit5_adapter.rb index d482a867..0d615ae6 100644 --- a/lib/junit5_adapter.rb +++ b/lib/junit5_adapter.rb @@ -16,7 +16,7 @@ class Junit5Adapter < TestingFrameworkAdapter {count: count, passed: count} else error_matches = output[:stdout].scan(ASSERTION_ERROR_REGEXP) || [] - {count: count, failed: failed, error_messages: error_matches.flatten.reject(&:blank?)} + {count: count, failed: failed, error_messages: error_matches.flatten.compact_blank} end end end diff --git a/lib/junit_adapter.rb b/lib/junit_adapter.rb index 705f85b2..0ca905ae 100644 --- a/lib/junit_adapter.rb +++ b/lib/junit_adapter.rb @@ -17,7 +17,7 @@ class JunitAdapter < TestingFrameworkAdapter count = output[:stdout].scan(COUNT_REGEXP).try(:last).try(:first).try(:to_i) || 0 failed = output[:stdout].scan(FAILURES_REGEXP).try(:last).try(:first).try(:to_i) || 0 error_matches = output[:stdout].scan(ASSERTION_ERROR_REGEXP) || [] - {count: count, failed: failed, error_messages: error_matches.flatten.reject(&:blank?)} + {count: count, failed: failed, error_messages: error_matches.flatten.compact_blank} end end end diff --git a/lib/py_lint_adapter.rb b/lib/py_lint_adapter.rb index b9dc9235..ed62676b 100644 --- a/lib/py_lint_adapter.rb +++ b/lib/py_lint_adapter.rb @@ -43,8 +43,8 @@ class PyLintAdapter < TestingFrameworkAdapter { count: count, failed: failed, - error_messages: concatenated_errors.flatten.reject(&:blank?), - detailed_linter_results: assertion_error_matches.flatten.reject(&:blank?), + error_messages: concatenated_errors.flatten.compact_blank, + detailed_linter_results: assertion_error_matches.flatten.compact_blank, } end diff --git a/lib/py_unit_adapter.rb b/lib/py_unit_adapter.rb index 70217caa..fbb79f59 100644 --- a/lib/py_unit_adapter.rb +++ b/lib/py_unit_adapter.rb @@ -32,6 +32,6 @@ class PyUnitAdapter < TestingFrameworkAdapter 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.flatten.reject(&:blank?)} + {count: count, failed: failed + errors, error_messages: assertion_error_matches.flatten.compact_blank} end end diff --git a/lib/r_script_adapter.rb b/lib/r_script_adapter.rb index 6fdb04c6..773ae1be 100644 --- a/lib/r_script_adapter.rb +++ b/lib/r_script_adapter.rb @@ -14,6 +14,6 @@ class RScriptAdapter < TestingFrameworkAdapter passed = captures.second failed = count - passed assertion_error_matches = output[:stdout].scan(ASSERTION_ERROR_REGEXP) || [] - {count: count, failed: failed, error_messages: assertion_error_matches.flatten.reject(&:blank?)} + {count: count, failed: failed, error_messages: assertion_error_matches.flatten.compact_blank} end end diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index 526a7c76..dca17ad8 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -97,7 +97,7 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy FileUtils.cp(file.native_file.path, local_file_path) else begin - File.open(local_file_path, 'w') {|f| f.write(file.content) } + File.write(local_file_path, file.content) rescue IOError => e raise Runner::Error::WorkspaceError.new("Could not create file #{file.filepath}: #{e.inspect}") end diff --git a/spec/concerns/file_parameters_spec.rb b/spec/concerns/file_parameters_spec.rb index 65e209a2..8d00ca4c 100644 --- a/spec/concerns/file_parameters_spec.rb +++ b/spec/concerns/file_parameters_spec.rb @@ -8,11 +8,11 @@ end describe FileParameters do let(:controller) { Controller.new } - let(:hello_world) { FactoryBot.create(:hello_world) } + let(:hello_world) { create(:hello_world) } describe '#reject_illegal_file_attributes!' do def file_accepted?(file) - files = [[0, FactoryBot.attributes_for(:file, context: hello_world, file_id: file.id)]] + files = [[0, attributes_for(:file, context: hello_world, file_id: file.id)]] filtered_files = controller.send(:reject_illegal_file_attributes, hello_world, files) files.eql?(filtered_files) end @@ -24,31 +24,31 @@ describe FileParameters do end it 'new file' do - submission = FactoryBot.create(:submission, exercise: hello_world, id: 1337) - new_file = FactoryBot.create(:file, context: submission) + submission = create(:submission, exercise: hello_world, id: 1337) + new_file = create(:file, context: submission) expect(file_accepted?(new_file)).to be true end end describe 'rejects' do it 'file of different exercise' do - fibonacci = FactoryBot.create(:fibonacci, allow_file_creation: true) - other_exercises_file = FactoryBot.create(:file, context: fibonacci) + fibonacci = create(:fibonacci, allow_file_creation: true) + other_exercises_file = create(:file, context: fibonacci) expect(file_accepted?(other_exercises_file)).to be false end it 'hidden file' do - hidden_file = FactoryBot.create(:file, context: hello_world, hidden: true) + hidden_file = create(:file, context: hello_world, hidden: true) expect(file_accepted?(hidden_file)).to be false end it 'read only file' do - read_only_file = FactoryBot.create(:file, context: hello_world, read_only: true) + read_only_file = create(:file, context: hello_world, read_only: true) expect(file_accepted?(read_only_file)).to be false end it 'non existent file' do - non_existent_file = FactoryBot.build(:file, context: hello_world, id: 42) + non_existent_file = build(:file, context: hello_world, id: 42) expect(file_accepted?(non_existent_file)).to be false end end diff --git a/spec/concerns/lti_spec.rb b/spec/concerns/lti_spec.rb index 71ac0bd9..9423a951 100644 --- a/spec/concerns/lti_spec.rb +++ b/spec/concerns/lti_spec.rb @@ -13,7 +13,7 @@ describe Lti do describe '#build_tool_provider' do it 'instantiates a tool provider' do expect(IMS::LTI::ToolProvider).to receive(:new) - controller.send(:build_tool_provider, consumer: FactoryBot.build(:consumer), parameters: {}) + controller.send(:build_tool_provider, consumer: build(:consumer), parameters: {}) end end @@ -101,12 +101,12 @@ describe Lti do end describe '#send_score' do - let(:consumer) { FactoryBot.create(:consumer) } + let(:consumer) { create(:consumer) } let(:score) { 0.5 } - let(:submission) { FactoryBot.create(:submission) } + let(:submission) { create(:submission) } before do - FactoryBot.create(:lti_parameter, consumers_id: consumer.id, external_users_id: submission.user_id, exercises_id: submission.exercise_id) + create(:lti_parameter, consumers_id: consumer.id, external_users_id: submission.user_id, exercises_id: submission.exercise_id) end context 'with an invalid score' do @@ -168,18 +168,18 @@ describe Lti do let(:parameters) { ActionController::Parameters.new({}) } it 'stores data in the session' do - controller.instance_variable_set(:@current_user, FactoryBot.create(:external_user)) - controller.instance_variable_set(:@exercise, FactoryBot.create(:fibonacci)) + controller.instance_variable_set(:@current_user, create(:external_user)) + controller.instance_variable_set(:@exercise, create(:fibonacci)) expect(controller.session).to receive(:[]=).with(:external_user_id, anything) expect(controller.session).to receive(:[]=).with(:lti_parameters_id, anything) - controller.send(:store_lti_session_data, consumer: FactoryBot.build(:consumer), parameters: parameters) + controller.send(:store_lti_session_data, consumer: build(:consumer), parameters: parameters) end it 'creates an LtiParameter Object' do before_count = LtiParameter.count - controller.instance_variable_set(:@current_user, FactoryBot.create(:external_user)) - controller.instance_variable_set(:@exercise, FactoryBot.create(:fibonacci)) - controller.send(:store_lti_session_data, consumer: FactoryBot.build(:consumer), parameters: parameters) + controller.instance_variable_set(:@current_user, create(:external_user)) + controller.instance_variable_set(:@exercise, create(:fibonacci)) + controller.send(:store_lti_session_data, consumer: build(:consumer), parameters: parameters) expect(LtiParameter.count).to eq(before_count + 1) end end diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb index 55d4ede5..21db904e 100644 --- a/spec/controllers/admin/dashboard_controller_spec.rb +++ b/spec/controllers/admin/dashboard_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe Admin::DashboardController do - before { allow(controller).to receive(:current_user).and_return(FactoryBot.build(:admin)) } + before { allow(controller).to receive(:current_user).and_return(build(:admin)) } describe 'GET #show' do describe 'with format HTML' do diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 89d77833..307c6498 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -5,7 +5,7 @@ require 'rails_helper' describe ApplicationController do describe '#current_user' do context 'with an external user' do - let(:external_user) { FactoryBot.create(:external_user) } + let(:external_user) { create(:external_user) } before { session[:external_user_id] = external_user.id } @@ -15,7 +15,7 @@ describe ApplicationController do end context 'without an external user' do - let(:internal_user) { FactoryBot.create(:teacher) } + let(:internal_user) { create(:teacher) } before { login_user(internal_user) } diff --git a/spec/controllers/code_ocean/files_controller_spec.rb b/spec/controllers/code_ocean/files_controller_spec.rb index 8097cd70..759ab849 100644 --- a/spec/controllers/code_ocean/files_controller_spec.rb +++ b/spec/controllers/code_ocean/files_controller_spec.rb @@ -3,15 +3,15 @@ require 'rails_helper' describe CodeOcean::FilesController do - let(:user) { FactoryBot.create(:admin) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do - let(:submission) { FactoryBot.create(:submission, user: user) } + let(:submission) { create(:submission, user: user) } context 'with a valid file' do - let(:perform_request) { proc { post :create, params: {code_ocean_file: FactoryBot.build(:file, context: submission).attributes, format: :json} } } + let(:perform_request) { proc { post :create, params: {code_ocean_file: build(:file, context: submission).attributes, format: :json} } } before do submission.exercise.update(allow_file_creation: true) @@ -41,7 +41,7 @@ describe CodeOcean::FilesController do end describe 'DELETE #destroy' do - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:exercise) { create(:fibonacci) } let(:perform_request) { proc { delete :destroy, params: {id: exercise.files.first.id} } } before { perform_request.call } @@ -49,7 +49,7 @@ describe CodeOcean::FilesController do expect_assigns(file: CodeOcean::File) it 'destroys the file' do - FactoryBot.create(:fibonacci) + create(:fibonacci) expect { perform_request.call }.to change(CodeOcean::File, :count).by(-1) end diff --git a/spec/controllers/codeharbor_links_controller_spec.rb b/spec/controllers/codeharbor_links_controller_spec.rb index 4b073fe7..092e9f38 100644 --- a/spec/controllers/codeharbor_links_controller_spec.rb +++ b/spec/controllers/codeharbor_links_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe CodeharborLinksController do - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } let(:codeocean_config) { instance_double(CodeOcean::Config) } let(:codeharbor_config) { {codeharbor: {enabled: true, url: 'http://test.url'}} } @@ -23,7 +23,7 @@ describe CodeharborLinksController do end describe 'GET #edit' do - let(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } + let(:codeharbor_link) { create(:codeharbor_link, user: user) } before { get :edit, params: {id: codeharbor_link.id} } @@ -57,7 +57,7 @@ describe CodeharborLinksController do end describe 'PUT #update' do - let(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } + let(:codeharbor_link) { create(:codeharbor_link, user: user) } let(:put_request) { patch :update, params: {id: codeharbor_link.id, codeharbor_link: params} } let(:params) { {push_url: 'http://foo.bar/push', check_uuid_url: 'http://foo.bar/check', api_key: 'api_key'} } @@ -92,7 +92,7 @@ describe CodeharborLinksController do end describe 'DELETE #destroy' do - let!(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } + let!(:codeharbor_link) { create(:codeharbor_link, user: user) } let(:destroy_request) { delete :destroy, params: {id: codeharbor_link.id} } it 'deletes codeharbor_link' do diff --git a/spec/controllers/consumers_controller_spec.rb b/spec/controllers/consumers_controller_spec.rb index 6868ba96..b5e5a1a8 100644 --- a/spec/controllers/consumers_controller_spec.rb +++ b/spec/controllers/consumers_controller_spec.rb @@ -3,14 +3,14 @@ require 'rails_helper' describe ConsumersController do - let(:consumer) { FactoryBot.create(:consumer) } - let(:user) { FactoryBot.create(:admin) } + let(:consumer) { create(:consumer) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do context 'with a valid consumer' do - let(:perform_request) { proc { post :create, params: {consumer: FactoryBot.attributes_for(:consumer)} } } + let(:perform_request) { proc { post :create, params: {consumer: attributes_for(:consumer)} } } before { perform_request.call } @@ -38,7 +38,7 @@ describe ConsumersController do expect_assigns(consumer: Consumer) it 'destroys the consumer' do - consumer = FactoryBot.create(:consumer) + consumer = create(:consumer) expect { delete :destroy, params: {id: consumer.id} }.to change(Consumer, :count).by(-1) end @@ -55,7 +55,7 @@ describe ConsumersController do describe 'GET #index' do before do - FactoryBot.create_pair(:consumer) + create_pair(:consumer) get :index end @@ -82,7 +82,7 @@ describe ConsumersController do describe 'PUT #update' do context 'with a valid consumer' do - before { put :update, params: {consumer: FactoryBot.attributes_for(:consumer), id: consumer.id} } + before { put :update, params: {consumer: attributes_for(:consumer), id: consumer.id} } expect_assigns(consumer: Consumer) expect_redirect(:consumer) diff --git a/spec/controllers/error_template_attributes_controller_spec.rb b/spec/controllers/error_template_attributes_controller_spec.rb index a80ee6a2..521052df 100644 --- a/spec/controllers/error_template_attributes_controller_spec.rb +++ b/spec/controllers/error_template_attributes_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe ErrorTemplateAttributesController do - let!(:error_template_attribute) { FactoryBot.create(:error_template_attribute) } - let(:user) { FactoryBot.create(:admin) } + let!(:error_template_attribute) { create(:error_template_attribute) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } @@ -35,7 +35,7 @@ describe ErrorTemplateAttributesController do end it 'updates error_template_attribute' do - patch :update, params: {id: error_template_attribute, error_template_attribute: FactoryBot.attributes_for(:error_template_attribute)} + patch :update, params: {id: error_template_attribute, error_template_attribute: attributes_for(:error_template_attribute)} expect(response).to redirect_to(error_template_attribute_path(assigns(:error_template_attribute))) end diff --git a/spec/controllers/error_templates_controller_spec.rb b/spec/controllers/error_templates_controller_spec.rb index 4f7dfbaa..5a79cddf 100644 --- a/spec/controllers/error_templates_controller_spec.rb +++ b/spec/controllers/error_templates_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe ErrorTemplatesController do - let!(:error_template) { FactoryBot.create(:error_template) } - let(:user) { FactoryBot.create(:admin) } + let!(:error_template) { create(:error_template) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } @@ -35,7 +35,7 @@ describe ErrorTemplatesController do end it 'updates error_template' do - patch :update, params: {id: error_template, error_template: FactoryBot.attributes_for(:error_template)} + patch :update, params: {id: error_template, error_template: attributes_for(:error_template)} expect(response).to redirect_to(error_template_path(assigns(:error_template))) end diff --git a/spec/controllers/events_controller_spec.rb b/spec/controllers/events_controller_spec.rb index e59922cd..f9baf1c8 100644 --- a/spec/controllers/events_controller_spec.rb +++ b/spec/controllers/events_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe EventsController do - let(:user) { FactoryBot.create(:admin) } - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:user) { create(:admin) } + let(:exercise) { create(:fibonacci) } before { allow(controller).to receive(:current_user).and_return(user) } diff --git a/spec/controllers/execution_environments_controller_spec.rb b/spec/controllers/execution_environments_controller_spec.rb index 32acd572..9f34792c 100644 --- a/spec/controllers/execution_environments_controller_spec.rb +++ b/spec/controllers/execution_environments_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe ExecutionEnvironmentsController do - let(:execution_environment) { FactoryBot.create(:ruby) } - let(:user) { FactoryBot.create(:admin) } + let(:execution_environment) { create(:ruby) } + let(:user) { create(:admin) } before do allow(controller).to receive(:current_user).and_return(user) @@ -13,7 +13,7 @@ describe ExecutionEnvironmentsController do describe 'POST #create' do context 'with a valid execution environment' do - let(:perform_request) { proc { post :create, params: {execution_environment: FactoryBot.build(:ruby, pool_size: 1).attributes} } } + let(:perform_request) { proc { post :create, params: {execution_environment: build(:ruby, pool_size: 1).attributes} } } before do allow(Rails.env).to receive(:test?).and_return(false, true) @@ -64,7 +64,7 @@ describe ExecutionEnvironmentsController do expect_assigns(execution_environment: :execution_environment) it 'destroys the execution environment' do - execution_environment = FactoryBot.create(:ruby) + execution_environment = create(:ruby) expect { delete :destroy, params: {id: execution_environment.id} }.to change(ExecutionEnvironment, :count).by(-1) end @@ -103,7 +103,7 @@ describe ExecutionEnvironmentsController do describe 'GET #index' do before do - FactoryBot.create_pair(:ruby) + create_pair(:ruby) get :index end @@ -186,7 +186,7 @@ describe ExecutionEnvironmentsController do runner = instance_double 'runner' allow(Runner).to receive(:for).and_return(runner) allow(runner).to receive(:execute_command).and_return({}) - put :update, params: {execution_environment: FactoryBot.attributes_for(:ruby, pool_size: 1), id: execution_environment.id} + put :update, params: {execution_environment: attributes_for(:ruby, pool_size: 1), id: execution_environment.id} end expect_assigns(docker_images: Array) @@ -216,8 +216,8 @@ describe ExecutionEnvironmentsController do end describe '#sync_all_to_runner_management' do - let(:execution_environments) { %i[ruby java python].map {|environment| FactoryBot.create(environment) } } - let(:outdated_execution_environments) { %i[node_js html].map {|environment| FactoryBot.build_stubbed(environment) } } + let(:execution_environments) { %i[ruby java python].map {|environment| create(environment) } } + let(:outdated_execution_environments) { %i[node_js html].map {|environment| build_stubbed(environment) } } let(:codeocean_config) { instance_double(CodeOcean::Config) } let(:runner_management_config) { {runner_management: {enabled: true, strategy: :poseidon}} } diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index 683f0d40..caf76a98 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe ExercisesController do - let(:exercise) { FactoryBot.create(:dummy) } - let(:user) { FactoryBot.create(:admin) } + let(:exercise) { create(:dummy) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } @@ -56,7 +56,7 @@ describe ExercisesController do end describe 'POST #create' do - let(:exercise_attributes) { FactoryBot.build(:dummy).attributes } + let(:exercise_attributes) { build(:dummy).attributes } context 'with a valid exercise' do let(:perform_request) { proc { post :create, params: {exercise: exercise_attributes} } } @@ -76,7 +76,7 @@ describe ExercisesController do let(:perform_request) { proc { post :create, params: {exercise: exercise_attributes.merge(files_attributes: files_attributes)} } } context 'when specifying the file content within the form' do - let(:files_attributes) { {'0' => FactoryBot.build(:file).attributes} } + let(:files_attributes) { {'0' => build(:file).attributes} } it 'creates the file' do expect { perform_request.call }.to change(CodeOcean::File, :count) @@ -84,11 +84,11 @@ describe ExercisesController do end context 'when uploading a file' do - let(:files_attributes) { {'0' => FactoryBot.build(:file, file_type: file_type).attributes.merge(content: uploaded_file)} } + let(:files_attributes) { {'0' => build(:file, file_type: file_type).attributes.merge(content: uploaded_file)} } context 'when uploading a binary file' do let(:file_path) { Rails.root.join('db/seeds/audio_video/devstories.mp4') } - let(:file_type) { FactoryBot.create(:dot_mp4) } + let(:file_type) { create(:dot_mp4) } let(:uploaded_file) { Rack::Test::UploadedFile.new(file_path, 'video/mp4', true) } it 'creates the file' do @@ -103,7 +103,7 @@ describe ExercisesController do context 'when uploading a non-binary file' do let(:file_path) { Rails.root.join('db/seeds/fibonacci/exercise.rb') } - let(:file_type) { FactoryBot.create(:dot_rb) } + let(:file_type) { create(:dot_rb) } let(:uploaded_file) { Rack::Test::UploadedFile.new(file_path, 'text/x-ruby', false) } it 'creates the file' do @@ -133,7 +133,7 @@ describe ExercisesController do expect_assigns(exercise: :exercise) it 'destroys the exercise' do - exercise = FactoryBot.create(:dummy) + exercise = create(:dummy) expect { delete :destroy, params: {id: exercise.id} }.to change(Exercise, :count).by(-1) end @@ -152,14 +152,14 @@ describe ExercisesController do let(:perform_request) { proc { get :implement, params: {id: exercise.id} } } context 'with an exercise with visible files' do - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:exercise) { create(:fibonacci) } before { perform_request.call } expect_assigns(exercise: :exercise) context 'with an existing submission' do - let!(:submission) { FactoryBot.create(:submission, exercise_id: exercise.id, user_id: user.id, user_type: user.class.name) } + let!(:submission) { create(:submission, exercise_id: exercise.id, user_id: user.id, user_type: user.class.name) } it "populates the editors with the submission's files' content" do perform_request.call @@ -190,7 +190,7 @@ describe ExercisesController do let(:scope) { Pundit.policy_scope!(user, Exercise) } before do - FactoryBot.create_pair(:dummy) + create_pair(:dummy) get :index end @@ -239,7 +239,7 @@ describe ExercisesController do describe 'POST #submit' do let(:output) { {} } let(:perform_request) { post :submit, format: :json, params: {id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id}} } - let(:user) { FactoryBot.create(:external_user) } + let(:user) { create(:external_user) } let(:scoring_response) do [{ status: :ok, @@ -260,8 +260,8 @@ describe ExercisesController do end before do - FactoryBot.create(:lti_parameter, external_user: user, exercise: exercise) - submission = FactoryBot.build(:submission, exercise: exercise, user: user) + create(:lti_parameter, external_user: user, exercise: exercise) + submission = build(:submission, exercise: exercise, user: user) allow(submission).to receive(:normalized_score).and_return(1) allow(submission).to receive(:calculate_score).and_return(scoring_response) allow(Submission).to receive(:create).and_return(submission) @@ -328,7 +328,7 @@ describe ExercisesController do describe 'PUT #update' do context 'with a valid exercise' do - let(:exercise_attributes) { FactoryBot.build(:dummy).attributes } + let(:exercise_attributes) { build(:dummy).attributes } before { put :update, params: {exercise: exercise_attributes, id: exercise.id} } @@ -352,7 +352,7 @@ describe ExercisesController do render_views let(:post_request) { post :export_external_check, params: {id: exercise.id} } - let!(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } + let!(:codeharbor_link) { create(:codeharbor_link, user: user) } let(:external_check_hash) { {message: message, exercise_found: true, update_right: update_right, error: error} } let(:message) { 'message' } let(:update_right) { true } @@ -405,7 +405,7 @@ describe ExercisesController do describe '#export_external_confirm' do render_views - let!(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } + let!(:codeharbor_link) { create(:codeharbor_link, user: user) } let(:post_request) { post :export_external_confirm, params: {id: exercise.id, codeharbor_link: codeharbor_link.id} } let(:error) { nil } let(:zip) { 'zip' } @@ -440,8 +440,8 @@ describe ExercisesController do end describe '#import_uuid_check' do - let(:exercise) { FactoryBot.create(:dummy, uuid: SecureRandom.uuid) } - let!(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } + let(:exercise) { create(:dummy, uuid: SecureRandom.uuid) } + let!(:codeharbor_link) { create(:codeharbor_link, user: user) } let(:uuid) { exercise.reload.uuid } let(:post_request) { post :import_uuid_check, params: {uuid: uuid} } let(:headers) { {'Authorization' => "Bearer #{codeharbor_link.api_key}"} } @@ -466,7 +466,7 @@ describe ExercisesController do end context 'when the user cannot update the exercise' do - let(:codeharbor_link) { FactoryBot.create(:codeharbor_link, api_key: 'anotherkey') } + let(:codeharbor_link) { create(:codeharbor_link, api_key: 'anotherkey') } it 'renders correct response' do post_request @@ -490,8 +490,8 @@ describe ExercisesController do end describe 'POST #import_exercise' do - let(:codeharbor_link) { FactoryBot.create(:codeharbor_link, user: user) } - let!(:imported_exercise) { FactoryBot.create(:fibonacci) } + let(:codeharbor_link) { create(:codeharbor_link, user: user) } + let!(:imported_exercise) { create(:fibonacci) } let(:post_request) { post :import_exercise, body: zip_file_content } let(:zip_file_content) { 'zipped task xml' } let(:headers) { {'Authorization' => "Bearer #{codeharbor_link.api_key}"} } diff --git a/spec/controllers/external_users_controller_spec.rb b/spec/controllers/external_users_controller_spec.rb index 40286549..d39acb26 100644 --- a/spec/controllers/external_users_controller_spec.rb +++ b/spec/controllers/external_users_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe ExternalUsersController do - let(:user) { FactoryBot.build(:admin) } - let!(:users) { FactoryBot.create_pair(:external_user) } + let(:user) { build(:admin) } + let!(:users) { create_pair(:external_user) } before { allow(controller).to receive(:current_user).and_return(user) } diff --git a/spec/controllers/file_types_controller_spec.rb b/spec/controllers/file_types_controller_spec.rb index 5035ceb8..3f13df2d 100644 --- a/spec/controllers/file_types_controller_spec.rb +++ b/spec/controllers/file_types_controller_spec.rb @@ -3,14 +3,14 @@ require 'rails_helper' describe FileTypesController do - let(:file_type) { FactoryBot.create(:dot_rb) } - let(:user) { FactoryBot.create(:admin) } + let(:file_type) { create(:dot_rb) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do context 'with a valid file type' do - let(:perform_request) { proc { post :create, params: {file_type: FactoryBot.attributes_for(:dot_rb)} } } + let(:perform_request) { proc { post :create, params: {file_type: attributes_for(:dot_rb)} } } before { perform_request.call } @@ -40,7 +40,7 @@ describe FileTypesController do expect_assigns(file_type: FileType) it 'destroys the file type' do - file_type = FactoryBot.create(:dot_rb) + file_type = create(:dot_rb) expect { delete :destroy, params: {id: file_type.id} }.to change(FileType, :count).by(-1) end @@ -58,7 +58,7 @@ describe FileTypesController do describe 'GET #index' do before do - FactoryBot.create_pair(:dot_rb) + create_pair(:dot_rb) get :index end @@ -86,7 +86,7 @@ describe FileTypesController do describe 'PUT #update' do context 'with a valid file type' do - before { put :update, params: {file_type: FactoryBot.attributes_for(:dot_rb), id: file_type.id} } + before { put :update, params: {file_type: attributes_for(:dot_rb), id: file_type.id} } expect_assigns(editor_modes: Array) expect_assigns(file_type: FileType) diff --git a/spec/controllers/internal_users_controller_spec.rb b/spec/controllers/internal_users_controller_spec.rb index c6a1cb9a..7ff2fb7b 100644 --- a/spec/controllers/internal_users_controller_spec.rb +++ b/spec/controllers/internal_users_controller_spec.rb @@ -3,11 +3,11 @@ require 'rails_helper' describe InternalUsersController do - let(:user) { FactoryBot.build(:admin) } - let!(:users) { FactoryBot.create_pair(:teacher) } + let(:user) { build(:admin) } + let!(:users) { create_pair(:teacher) } describe 'GET #activate' do - let(:user) { InternalUser.create(FactoryBot.attributes_for(:teacher)) } + let(:user) { InternalUser.create(attributes_for(:teacher)) } before do user.send(:setup_activation) @@ -39,7 +39,7 @@ describe InternalUsersController do end describe 'PUT #activate' do - let(:user) { InternalUser.create(FactoryBot.build(:teacher).attributes) } + let(:user) { InternalUser.create(build(:teacher).attributes) } let(:password) { SecureRandom.hex } before do @@ -108,7 +108,7 @@ describe InternalUsersController do before { allow(controller).to receive(:current_user).and_return(user) } context 'with a valid internal user' do - let(:perform_request) { proc { post :create, params: {internal_user: FactoryBot.build(:teacher).attributes} } } + let(:perform_request) { proc { post :create, params: {internal_user: build(:teacher).attributes} } } before { perform_request.call } @@ -316,7 +316,7 @@ describe InternalUsersController do before { allow(controller).to receive(:current_user).and_return(user) } context 'with a valid internal user' do - before { put :update, params: {internal_user: FactoryBot.attributes_for(:teacher), id: users.first.id} } + before { put :update, params: {internal_user: attributes_for(:teacher), id: users.first.id} } expect_assigns(user: InternalUser) expect_redirect { user } diff --git a/spec/controllers/request_for_comments_controller_spec.rb b/spec/controllers/request_for_comments_controller_spec.rb index 2be03f34..1950ff24 100644 --- a/spec/controllers/request_for_comments_controller_spec.rb +++ b/spec/controllers/request_for_comments_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe RequestForCommentsController do - let(:user) { FactoryBot.create(:admin) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } @@ -16,13 +16,13 @@ describe RequestForCommentsController do end it 'shows only rfc`s belonging to selected study group' do - my_study_group = FactoryBot.create(:study_group) - rfc_within_my_study_group = FactoryBot.create(:rfc, user: user) + my_study_group = create(:study_group) + rfc_within_my_study_group = create(:rfc, user: user) user.update(study_groups: [my_study_group]) rfc_within_my_study_group.submission.update(study_group: my_study_group) - another_study_group = FactoryBot.create(:study_group) - rfc_other_study_group = FactoryBot.create(:rfc) + another_study_group = create(:study_group) + rfc_other_study_group = create(:rfc) rfc_other_study_group.user.update(study_groups: [another_study_group]) rfc_other_study_group.submission.update(study_group: another_study_group) @@ -48,7 +48,7 @@ describe RequestForCommentsController do describe 'GET #rfcs_for_exercise' do before do - exercise = FactoryBot.create(:even_odd) + exercise = create(:even_odd) get :rfcs_for_exercise, params: {exercise_id: exercise.id} end diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 7388f7ef..4b7b54c0 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' describe SessionsController do - let(:consumer) { FactoryBot.create(:consumer) } + let(:consumer) { create(:consumer) } describe 'POST #create' do - let(:password) { FactoryBot.attributes_for(:teacher)[:password] } + let(:password) { attributes_for(:teacher)[:password] } let(:user) { InternalUser.create(user_attributes.merge(password: password)) } - let(:user_attributes) { FactoryBot.build(:teacher).attributes } + let(:user_attributes) { build(:teacher).attributes } context 'with valid credentials' do before do @@ -29,8 +29,8 @@ describe SessionsController do end describe 'POST #create_through_lti' do - let(:exercise) { FactoryBot.create(:dummy) } - let(:exercise2) { FactoryBot.create(:dummy) } + let(:exercise) { create(:dummy) } + let(:exercise2) { create(:dummy) } let(:nonce) { SecureRandom.hex } context 'without OAuth parameters' do @@ -74,7 +74,7 @@ describe SessionsController do context 'with valid launch parameters' do let(:locale) { :de } let(:perform_request) { post :create_through_lti, params: {custom_locale: locale, custom_token: exercise.token, oauth_consumer_key: consumer.oauth_key, oauth_nonce: nonce, oauth_signature: SecureRandom.hex, user_id: user.external_id} } - let(:user) { FactoryBot.create(:external_user, consumer_id: consumer.id) } + let(:user) { create(:external_user, consumer_id: consumer.id) } before { allow_any_instance_of(IMS::LTI::ToolProvider).to receive(:valid_request?).and_return(true) } @@ -139,14 +139,14 @@ describe SessionsController do end it 'redirects to recommended exercise if requested token of proxy exercise' do - FactoryBot.create(:proxy_exercise, exercises: [exercise]) + create(:proxy_exercise, exercises: [exercise]) post :create_through_lti, params: {custom_locale: locale, custom_token: ProxyExercise.first.token, oauth_consumer_key: consumer.oauth_key, oauth_nonce: nonce, oauth_signature: SecureRandom.hex, user_id: user.external_id} expect(controller).to redirect_to(implement_exercise_path(exercise.id)) end it 'recommends only exercises who are 1 degree more complicated than what user has seen' do # dummy user has no exercises finished, therefore his highest difficulty is 0 - FactoryBot.create(:proxy_exercise, exercises: [exercise, exercise2]) + create(:proxy_exercise, exercises: [exercise, exercise2]) exercise.expected_difficulty = 3 exercise.save exercise2.expected_difficulty = 1 @@ -202,7 +202,7 @@ describe SessionsController do describe 'GET #destroy_through_lti' do let(:perform_request) { proc { get :destroy_through_lti, params: {consumer_id: consumer.id, submission_id: submission.id} } } - let(:submission) { FactoryBot.create(:submission, exercise: FactoryBot.create(:dummy)) } + let(:submission) { create(:submission, exercise: create(:dummy)) } before do # Todo replace session with lti_parameter @@ -238,7 +238,7 @@ describe SessionsController do before do allow(controller).to receive(:set_sentry_context).and_return(nil) - allow(controller).to receive(:current_user).and_return(FactoryBot.build(:teacher)) + allow(controller).to receive(:current_user).and_return(build(:teacher)) get :new end diff --git a/spec/controllers/statistics_controller_spec.rb b/spec/controllers/statistics_controller_spec.rb index 8ddd30c2..9a0cbcb6 100644 --- a/spec/controllers/statistics_controller_spec.rb +++ b/spec/controllers/statistics_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe StatisticsController do - let(:user) { FactoryBot.create(:admin) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } diff --git a/spec/controllers/submissions_controller_spec.rb b/spec/controllers/submissions_controller_spec.rb index b92f92d8..cb764d86 100644 --- a/spec/controllers/submissions_controller_spec.rb +++ b/spec/controllers/submissions_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe SubmissionsController do - let(:submission) { FactoryBot.create(:submission) } - let(:user) { FactoryBot.create(:admin) } + let(:submission) { create(:submission) } + let(:user) { create(:admin) } before { allow(controller).to receive(:current_user).and_return(user) } @@ -14,8 +14,8 @@ describe SubmissionsController do end context 'with a valid submission' do - let(:exercise) { FactoryBot.create(:hello_world) } - let(:perform_request) { proc { post :create, format: :json, params: {submission: FactoryBot.attributes_for(:submission, exercise_id: exercise.id)} } } + let(:exercise) { create(:hello_world) } + let(:perform_request) { proc { post :create, format: :json, params: {submission: attributes_for(:submission, exercise_id: exercise.id)} } } before { perform_request.call } @@ -46,7 +46,7 @@ describe SubmissionsController do end context 'with a valid binary filename' do - let(:submission) { FactoryBot.create(:submission, exercise: FactoryBot.create(:sql_select)) } + let(:submission) { create(:submission, exercise: create(:sql_select)) } before { get :download_file, params: {filename: file.name_with_extension, id: submission.id} } @@ -65,7 +65,7 @@ describe SubmissionsController do end context 'with a valid filename' do - let(:submission) { FactoryBot.create(:submission, exercise: FactoryBot.create(:audio_video)) } + let(:submission) { create(:submission, exercise: create(:audio_video)) } before { get :download_file, params: {filename: file.name_with_extension, id: submission.id} } @@ -99,7 +99,7 @@ describe SubmissionsController do describe 'GET #index' do before do - FactoryBot.create_pair(:submission) + create_pair(:submission) get :index end @@ -118,7 +118,7 @@ describe SubmissionsController do end context 'with a valid filename' do - let(:submission) { FactoryBot.create(:submission, exercise: FactoryBot.create(:audio_video)) } + let(:submission) { create(:submission, exercise: create(:audio_video)) } before { get :render_file, params: {filename: file.name_with_extension, id: submission.id} } diff --git a/spec/features/authentication_spec.rb b/spec/features/authentication_spec.rb index 39704038..a5cf7a59 100644 --- a/spec/features/authentication_spec.rb +++ b/spec/features/authentication_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe 'Authentication' do - let(:user) { FactoryBot.create(:admin) } - let(:password) { FactoryBot.attributes_for(:admin)[:password] } + let(:user) { create(:admin) } + let(:password) { attributes_for(:admin)[:password] } context 'when signed out' do before { visit(root_path) } diff --git a/spec/features/authorization_spec.rb b/spec/features/authorization_spec.rb index cc8fcb9d..2e91f203 100644 --- a/spec/features/authorization_spec.rb +++ b/spec/features/authorization_spec.rb @@ -6,7 +6,7 @@ describe 'Authorization' do before { allow(Runner.strategy_class).to receive(:available_images).and_return([]) } context 'when being an admin' do - let(:user) { FactoryBot.create(:admin) } + let(:user) { create(:admin) } before { allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user) } @@ -16,7 +16,7 @@ describe 'Authorization' do end context 'with being an external user' do - let(:user) { FactoryBot.create(:external_user) } + let(:user) { create(:external_user) } before { allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user) } @@ -26,7 +26,7 @@ describe 'Authorization' do end context 'with being a teacher' do - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } before { allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user) } diff --git a/spec/features/editor_spec.rb b/spec/features/editor_spec.rb index 06919ea7..5892354b 100644 --- a/spec/features/editor_spec.rb +++ b/spec/features/editor_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe 'Editor', js: true do - let(:exercise) { FactoryBot.create(:audio_video, description: Forgery(:lorem_ipsum).sentence) } + let(:exercise) { create(:audio_video, description: Forgery(:lorem_ipsum).sentence) } let(:scoring_response) do [{ status: :ok, @@ -22,12 +22,12 @@ describe 'Editor', js: true do weight: 2.0, }] end - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } before do visit(sign_in_path) fill_in('email', with: user.email) - fill_in('password', with: FactoryBot.attributes_for(:teacher)[:password]) + fill_in('password', with: attributes_for(:teacher)[:password]) click_button(I18n.t('sessions.new.link')) allow_any_instance_of(LtiHelper).to receive(:lti_outcome_service?).and_return(true) visit(implement_exercise_path(exercise)) @@ -94,7 +94,7 @@ describe 'Editor', js: true do end it 'contains a button for submitting the exercise' do - submission = FactoryBot.build(:submission, user: user, exercise: exercise) + submission = build(:submission, user: user, exercise: exercise) allow(submission).to receive(:calculate_score).and_return(scoring_response) allow(Submission).to receive(:find).and_return(submission) click_button(I18n.t('exercises.editor.score')) diff --git a/spec/features/prometheus/controller_spec.rb b/spec/features/prometheus/controller_spec.rb index 156e227c..96966ab1 100644 --- a/spec/features/prometheus/controller_spec.rb +++ b/spec/features/prometheus/controller_spec.rb @@ -26,7 +26,7 @@ describe Prometheus::Controller do describe 'instance count' do it 'initializes the metrics with the current database entries' do - FactoryBot.create_list(:proxy_exercise, 3) + create_list(:proxy_exercise, 3) described_class.register_metrics stub_metrics described_class.initialize_instance_count @@ -35,25 +35,25 @@ describe Prometheus::Controller do it 'gets notified when an object is created' do allow(described_class).to receive(:create_notification) - proxy_exercise = FactoryBot.create(:proxy_exercise) + proxy_exercise = create(:proxy_exercise) expect(described_class).to have_received(:create_notification).with(proxy_exercise).once end it 'gets notified when an object is destroyed' do allow(described_class).to receive(:destroy_notification) - proxy_exercise = FactoryBot.create(:proxy_exercise).destroy + proxy_exercise = create(:proxy_exercise).destroy expect(described_class).to have_received(:destroy_notification).with(proxy_exercise).once end it 'increments gauge when creating a new instance' do - FactoryBot.create(:proxy_exercise) + create(:proxy_exercise) expect(described_class.instance_variable_get(:@instance_count)).to( have_received(:increment).with(class: ProxyExercise.name).once ) end it 'decrements gauge when deleting an object' do - FactoryBot.create(:proxy_exercise).destroy + create(:proxy_exercise).destroy expect(described_class.instance_variable_get(:@instance_count)).to( have_received(:decrement).with(class: ProxyExercise.name).once ) @@ -63,7 +63,7 @@ describe Prometheus::Controller do describe 'rfc count' do context 'when initializing an rfc' do it 'updates rfc count when creating an ongoing rfc' do - FactoryBot.create(:rfc) + create(:rfc) expect(described_class.instance_variable_get(:@rfc_count)).to( have_received(:increment).with(state: RequestForComment::ONGOING).once ) @@ -71,7 +71,7 @@ describe Prometheus::Controller do end context 'when changing the state of an rfc' do - let(:rfc) { FactoryBot.create(:rfc) } + let(:rfc) { create(:rfc) } it 'updates rfc count when soft-solving an rfc' do rfc.full_score_reached = true @@ -90,12 +90,12 @@ describe Prometheus::Controller do context 'when commenting an rfc' do it 'updates comment metric when commenting an rfc' do - FactoryBot.create(:rfc_with_comment) + create(:rfc_with_comment) expect(described_class.instance_variable_get(:@rfc_commented_count)).to have_received(:increment).once end it 'does not update comment metric when commenting an rfc that already has a comment' do - rfc = FactoryBot.create(:rfc_with_comment) + rfc = create(:rfc_with_comment) expect(described_class.instance_variable_get(:@rfc_commented_count)).to have_received(:increment).once Comment.create(file: rfc.file, user: rfc.user, text: "comment a for rfc #{rfc.question}") diff --git a/spec/features/request_for_comments_filter_spec.rb b/spec/features/request_for_comments_filter_spec.rb index 9f264171..17eadacb 100644 --- a/spec/features/request_for_comments_filter_spec.rb +++ b/spec/features/request_for_comments_filter_spec.rb @@ -3,21 +3,21 @@ require 'rails_helper' describe 'Request_for_Comments' do - let(:exercise) { FactoryBot.create(:audio_video, description: Forgery(:lorem_ipsum).sentence) } - let(:user) { FactoryBot.create(:teacher) } + let(:exercise) { create(:audio_video, description: Forgery(:lorem_ipsum).sentence) } + let(:user) { create(:teacher) } before do visit(sign_in_path) fill_in('email', with: user.email) - fill_in('password', with: FactoryBot.attributes_for(:teacher)[:password]) + fill_in('password', with: attributes_for(:teacher)[:password]) click_button(I18n.t('sessions.new.link')) end it 'does not contain rfcs for unpublished exercises' do - unpublished_rfc = FactoryBot.create(:rfc) + unpublished_rfc = create(:rfc) unpublished_rfc.exercise.update(title: 'Unpublished Exercise') unpublished_rfc.exercise.update(unpublished: true) - rfc = FactoryBot.create(:rfc) + rfc = create(:rfc) rfc.exercise.update(title: 'Normal Exercise') rfc.exercise.update(unpublished: false) diff --git a/spec/helpers/admin/dashboard_helper_spec.rb b/spec/helpers/admin/dashboard_helper_spec.rb index 643bd08f..64307b83 100644 --- a/spec/helpers/admin/dashboard_helper_spec.rb +++ b/spec/helpers/admin/dashboard_helper_spec.rb @@ -11,7 +11,7 @@ describe Admin::DashboardHelper do describe '#docker_data' do before do - FactoryBot.create(:ruby) + create(:ruby) dcp = instance_double 'docker_container_pool' allow(Runner).to receive(:strategy_class).and_return dcp allow(dcp).to receive(:pool_size).and_return({}) diff --git a/spec/helpers/exercise_helper_spec.rb b/spec/helpers/exercise_helper_spec.rb index 9fd8feea..b1710866 100644 --- a/spec/helpers/exercise_helper_spec.rb +++ b/spec/helpers/exercise_helper_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe ExerciseHelper do describe '#embedding_parameters' do - let(:exercise) { FactoryBot.build(:dummy) } + let(:exercise) { build(:dummy) } it 'contains the locale' do expect(embedding_parameters(exercise)).to start_with("locale=#{I18n.locale}") diff --git a/spec/lib/assessor_spec.rb b/spec/lib/assessor_spec.rb index 457a6cba..1b83245e 100644 --- a/spec/lib/assessor_spec.rb +++ b/spec/lib/assessor_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe Assessor do - let(:assessor) { described_class.new(execution_environment: FactoryBot.build(:ruby)) } + let(:assessor) { described_class.new(execution_environment: build(:ruby)) } describe '#assess' do let(:assess) { assessor.assess(stdout: stdout) } @@ -55,7 +55,7 @@ describe Assessor do context 'with an execution environment without a testing framework adapter' do it 'raises an error' do - expect { described_class.new(execution_environment: FactoryBot.build(:ruby, testing_framework: nil)) }.to raise_error(Assessor::Error) + expect { described_class.new(execution_environment: build(:ruby, testing_framework: nil)) }.to raise_error(Assessor::Error) end end end diff --git a/spec/lib/docker_client_spec.rb b/spec/lib/docker_client_spec.rb index 54746d51..9d502d17 100644 --- a/spec/lib/docker_client_spec.rb +++ b/spec/lib/docker_client_spec.rb @@ -7,14 +7,14 @@ WORKSPACE_PATH = Rails.root.join('tmp', 'files', Rails.env, 'code_ocean_test') describe DockerClient do let(:command) { 'whoami' } - let(:docker_client) { described_class.new(execution_environment: FactoryBot.build(:java), user: FactoryBot.build(:admin)) } - let(:execution_environment) { FactoryBot.build(:java) } + let(:docker_client) { described_class.new(execution_environment: build(:java), user: build(:admin)) } + let(:execution_environment) { build(:java) } let(:image) { double } - let(:submission) { FactoryBot.create(:submission) } + let(:submission) { create(:submission) } let(:workspace_path) { WORKSPACE_PATH } before do - docker_image = Docker::Image.new(Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex, 'RepoTags' => [FactoryBot.attributes_for(:java)[:docker_image]]) + docker_image = Docker::Image.new(Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex, 'RepoTags' => [attributes_for(:java)[:docker_image]]) allow(described_class).to receive(:find_image_by_tag).and_return(docker_image) described_class.initialize_environment allow(described_class).to receive(:container_creation_options).and_wrap_original do |original_method, *args, &block| @@ -177,7 +177,7 @@ describe DockerClient do describe '#create_workspace_file' do let(:container) { Docker::Container.send(:new, Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex) } - let(:file) { FactoryBot.build(:file, content: 'puts 42') } + let(:file) { build(:file, content: 'puts 42') } let(:file_path) { File.join(workspace_path, file.name_with_extension) } after { File.delete(file_path) } diff --git a/spec/lib/file_tree_spec.rb b/spec/lib/file_tree_spec.rb index fe14d4fa..8b053e74 100644 --- a/spec/lib/file_tree_spec.rb +++ b/spec/lib/file_tree_spec.rb @@ -10,7 +10,7 @@ describe FileTree do context 'with a media file' do context 'with an audio file' do - let(:file) { FactoryBot.build(:file, file_type: FactoryBot.build(:dot_mp3)) } + let(:file) { build(:file, file_type: build(:dot_mp3)) } it 'is an audio file icon' do expect(file_icon).to include('fa-file-audio-o') @@ -18,7 +18,7 @@ describe FileTree do end context 'with an image file' do - let(:file) { FactoryBot.build(:file, file_type: FactoryBot.build(:dot_jpg)) } + let(:file) { build(:file, file_type: build(:dot_jpg)) } it 'is an image file icon' do expect(file_icon).to include('fa-file-image-o') @@ -26,7 +26,7 @@ describe FileTree do end context 'with a video file' do - let(:file) { FactoryBot.build(:file, file_type: FactoryBot.build(:dot_mp4)) } + let(:file) { build(:file, file_type: build(:dot_mp4)) } it 'is a video file icon' do expect(file_icon).to include('fa-file-video-o') @@ -36,7 +36,7 @@ describe FileTree do context 'with other files' do context 'with a read-only file' do - let(:file) { FactoryBot.build(:file, read_only: true) } + let(:file) { build(:file, read_only: true) } it 'is a lock icon' do expect(file_icon).to include('fa-lock') @@ -44,7 +44,7 @@ describe FileTree do end context 'with an executable file' do - let(:file) { FactoryBot.build(:file, file_type: FactoryBot.build(:dot_py)) } + let(:file) { build(:file, file_type: build(:dot_py)) } it 'is a code file icon' do expect(file_icon).to include('fa-file-code-o') @@ -52,7 +52,7 @@ describe FileTree do end context 'with a renderable file' do - let(:file) { FactoryBot.build(:file, file_type: FactoryBot.build(:dot_svg)) } + let(:file) { build(:file, file_type: build(:dot_svg)) } it 'is a text file icon' do expect(file_icon).to include('fa-file-text-o') @@ -60,7 +60,7 @@ describe FileTree do end context 'with all other files' do - let(:file) { FactoryBot.build(:file, file_type: FactoryBot.build(:dot_md)) } + let(:file) { build(:file, file_type: build(:dot_md)) } it 'is a generic file icon' do expect(file_icon).to include('fa-file-o') @@ -77,7 +77,7 @@ describe FileTree do describe '#initialize' do let(:file_tree) { described_class.new(files) } - let(:files) { FactoryBot.build_list(:file, 10, context: nil, path: 'foo/bar/baz') } + let(:files) { build_list(:file, 10, context: nil, path: 'foo/bar/baz') } it 'creates a root node' do # Instead of checking #initialize on the parent, we validate #set_as_root! @@ -95,7 +95,7 @@ describe FileTree do end describe '#map_to_js_tree' do - let(:file) { FactoryBot.build(:file) } + let(:file) { build(:file) } let(:js_tree) { file_tree.send(:map_to_js_tree, node) } let!(:leaf) { root.add(Tree::TreeNode.new('', file)) } let(:root) { Tree::TreeNode.new('', file) } @@ -186,7 +186,7 @@ describe FileTree do end context 'with files' do - let(:files) { FactoryBot.build_list(:file, 10, context: nil, path: 'foo/bar/baz') } + let(:files) { build_list(:file, 10, context: nil, path: 'foo/bar/baz') } let(:file_tree) { described_class.new(files) } let(:js_tree) { file_tree.to_js_tree } diff --git a/spec/lib/runner/strategy/docker_container_pool_spec.rb b/spec/lib/runner/strategy/docker_container_pool_spec.rb index 6cec57dd..d785867d 100644 --- a/spec/lib/runner/strategy/docker_container_pool_spec.rb +++ b/spec/lib/runner/strategy/docker_container_pool_spec.rb @@ -4,8 +4,8 @@ require 'rails_helper' require 'pathname' describe Runner::Strategy::DockerContainerPool do - let(:runner_id) { FactoryBot.attributes_for(:runner)[:runner_id] } - let(:execution_environment) { FactoryBot.create :ruby } + let(:runner_id) { attributes_for(:runner)[:runner_id] } + let(:execution_environment) { create :ruby } let(:container_pool) { described_class.new(runner_id, execution_environment) } let(:docker_container_pool_url) { 'http://localhost:1234' } let(:config) { {url: docker_container_pool_url, unused_runner_expiration_time: 180} } @@ -112,22 +112,20 @@ describe Runner::Strategy::DockerContainerPool do context 'when receiving a normal file' do let(:file_content) { 'print("Hello World!")' } - let(:files) { [FactoryBot.build(:file, content: file_content)] } + let(:files) { [build(:file, content: file_content)] } it 'writes the file to disk' do - file = instance_double(File) - allow(File).to receive(:open).and_yield(file) - expect(file).to receive(:write).with(file_content) + expect(File).to receive(:write).with(local_path.join(files.first.filepath), file_content) container_pool.copy_files(files) end it 'creates the file inside the workspace' do - expect(File).to receive(:open).with(local_path.join(files.first.filepath), 'w') + expect(File).to receive(:write).with(local_path.join(files.first.filepath), files.first.content) container_pool.copy_files(files) end it 'raises an error in case of an IOError' do - allow(File).to receive(:open).and_raise(IOError) + allow(File).to receive(:write).and_raise(IOError) expect { container_pool.copy_files(files) }.to raise_error(Runner::Error::WorkspaceError, /#{files.first.filepath}/) end @@ -137,10 +135,10 @@ describe Runner::Strategy::DockerContainerPool do context 'when the file is inside a directory' do let(:directory) { 'temp/dir' } - let(:files) { [FactoryBot.build(:file, path: directory)] } + let(:files) { [build(:file, path: directory)] } before do - allow(File).to receive(:open) + allow(File).to receive(:write) allow(FileUtils).to receive(:mkdir_p).with(local_path) allow(FileUtils).to receive(:mkdir_p).with(local_path.join(directory)) end @@ -159,7 +157,7 @@ describe Runner::Strategy::DockerContainerPool do end context 'when receiving a binary file' do - let(:files) { [FactoryBot.build(:file, :image)] } + let(:files) { [build(:file, :image)] } it 'copies the file inside the workspace' do expect(FileUtils).to receive(:cp).with(files.first.native_file.path, local_path.join(files.first.filepath)) @@ -168,11 +166,11 @@ describe Runner::Strategy::DockerContainerPool do end context 'when receiving multiple files' do - let(:files) { FactoryBot.build_list(:file, 3) } + let(:files) { build_list(:file, 3) } it 'creates all files' do files.each do |file| - expect(File).to receive(:open).with(local_path.join(file.filepath), 'w') + expect(File).to receive(:write).with(local_path.join(file.filepath), file.content) end container_pool.copy_files(files) end diff --git a/spec/lib/runner/strategy/poseidon_spec.rb b/spec/lib/runner/strategy/poseidon_spec.rb index f514e0ff..92c1da28 100644 --- a/spec/lib/runner/strategy/poseidon_spec.rb +++ b/spec/lib/runner/strategy/poseidon_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe Runner::Strategy::Poseidon do - let(:runner_id) { FactoryBot.attributes_for(:runner)[:runner_id] } - let(:execution_environment) { FactoryBot.create :ruby } + let(:runner_id) { attributes_for(:runner)[:runner_id] } + let(:execution_environment) { create :ruby } let(:poseidon) { described_class.new(runner_id, execution_environment) } let(:error_message) { 'test error message' } let(:response_body) { nil } @@ -128,7 +128,7 @@ describe Runner::Strategy::Poseidon do describe '::sync_environment' do let(:action) { -> { described_class.sync_environment(execution_environment) } } - let(:execution_environment) { FactoryBot.create(:ruby) } + let(:execution_environment) { create(:ruby) } it 'makes the correct request to Poseidon' do faraday_connection = instance_double 'Faraday::Connection' @@ -321,7 +321,7 @@ describe Runner::Strategy::Poseidon do describe '#copy_files' do let(:file_content) { 'print("Hello World!")' } - let(:file) { FactoryBot.build(:file, content: file_content) } + let(:file) { build(:file, content: file_content) } let(:action) { -> { poseidon.copy_files([file]) } } let(:encoded_file_content) { Base64.strict_encode64(file.content) } let!(:copy_files_stub) do diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 5054abd8..b9b14bab 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe UserMailer do - let(:user) { InternalUser.create(FactoryBot.attributes_for(:teacher)) } + let(:user) { InternalUser.create(attributes_for(:teacher)) } describe '#activation_needed_email' do let(:mail) { described_class.activation_needed_email(user) } diff --git a/spec/models/code_ocean/file_spec.rb b/spec/models/code_ocean/file_spec.rb index baef520d..a123a31d 100644 --- a/spec/models/code_ocean/file_spec.rb +++ b/spec/models/code_ocean/file_spec.rb @@ -6,7 +6,7 @@ describe CodeOcean::File do let(:file) { described_class.create.tap {|file| file.update(content: nil, hidden: nil, read_only: nil) } } it 'validates the presence of a file type' do - expect(file.errors[:file_type_id]).to be_present + expect(file.errors[:file_type]).to be_present end it 'validates the presence of the hidden flag' do diff --git a/spec/models/codeharbor_link_spec.rb b/spec/models/codeharbor_link_spec.rb index f999164e..1e9bcb95 100644 --- a/spec/models/codeharbor_link_spec.rb +++ b/spec/models/codeharbor_link_spec.rb @@ -11,7 +11,7 @@ describe CodeharborLink do describe '#to_s' do subject { codeharbor_link.to_s } - let(:codeharbor_link) { FactoryBot.create(:codeharbor_link) } + let(:codeharbor_link) { create(:codeharbor_link) } it { is_expected.to eql codeharbor_link.id.to_s } end diff --git a/spec/models/consumer_spec.rb b/spec/models/consumer_spec.rb index 8ffb7b2d..bdda9fb1 100644 --- a/spec/models/consumer_spec.rb +++ b/spec/models/consumer_spec.rb @@ -14,7 +14,7 @@ describe Consumer do end it 'validates the uniqueness of the OAuth key' do - consumer.update(oauth_key: FactoryBot.create(:consumer).oauth_key) + consumer.update(oauth_key: create(:consumer).oauth_key) expect(consumer.errors[:oauth_key]).to be_present end diff --git a/spec/models/execution_environment_spec.rb b/spec/models/execution_environment_spec.rb index 4a6e2ff3..05ef6666 100644 --- a/spec/models/execution_environment_spec.rb +++ b/spec/models/execution_environment_spec.rb @@ -8,7 +8,7 @@ describe ExecutionEnvironment do it 'validates that the Docker image works' do allow(execution_environment).to receive(:validate_docker_image?).and_return(true) allow(execution_environment).to receive(:working_docker_image?).and_return(true) - execution_environment.update(FactoryBot.build(:ruby).attributes) + execution_environment.update(build(:ruby).attributes) expect(execution_environment).to have_received(:working_docker_image?) end @@ -81,8 +81,7 @@ describe ExecutionEnvironment do end it 'validates the presence of a user' do - expect(execution_environment.errors[:user_id]).to be_present - expect(execution_environment.errors[:user_type]).to be_present + expect(execution_environment.errors[:user]).to be_present end it 'validates the format of the exposed ports' do @@ -95,7 +94,7 @@ describe ExecutionEnvironment do describe '#valid_test_setup?' do context 'with a test command and a testing framework' do - before { execution_environment.update(test_command: FactoryBot.attributes_for(:ruby)[:test_command], testing_framework: FactoryBot.attributes_for(:ruby)[:testing_framework]) } + before { execution_environment.update(test_command: attributes_for(:ruby)[:test_command], testing_framework: attributes_for(:ruby)[:testing_framework]) } it 'is valid' do expect(execution_environment.errors[:test_command]).to be_blank @@ -103,7 +102,7 @@ describe ExecutionEnvironment do end context 'with a test command but no testing framework' do - before { execution_environment.update(test_command: FactoryBot.attributes_for(:ruby)[:test_command], testing_framework: nil) } + before { execution_environment.update(test_command: attributes_for(:ruby)[:test_command], testing_framework: nil) } it 'is invalid' do expect(execution_environment.errors[:test_command]).to be_present @@ -111,7 +110,7 @@ describe ExecutionEnvironment do end context 'with no test command but a testing framework' do - before { execution_environment.update(test_command: nil, testing_framework: FactoryBot.attributes_for(:ruby)[:testing_framework]) } + before { execution_environment.update(test_command: nil, testing_framework: attributes_for(:ruby)[:testing_framework]) } it 'is invalid' do expect(execution_environment.errors[:test_command]).to be_present @@ -144,7 +143,7 @@ describe ExecutionEnvironment do end it 'is true otherwise' do - execution_environment.docker_image = FactoryBot.attributes_for(:ruby)[:docker_image] + execution_environment.docker_image = attributes_for(:ruby)[:docker_image] execution_environment.pool_size = 1 allow(Rails.env).to receive(:test?).and_return(false) expect(execution_environment.send(:validate_docker_image?)).to be true @@ -152,7 +151,7 @@ describe ExecutionEnvironment do end describe '#working_docker_image?' do - let(:execution_environment) { FactoryBot.create(:ruby) } + let(:execution_environment) { create(:ruby) } let(:working_docker_image?) { execution_environment.send(:working_docker_image?) } let(:runner) { instance_double 'runner' } diff --git a/spec/models/exercise_spec.rb b/spec/models/exercise_spec.rb index 86596907..57bd66c9 100644 --- a/spec/models/exercise_spec.rb +++ b/spec/models/exercise_spec.rb @@ -4,15 +4,15 @@ require 'rails_helper' describe Exercise do let(:exercise) { described_class.create.tap {|exercise| exercise.update(public: nil, token: nil) } } - let(:users) { FactoryBot.create_list(:external_user, 10) } + let(:users) { create_list(:external_user, 10) } def create_submissions - FactoryBot.create_list(:submission, 10, cause: 'submit', exercise: exercise, score: Forgery(:basic).number, user: users.sample) + create_list(:submission, 10, cause: 'submit', exercise: exercise, score: Forgery(:basic).number, user: users.sample) end it 'validates the number of main files' do - exercise = FactoryBot.create(:dummy) - exercise.files += FactoryBot.create_pair(:file) + exercise = create(:dummy) + exercise.files += create_pair(:file) expect(exercise).to receive(:valid_main_file?).and_call_original exercise.save expect(exercise.errors[:files]).to be_present @@ -37,36 +37,35 @@ describe Exercise do end it 'validates the presence of a user' do - expect(exercise.errors[:user_id]).to be_present - expect(exercise.errors[:user_type]).to be_present + expect(exercise.errors[:user]).to be_present end context 'when exercise is unpublished' do - subject { FactoryBot.build(:dummy, unpublished: true) } + subject { build(:dummy, unpublished: true) } it { is_expected.not_to validate_presence_of(:execution_environment) } end context 'when exercise is not unpublished' do - subject { FactoryBot.build(:dummy, unpublished: false) } + subject { build(:dummy, unpublished: false) } it { is_expected.to validate_presence_of(:execution_environment) } end context 'with uuid' do - subject { FactoryBot.build(:dummy, uuid: SecureRandom.uuid) } + subject { build(:dummy, uuid: SecureRandom.uuid) } it { is_expected.to validate_uniqueness_of(:uuid).case_insensitive } end context 'without uuid' do - subject { FactoryBot.build(:dummy, uuid: nil) } + subject { build(:dummy, uuid: nil) } it { is_expected.not_to validate_uniqueness_of(:uuid) } end describe '#average_percentage' do - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:exercise) { create(:fibonacci) } context 'without submissions' do it 'returns nil' do @@ -85,7 +84,7 @@ describe Exercise do end describe '#average_score' do - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:exercise) { create(:fibonacci) } context 'without submissions' do it 'returns nil' do @@ -104,7 +103,7 @@ describe Exercise do end describe '#duplicate' do - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:exercise) { create(:fibonacci) } after { exercise.duplicate } diff --git a/spec/models/external_user_spec.rb b/spec/models/external_user_spec.rb index ee7ca64b..a99f00a7 100644 --- a/spec/models/external_user_spec.rb +++ b/spec/models/external_user_spec.rb @@ -6,7 +6,7 @@ describe ExternalUser do let(:user) { described_class.create } it 'validates the presence of a consumer' do - expect(user.errors[:consumer_id]).to be_present + expect(user.errors[:consumer]).to be_present end it 'validates the presence of an external ID' do @@ -15,7 +15,7 @@ describe ExternalUser do describe '#admin?' do it 'is false' do - expect(FactoryBot.build(:external_user).admin?).to be false + expect(build(:external_user).admin?).to be false end end @@ -33,7 +33,7 @@ describe ExternalUser do describe '#teacher?' do it 'is false' do - expect(FactoryBot.build(:external_user).teacher?).to be false + expect(build(:external_user).teacher?).to be false end end end diff --git a/spec/models/file_type_spec.rb b/spec/models/file_type_spec.rb index 4fb00c1f..0fc9c043 100644 --- a/spec/models/file_type_spec.rb +++ b/spec/models/file_type_spec.rb @@ -52,7 +52,6 @@ describe FileType do end it 'validates the presence of a user' do - expect(file_type.errors[:user_id]).to be_present - expect(file_type.errors[:user_type]).to be_present + expect(file_type.errors[:user]).to be_present end end diff --git a/spec/models/internal_user_spec.rb b/spec/models/internal_user_spec.rb index a9c131be..82c525a2 100644 --- a/spec/models/internal_user_spec.rb +++ b/spec/models/internal_user_spec.rb @@ -11,12 +11,12 @@ describe InternalUser do end it 'validates the uniqueness of the email address' do - user.update(email: FactoryBot.create(:admin).email) + user.update(email: create(:admin).email) expect(user.errors[:email]).to be_present end context 'when not activated' do - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } before do user.send(:setup_activation) @@ -35,7 +35,7 @@ describe InternalUser do end context 'with a pending password reset' do - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } before { user.deliver_reset_password_instructions! } @@ -51,7 +51,7 @@ describe InternalUser do end context 'when complete' do - let(:user) { FactoryBot.create(:teacher, activation_state: 'active') } + let(:user) { create(:teacher, activation_state: 'active') } it 'does not validate the confirmation of the password' do user.update(password: password, password_confirmation: '') @@ -74,8 +74,8 @@ describe InternalUser do describe '#admin?' do it 'is only true for admins' do - expect(FactoryBot.build(:admin).admin?).to be true - expect(FactoryBot.build(:teacher).admin?).to be false + expect(build(:admin).admin?).to be true + expect(build(:teacher).admin?).to be false end end @@ -93,8 +93,8 @@ describe InternalUser do describe '#teacher?' do it 'is only true for teachers' do - expect(FactoryBot.build(:admin).teacher?).to be false - expect(FactoryBot.build(:teacher).teacher?).to be true + expect(build(:admin).teacher?).to be false + expect(build(:teacher).teacher?).to be true end end end diff --git a/spec/models/request_for_comment_spec.rb b/spec/models/request_for_comment_spec.rb index f4038841..8cd7b55a 100644 --- a/spec/models/request_for_comment_spec.rb +++ b/spec/models/request_for_comment_spec.rb @@ -3,10 +3,10 @@ require 'rails_helper' describe RequestForComment do - let!(:rfc) { FactoryBot.create(:rfc) } + let!(:rfc) { create(:rfc) } describe 'scope with_comments' do - let!(:rfc2) { FactoryBot.create(:rfc_with_comment) } + let!(:rfc2) { create(:rfc_with_comment) } it 'includes all RfCs with comments' do expect(described_class.with_comments).to include(rfc2) diff --git a/spec/models/runner_spec.rb b/spec/models/runner_spec.rb index 8c156555..5f23e775 100644 --- a/spec/models/runner_spec.rb +++ b/spec/models/runner_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' describe Runner do - let(:runner_id) { FactoryBot.attributes_for(:runner)[:runner_id] } + let(:runner_id) { attributes_for(:runner)[:runner_id] } let(:strategy_class) { described_class.strategy_class } let(:strategy) { instance_double(strategy_class) } describe 'attribute validation' do - let(:runner) { FactoryBot.create :runner } + let(:runner) { create :runner } it 'validates the presence of the runner id' do described_class.skip_callback(:validation, :before, :request_id) @@ -162,8 +162,8 @@ describe Runner do end describe 'creation' do - let(:user) { FactoryBot.create :external_user } - let(:execution_environment) { FactoryBot.create :ruby } + let(:user) { create :external_user } + let(:execution_environment) { create :ruby } let(:create_action) { -> { described_class.create(user: user, execution_environment: execution_environment) } } it 'requests a runner id from the runner management' do @@ -187,12 +187,12 @@ describe Runner do it 'does not call the runner management again while a runner id is set' do expect(strategy_class).to receive(:request_from_management).and_return(runner_id).once runner = create_action.call - runner.update(user: FactoryBot.create(:external_user)) + runner.update(user: create(:external_user)) end end describe '#request_new_id' do - let(:runner) { FactoryBot.create :runner } + let(:runner) { create :runner } context 'when the environment is available in the runner management' do it 'requests the runner management' do @@ -240,8 +240,8 @@ describe Runner do end describe '::for' do - let(:user) { FactoryBot.create :external_user } - let(:exercise) { FactoryBot.create :fibonacci } + let(:user) { create :external_user } + let(:exercise) { create :fibonacci } context 'when the runner could not be saved' do before { allow(strategy_class).to receive(:request_from_management).and_return(nil) } @@ -252,7 +252,7 @@ describe Runner do end context 'when a runner already exists' do - let!(:existing_runner) { FactoryBot.create(:runner, user: user, execution_environment: exercise.execution_environment) } + let!(:existing_runner) { create(:runner, user: user, execution_environment: exercise.execution_environment) } it 'returns the existing runner' do new_runner = described_class.for(user, exercise.execution_environment) diff --git a/spec/models/submission_spec.rb b/spec/models/submission_spec.rb index 60a86923..9b6a6ab5 100644 --- a/spec/models/submission_spec.rb +++ b/spec/models/submission_spec.rb @@ -3,23 +3,22 @@ require 'rails_helper' describe Submission do - let(:submission) { FactoryBot.create(:submission, exercise: FactoryBot.create(:dummy)) } + let(:submission) { create(:submission, exercise: create(:dummy)) } it 'validates the presence of a cause' do expect(described_class.create.errors[:cause]).to be_present end it 'validates the presence of an exercise' do - expect(described_class.create.errors[:exercise_id]).to be_present + expect(described_class.create.errors[:exercise]).to be_present end it 'validates the presence of a user' do - expect(described_class.create.errors[:user_id]).to be_present - expect(described_class.create.errors[:user_type]).to be_present + expect(described_class.create.errors[:user]).to be_present end describe '#main_file' do - let(:submission) { FactoryBot.create(:submission) } + let(:submission) { create(:submission) } it "returns the submission's main file" do expect(submission.main_file).to be_a(CodeOcean::File) @@ -29,7 +28,7 @@ describe Submission do describe '#normalized_score' do context 'with a score' do - let(:submission) { FactoryBot.create(:submission) } + let(:submission) { create(:submission) } before { submission.score = submission.exercise.maximum_score / 2 } @@ -49,7 +48,7 @@ describe Submission do describe '#percentage' do context 'with a score' do - let(:submission) { FactoryBot.create(:submission) } + let(:submission) { create(:submission) } before { submission.score = submission.exercise.maximum_score / 2 } @@ -69,11 +68,11 @@ describe Submission do describe '#siblings' do let(:siblings) { described_class.find_by(user: user).siblings } - let(:user) { FactoryBot.create(:external_user) } + let(:user) { create(:external_user) } before do 10.times.each_with_index do |_, index| - FactoryBot.create(:submission, exercise: submission.exercise, user: (index.even? ? user : FactoryBot.create(:external_user))) + create(:submission, exercise: submission.exercise, user: (index.even? ? user : create(:external_user))) end end @@ -92,9 +91,9 @@ describe Submission do describe '#redirect_to_feedback?' do context 'with no exercise feedback' do - let(:exercise) { FactoryBot.create(:dummy) } - let(:user) { FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) % 10) } - let(:submission) { FactoryBot.build(:submission, exercise: exercise, user: user) } + let(:exercise) { create(:dummy) } + let(:user) { build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) % 10) } + let(:submission) { build(:submission, exercise: exercise, user: user) } it 'sends 10% of users to feedback page' do expect(submission.send(:redirect_to_feedback?)).to be_truthy @@ -102,16 +101,16 @@ describe Submission do it 'does not redirect other users' do 9.times do |i| - submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) - i - 1)) + submission = build(:submission, exercise: exercise, user: build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) - i - 1)) expect(submission.send(:redirect_to_feedback?)).to be_falsey end end end context 'with little exercise feedback' do - let(:exercise) { FactoryBot.create(:dummy_with_user_feedbacks) } - let(:user) { FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) % 10) } - let(:submission) { FactoryBot.build(:submission, exercise: exercise, user: user) } + let(:exercise) { create(:dummy_with_user_feedbacks) } + let(:user) { build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) % 10) } + let(:submission) { build(:submission, exercise: exercise, user: user) } it 'sends 10% of users to feedback page' do expect(submission.send(:redirect_to_feedback?)).to be_truthy @@ -119,15 +118,15 @@ describe Submission do it 'does not redirect other users' do 9.times do |i| - submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) - i - 1)) + submission = build(:submission, exercise: exercise, user: build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) - i - 1)) expect(submission.send(:redirect_to_feedback?)).to be_falsey end end end context 'with enough exercise feedback' do - let(:exercise) { FactoryBot.create(:dummy_with_user_feedbacks, user_feedbacks_count: 42) } - let(:user) { FactoryBot.create(:external_user) } + let(:exercise) { create(:dummy_with_user_feedbacks, user_feedbacks_count: 42) } + let(:user) { create(:external_user) } before do allow_any_instance_of(described_class).to receive(:redirect_to_feedback?).and_return(false) @@ -135,7 +134,7 @@ describe Submission do it 'sends nobody to feedback page' do 30.times do |_i| - submission = FactoryBot.create(:submission, exercise: exercise, user: FactoryBot.create(:external_user)) + submission = create(:submission, exercise: exercise, user: create(:external_user)) expect(submission.send(:redirect_to_feedback?)).to be_falsey end end @@ -143,7 +142,7 @@ describe Submission do end describe '#calculate_score' do - let(:runner) { FactoryBot.create :runner } + let(:runner) { create :runner } before do allow(Runner).to receive(:for).and_return(runner) diff --git a/spec/policies/admin/dashboard_policy_spec.rb b/spec/policies/admin/dashboard_policy_spec.rb index 4646d90b..b40e2694 100644 --- a/spec/policies/admin/dashboard_policy_spec.rb +++ b/spec/policies/admin/dashboard_policy_spec.rb @@ -7,15 +7,15 @@ describe Admin::DashboardPolicy do permissions :show? do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), :dashboard) + expect(policy).to permit(build(:admin), :dashboard) end it 'does not grant access to teachers' do - expect(policy).not_to permit(FactoryBot.build(:teacher), :dashboard) + expect(policy).not_to permit(build(:teacher), :dashboard) end it 'does not grant access to external users' do - expect(policy).not_to permit(FactoryBot.build(:external_user), :dashboard) + expect(policy).not_to permit(build(:external_user), :dashboard) end end end diff --git a/spec/policies/code_ocean/file_policy_spec.rb b/spec/policies/code_ocean/file_policy_spec.rb index f32b9b89..233089cf 100644 --- a/spec/policies/code_ocean/file_policy_spec.rb +++ b/spec/policies/code_ocean/file_policy_spec.rb @@ -5,15 +5,15 @@ require 'rails_helper' describe CodeOcean::FilePolicy do subject(:policy) { described_class } - let(:exercise) { FactoryBot.create(:fibonacci) } - let(:submission) { FactoryBot.create(:submission) } + let(:exercise) { create(:fibonacci) } + let(:submission) { create(:submission) } permissions :create? do context 'when being part of an exercise' do let(:file) { exercise.files.first } it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), file) + expect(policy).to permit(build(:admin), file) end it 'grants access to authors' do @@ -22,7 +22,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to all other users' do %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), file) + expect(policy).not_to permit(build(factory_name), file) end end end @@ -52,7 +52,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to all other users' do %i[admin external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), file) + expect(policy).not_to permit(build(factory_name), file) end end end @@ -63,7 +63,7 @@ describe CodeOcean::FilePolicy do let(:file) { exercise.files.first } it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), file) + expect(policy).to permit(build(:admin), file) end it 'grants access to authors' do @@ -72,7 +72,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to all other users' do %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), file) + expect(policy).not_to permit(build(factory_name), file) end end end @@ -82,7 +82,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to anyone' do %i[admin external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), file) + expect(policy).not_to permit(build(factory_name), file) end end end diff --git a/spec/policies/codeharbor_link_policy_spec.rb b/spec/policies/codeharbor_link_policy_spec.rb index 90646f9c..550700c1 100644 --- a/spec/policies/codeharbor_link_policy_spec.rb +++ b/spec/policies/codeharbor_link_policy_spec.rb @@ -5,7 +5,7 @@ require 'rails_helper' describe CodeharborLinkPolicy do subject(:policy) { described_class } - let(:codeharbor_link) { FactoryBot.create(:codeharbor_link) } + let(:codeharbor_link) { create(:codeharbor_link) } context 'when CodeHarbor link is enabled' do let(:codeocean_config) { instance_double(CodeOcean::Config) } @@ -20,7 +20,7 @@ describe CodeharborLinkPolicy do permissions(action) do it 'does not grant access any user' do %i[external_user teacher admin].each do |factory_name| - expect(policy).not_to permit(FactoryBot.create(factory_name), codeharbor_link) + expect(policy).not_to permit(create(factory_name), codeharbor_link) end end end @@ -30,12 +30,12 @@ describe CodeharborLinkPolicy do permissions(action) do it 'grants access to teachers' do %i[teacher admin].each do |factory_name| - expect(policy).to permit(FactoryBot.create(factory_name), codeharbor_link) + expect(policy).to permit(create(factory_name), codeharbor_link) end end it 'does not grant access to all other users' do - expect(policy).not_to permit(FactoryBot.create(:external_user), codeharbor_link) + expect(policy).not_to permit(create(:external_user), codeharbor_link) end end end @@ -48,7 +48,7 @@ describe CodeharborLinkPolicy do it 'does not grant access to arbitrary users' do %i[external_user admin teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.create(factory_name), codeharbor_link) + expect(policy).not_to permit(create(factory_name), codeharbor_link) end end end @@ -57,7 +57,7 @@ describe CodeharborLinkPolicy do permissions(:enabled?) do it 'reflects the config option' do %i[external_user admin teacher].each do |factory_name| - expect(policy).to permit(FactoryBot.create(factory_name), codeharbor_link) + expect(policy).to permit(create(factory_name), codeharbor_link) end end end @@ -75,7 +75,7 @@ describe CodeharborLinkPolicy do permissions(:enabled?) do it 'reflects the config option' do %i[external_user admin teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.create(factory_name), codeharbor_link) + expect(policy).not_to permit(create(factory_name), codeharbor_link) end end end diff --git a/spec/policies/consumer_policy_spec.rb b/spec/policies/consumer_policy_spec.rb index bd9071a6..4f4164fb 100644 --- a/spec/policies/consumer_policy_spec.rb +++ b/spec/policies/consumer_policy_spec.rb @@ -8,9 +8,9 @@ describe ConsumerPolicy do %i[create? destroy? edit? index? new? show? update?].each do |action| permissions(action) do it 'grants access to admins only' do - expect(policy).to permit(FactoryBot.build(:admin), Consumer.new) + expect(policy).to permit(build(:admin), Consumer.new) %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), Consumer.new) + expect(policy).not_to permit(build(factory_name), Consumer.new) end end end diff --git a/spec/policies/execution_environment_policy_spec.rb b/spec/policies/execution_environment_policy_spec.rb index 588f76db..651e9555 100644 --- a/spec/policies/execution_environment_policy_spec.rb +++ b/spec/policies/execution_environment_policy_spec.rb @@ -5,20 +5,20 @@ require 'rails_helper' describe ExecutionEnvironmentPolicy do subject(:policy) { described_class } - let(:execution_environment) { FactoryBot.build(:ruby) } + let(:execution_environment) { build(:ruby) } [:index?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), execution_environment) + expect(policy).to permit(build(:admin), execution_environment) end it 'grants access to teachers' do - expect(policy).to permit(FactoryBot.build(:teacher), execution_environment) + expect(policy).to permit(build(:teacher), execution_environment) end it 'does not grant access to external users' do - expect(policy).not_to permit(FactoryBot.build(:external_user), execution_environment) + expect(policy).not_to permit(build(:external_user), execution_environment) end end end @@ -26,7 +26,7 @@ describe ExecutionEnvironmentPolicy do %i[execute_command? shell? statistics? show?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), execution_environment) + expect(policy).to permit(build(:admin), execution_environment) end it 'grants access to authors' do @@ -35,7 +35,7 @@ describe ExecutionEnvironmentPolicy do it 'does not grant access to all other users' do %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), execution_environment) + expect(policy).not_to permit(build(factory_name), execution_environment) end end end @@ -44,7 +44,7 @@ describe ExecutionEnvironmentPolicy do %i[destroy? edit? update? new? create?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), execution_environment) + expect(policy).to permit(build(:admin), execution_environment) end it 'does not grant access to authors' do @@ -53,7 +53,7 @@ describe ExecutionEnvironmentPolicy do it 'does not grant access to all other users' do %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), execution_environment) + expect(policy).not_to permit(build(factory_name), execution_environment) end end end @@ -61,7 +61,7 @@ describe ExecutionEnvironmentPolicy do permissions(:sync_all_to_runner_management?) do it 'grants access to the admin' do - expect(policy).to permit(FactoryBot.build(:admin)) + expect(policy).to permit(build(:admin)) end shared_examples 'it does not grant access' do |user| @@ -71,7 +71,7 @@ describe ExecutionEnvironmentPolicy do end %i[teacher external_user].each do |user| - include_examples 'it does not grant access', FactoryBot.build(user) + include_examples 'it does not grant access', FactoryBot.build(user) # rubocop:disable RSpec/FactoryBot/SyntaxMethods end end end diff --git a/spec/policies/exercise_policy_spec.rb b/spec/policies/exercise_policy_spec.rb index 3047d573..8fad12a6 100644 --- a/spec/policies/exercise_policy_spec.rb +++ b/spec/policies/exercise_policy_spec.rb @@ -5,13 +5,13 @@ require 'rails_helper' describe ExercisePolicy do subject(:policy) { described_class } - let(:exercise) { FactoryBot.build(:dummy, public: true) } + let(:exercise) { build(:dummy, public: true) } permissions :batch_update? do it 'grants access to admins only' do - expect(policy).to permit(FactoryBot.build(:admin), exercise) + expect(policy).to permit(build(:admin), exercise) %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), exercise) + expect(policy).not_to permit(build(factory_name), exercise) end end end @@ -19,15 +19,15 @@ describe ExercisePolicy do %i[create? index? new? statistics? feedback? rfcs_for_exercise?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), exercise) + expect(policy).to permit(build(:admin), exercise) end it 'grants access to teachers' do - expect(policy).to permit(FactoryBot.build(:teacher), exercise) + expect(policy).to permit(build(:teacher), exercise) end it 'does not grant access to external users' do - expect(policy).not_to permit(FactoryBot.build(:external_user), exercise) + expect(policy).not_to permit(build(:external_user), exercise) end end end @@ -35,7 +35,7 @@ describe ExercisePolicy do %i[clone? destroy? edit? update?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), exercise) + expect(policy).to permit(build(:admin), exercise) end it 'grants access to authors' do @@ -44,7 +44,7 @@ describe ExercisePolicy do it 'does not grant access to all other users' do %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), exercise) + expect(policy).not_to permit(build(factory_name), exercise) end end end @@ -60,7 +60,7 @@ describe ExercisePolicy do end context 'when user has codeharbor_link' do - before { user.codeharbor_link = FactoryBot.build(:codeharbor_link) } + before { user.codeharbor_link = build(:codeharbor_link) } it 'grants access' do expect(policy).to permit(user, exercise) @@ -69,14 +69,14 @@ describe ExercisePolicy do end context 'when user is admin' do - let(:user) { FactoryBot.build(:admin) } + let(:user) { build(:admin) } it 'does not grant access' do expect(policy).not_to permit(user, exercise) end context 'when user has codeharbor_link' do - before { user.codeharbor_link = FactoryBot.build(:codeharbor_link) } + before { user.codeharbor_link = build(:codeharbor_link) } it 'grants access' do expect(policy).to permit(user, exercise) @@ -86,14 +86,14 @@ describe ExercisePolicy do %i[external_user teacher].each do |factory_name| context "when user is #{factory_name}" do - let(:user) { FactoryBot.build(factory_name) } + let(:user) { build(factory_name) } it 'does not grant access' do expect(policy).not_to permit(user, exercise) end context 'when user has codeharbor_link' do - before { user.codeharbor_link = FactoryBot.build(:codeharbor_link) } + before { user.codeharbor_link = build(:codeharbor_link) } it 'does not grant access' do expect(policy).not_to permit(user, exercise) @@ -107,7 +107,7 @@ describe ExercisePolicy do [:show?].each do |action| permissions(action) do it 'not grants access to external users' do - expect(policy).not_to permit(FactoryBot.build(:external_user), exercise) + expect(policy).not_to permit(build(:external_user), exercise) end end end @@ -116,7 +116,7 @@ describe ExercisePolicy do permissions(action) do it 'grants access to anyone' do %i[admin external_user teacher].each do |factory_name| - expect(policy).to permit(FactoryBot.build(factory_name), Exercise.new) + expect(policy).to permit(build(factory_name), Exercise.new) end end end @@ -124,14 +124,14 @@ describe ExercisePolicy do describe ExercisePolicy::Scope do describe '#resolve' do - let(:admin) { FactoryBot.create(:admin) } - let(:external_user) { FactoryBot.create(:external_user) } - let(:teacher) { FactoryBot.create(:teacher) } + let(:admin) { create(:admin) } + let(:external_user) { create(:external_user) } + let(:teacher) { create(:teacher) } before do [admin, teacher].each do |user| [true, false].each do |public| - FactoryBot.create(:dummy, public: public, user_id: user.id, user_type: InternalUser.name) + create(:dummy, public: public, user_id: user.id, user_type: InternalUser.name) end end end diff --git a/spec/policies/external_user_policy_spec.rb b/spec/policies/external_user_policy_spec.rb index 82c1452b..5494b6fc 100644 --- a/spec/policies/external_user_policy_spec.rb +++ b/spec/policies/external_user_policy_spec.rb @@ -8,9 +8,9 @@ describe ExternalUserPolicy do %i[create? destroy? edit? new? show? update?].each do |action| permissions(action) do it 'grants access to admins only' do - expect(policy).to permit(FactoryBot.build(:admin), ExternalUser.new) + expect(policy).to permit(build(:admin), ExternalUser.new) %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), ExternalUser.new) + expect(policy).not_to permit(build(factory_name), ExternalUser.new) end end end @@ -19,10 +19,10 @@ describe ExternalUserPolicy do [:index?].each do |action| permissions(action) do it 'grants access to admins and teachers only' do - expect(policy).to permit(FactoryBot.build(:admin), ExternalUser.new) - expect(policy).to permit(FactoryBot.build(:teacher), ExternalUser.new) + expect(policy).to permit(build(:admin), ExternalUser.new) + expect(policy).to permit(build(:teacher), ExternalUser.new) [:external_user].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), ExternalUser.new) + expect(policy).not_to permit(build(factory_name), ExternalUser.new) end end end diff --git a/spec/policies/file_type_policy_spec.rb b/spec/policies/file_type_policy_spec.rb index 2b75f82b..5c6ce645 100644 --- a/spec/policies/file_type_policy_spec.rb +++ b/spec/policies/file_type_policy_spec.rb @@ -5,12 +5,12 @@ require 'rails_helper' describe FileTypePolicy do subject(:policy) { described_class } - let(:file_type) { FactoryBot.build(:dot_rb) } + let(:file_type) { build(:dot_rb) } %i[destroy? edit? update? new? create? index? show?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), file_type) + expect(policy).to permit(build(:admin), file_type) end it 'grants access to authors' do @@ -19,7 +19,7 @@ describe FileTypePolicy do it 'does not grant access to all other users' do %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), file_type) + expect(policy).not_to permit(build(factory_name), file_type) end end end diff --git a/spec/policies/internal_user_policy_spec.rb b/spec/policies/internal_user_policy_spec.rb index fbbf3a0b..1e900eb0 100644 --- a/spec/policies/internal_user_policy_spec.rb +++ b/spec/policies/internal_user_policy_spec.rb @@ -8,9 +8,9 @@ describe InternalUserPolicy do %i[create? edit? index? new? show? update?].each do |action| permissions(action) do it 'grants access to admins only' do - expect(policy).to permit(FactoryBot.build(:admin), InternalUser.new) + expect(policy).to permit(build(:admin), InternalUser.new) %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), InternalUser.new) + expect(policy).not_to permit(build(factory_name), InternalUser.new) end end end @@ -20,16 +20,16 @@ describe InternalUserPolicy do context 'with an admin user' do it 'grants access to no one' do %i[admin external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), FactoryBot.build(:admin)) + expect(policy).not_to permit(build(factory_name), build(:admin)) end end end context 'with a non-admin user' do it 'grants access to admins only' do - expect(policy).to permit(FactoryBot.build(:admin), InternalUser.new) + expect(policy).to permit(build(:admin), InternalUser.new) %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), FactoryBot.build(:teacher)) + expect(policy).not_to permit(build(factory_name), build(:teacher)) end end end diff --git a/spec/policies/submission_policy_spec.rb b/spec/policies/submission_policy_spec.rb index 7d2aa4d6..71bdc3e0 100644 --- a/spec/policies/submission_policy_spec.rb +++ b/spec/policies/submission_policy_spec.rb @@ -8,7 +8,7 @@ describe SubmissionPolicy do permissions :create? do it 'grants access to anyone' do %i[admin external_user teacher].each do |factory_name| - expect(policy).to permit(FactoryBot.build(factory_name), Submission.new) + expect(policy).to permit(build(factory_name), Submission.new) end end end @@ -16,21 +16,21 @@ describe SubmissionPolicy do %i[download_file? render_file? run? score? show? statistics? stop? test?].each do |action| permissions(action) do it 'grants access to admins' do - expect(policy).to permit(FactoryBot.build(:admin), Submission.new) + expect(policy).to permit(build(:admin), Submission.new) end it 'grants access to authors' do - user = FactoryBot.create(:external_user) - expect(policy).to permit(user, FactoryBot.build(:submission, exercise: Exercise.new, user_id: user.id, user_type: user.class.name)) + user = create(:external_user) + expect(policy).to permit(user, build(:submission, exercise: Exercise.new, user_id: user.id, user_type: user.class.name)) end end end permissions :index? do it 'grants access to admins only' do - expect(policy).to permit(FactoryBot.build(:admin), Submission.new) + expect(policy).to permit(build(:admin), Submission.new) %i[external_user teacher].each do |factory_name| - expect(policy).not_to permit(FactoryBot.build(factory_name), Submission.new) + expect(policy).not_to permit(build(factory_name), Submission.new) end end end diff --git a/spec/services/exercise_service/check_external_spec.rb b/spec/services/exercise_service/check_external_spec.rb index f5ee4b97..a8c74c4d 100644 --- a/spec/services/exercise_service/check_external_spec.rb +++ b/spec/services/exercise_service/check_external_spec.rb @@ -7,7 +7,7 @@ describe ExerciseService::CheckExternal do subject(:export_service) { described_class.new(uuid: uuid, codeharbor_link: codeharbor_link) } let(:uuid) { SecureRandom.uuid } - let(:codeharbor_link) { FactoryBot.build(:codeharbor_link) } + let(:codeharbor_link) { build(:codeharbor_link) } it 'assigns uuid' do expect(export_service.instance_variable_get(:@uuid)).to be uuid @@ -22,7 +22,7 @@ describe ExerciseService::CheckExternal do subject(:check_external_service) { described_class.call(uuid: uuid, codeharbor_link: codeharbor_link) } let(:uuid) { SecureRandom.uuid } - let(:codeharbor_link) { FactoryBot.build(:codeharbor_link) } + let(:codeharbor_link) { build(:codeharbor_link) } let(:response) { {}.to_json } before { stub_request(:post, codeharbor_link.check_uuid_url).to_return(body: response) } diff --git a/spec/services/exercise_service/push_external_spec.rb b/spec/services/exercise_service/push_external_spec.rb index 20c07a0a..2a52075f 100644 --- a/spec/services/exercise_service/push_external_spec.rb +++ b/spec/services/exercise_service/push_external_spec.rb @@ -6,8 +6,8 @@ RSpec.describe ExerciseService::PushExternal do describe '.new' do subject(:push_external) { described_class.new(zip: zip, codeharbor_link: codeharbor_link) } - let(:zip) { ProformaService::ExportTask.call(exercise: FactoryBot.build(:dummy)) } - let(:codeharbor_link) { FactoryBot.build(:codeharbor_link) } + let(:zip) { ProformaService::ExportTask.call(exercise: build(:dummy)) } + let(:codeharbor_link) { build(:codeharbor_link) } it 'assigns zip' do expect(push_external.instance_variable_get(:@zip)).to be zip @@ -21,8 +21,8 @@ RSpec.describe ExerciseService::PushExternal do describe '#execute' do subject(:push_external) { described_class.call(zip: zip, codeharbor_link: codeharbor_link) } - let(:zip) { ProformaService::ExportTask.call(exercise: FactoryBot.build(:dummy)) } - let(:codeharbor_link) { FactoryBot.build(:codeharbor_link) } + let(:zip) { ProformaService::ExportTask.call(exercise: build(:dummy)) } + let(:codeharbor_link) { build(:codeharbor_link) } let(:status) { 200 } let(:response) { '' } diff --git a/spec/services/proforma_service/convert_exercise_to_task_spec.rb b/spec/services/proforma_service/convert_exercise_to_task_spec.rb index e7cf793a..b367dda9 100644 --- a/spec/services/proforma_service/convert_exercise_to_task_spec.rb +++ b/spec/services/proforma_service/convert_exercise_to_task_spec.rb @@ -6,7 +6,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do describe '.new' do subject(:convert_to_task) { described_class.new(exercise: exercise) } - let(:exercise) { FactoryBot.build(:dummy) } + let(:exercise) { build(:dummy) } it 'assigns exercise' do expect(convert_to_task.instance_variable_get(:@exercise)).to be exercise @@ -18,7 +18,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do let(:convert_to_task) { described_class.new(exercise: exercise) } let(:exercise) do - FactoryBot.create(:dummy, + create(:dummy, instructions: 'instruction', uuid: SecureRandom.uuid, files: files + tests) @@ -46,7 +46,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do context 'when exercise has a mainfile' do let(:files) { [file] } - let(:file) { FactoryBot.build(:file) } + let(:file) { build(:file) } it 'creates a task-file with the correct attributes' do expect(task.files.first).to have_attributes( @@ -64,7 +64,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do context 'when exercise has a regular file' do let(:files) { [file] } - let(:file) { FactoryBot.build(:file, role: 'regular_file', hidden: hidden, read_only: read_only) } + let(:file) { build(:file, role: 'regular_file', hidden: hidden, read_only: read_only) } let(:hidden) { true } let(:read_only) { true } @@ -98,7 +98,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do end context 'when file has an attachment' do - let(:file) { FactoryBot.build(:file, :image, role: 'regular_file') } + let(:file) { build(:file, :image, role: 'regular_file') } it 'creates a task-file with the correct attributes' do expect(task.files.first).to have_attributes( @@ -112,7 +112,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do context 'when exercise has a file with role reference implementation' do let(:files) { [file] } - let(:file) { FactoryBot.build(:file, role: 'reference_implementation') } + let(:file) { build(:file, role: 'reference_implementation') } it 'creates a task with one model-solution' do expect(task.model_solutions).to have(1).item @@ -140,7 +140,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do end context 'when exercise has multiple files with role reference implementation' do - let(:files) { FactoryBot.build_list(:file, 2, role: 'reference_implementation') } + let(:files) { build_list(:file, 2, role: 'reference_implementation') } it 'creates a task with two model-solutions' do expect(task.model_solutions).to have(2).items @@ -149,7 +149,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do context 'when exercise has a test' do let(:tests) { [test_file] } - let(:test_file) { FactoryBot.build(:test_file) } + let(:test_file) { build(:test_file) } # let(:file) { FactoryBot.build(:codeharbor_test_file) } it 'creates a task with one test' do @@ -178,7 +178,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do end context 'when exercise_file is not hidden' do - let(:test_file) { FactoryBot.create(:test_file, hidden: false) } + let(:test_file) { create(:test_file, hidden: false) } it 'creates the test file with the correct attribute' do expect(task.tests.first.files.first).to have_attributes(visible: 'yes') @@ -187,7 +187,7 @@ RSpec.describe ProformaService::ConvertExerciseToTask do end context 'when exercise has multiple tests' do - let(:tests) { FactoryBot.build_list(:test_file, 2) } + let(:tests) { build_list(:test_file, 2) } it 'creates a task with two tests' do expect(task.tests).to have(2).items diff --git a/spec/services/proforma_service/convert_task_to_exercise_spec.rb b/spec/services/proforma_service/convert_task_to_exercise_spec.rb index 05c612e4..02ae9224 100644 --- a/spec/services/proforma_service/convert_task_to_exercise_spec.rb +++ b/spec/services/proforma_service/convert_task_to_exercise_spec.rb @@ -9,8 +9,8 @@ describe ProformaService::ConvertTaskToExercise do subject(:convert_to_exercise_service) { described_class.new(task: task, user: user, exercise: exercise) } let(:task) { Proforma::Task.new } - let(:user) { FactoryBot.build(:teacher) } - let(:exercise) { FactoryBot.build(:dummy) } + let(:user) { build(:teacher) } + let(:exercise) { build(:dummy) } it 'assigns task' do expect(convert_to_exercise_service.instance_variable_get(:@task)).to be task @@ -28,7 +28,7 @@ describe ProformaService::ConvertTaskToExercise do describe '#execute' do subject(:convert_to_exercise_service) { described_class.call(task: task, user: user, exercise: exercise) } - before { FactoryBot.create(:dot_txt) } + before { create(:dot_txt) } let(:task) do Proforma::Task.new( @@ -44,7 +44,7 @@ describe ProformaService::ConvertTaskToExercise do tests: tests ) end - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } let(:files) { [] } let(:tests) { [] } let(:model_solutions) { [] } @@ -301,7 +301,7 @@ describe ProformaService::ConvertTaskToExercise do context 'when exercise is set' do let(:exercise) do - FactoryBot.create( + create( :files, title: 'exercise-title', description: 'exercise-description', diff --git a/spec/services/proforma_service/export_task_spec.rb b/spec/services/proforma_service/export_task_spec.rb index 157094de..78e91f36 100644 --- a/spec/services/proforma_service/export_task_spec.rb +++ b/spec/services/proforma_service/export_task_spec.rb @@ -6,7 +6,7 @@ describe ProformaService::ExportTask do describe '.new' do subject(:export_task) { described_class.new(exercise: exercise) } - let(:exercise) { FactoryBot.build(:dummy) } + let(:exercise) { build(:dummy) } it 'assigns exercise' do expect(export_task.instance_variable_get(:@exercise)).to be exercise @@ -25,7 +25,7 @@ describe ProformaService::ExportTask do subject(:export_task) { described_class.call(exercise: exercise) } let(:task) { Proforma::Task.new } - let(:exercise) { FactoryBot.build(:dummy) } + let(:exercise) { build(:dummy) } let(:exporter) { instance_double('Proforma::Exporter', perform: 'zip') } before do diff --git a/spec/services/proforma_service/import_spec.rb b/spec/services/proforma_service/import_spec.rb index a38212b3..1f27d731 100644 --- a/spec/services/proforma_service/import_spec.rb +++ b/spec/services/proforma_service/import_spec.rb @@ -7,7 +7,7 @@ describe ProformaService::Import do subject(:import_service) { described_class.new(zip: zip, user: user) } let(:zip) { Tempfile.new('proforma_test_zip_file') } - let(:user) { FactoryBot.build(:teacher) } + let(:user) { build(:teacher) } it 'assigns zip' do expect(import_service.instance_variable_get(:@zip)).to be zip @@ -21,11 +21,11 @@ describe ProformaService::Import do describe '#execute' do subject(:import_service) { described_class.call(zip: zip_file, user: import_user) } - let(:user) { FactoryBot.create(:teacher) } + let(:user) { create(:teacher) } let(:import_user) { user } let(:zip_file) { Tempfile.new('proforma_test_zip_file', encoding: 'ascii-8bit') } let(:exercise) do - FactoryBot.create(:dummy, + create(:dummy, instructions: 'instruction', execution_environment: execution_environment, files: files + tests, @@ -34,7 +34,7 @@ describe ProformaService::Import do end let(:uuid) { nil } - let(:execution_environment) { FactoryBot.build(:java) } + let(:execution_environment) { build(:java) } let(:files) { [] } let(:tests) { [] } let(:exporter) { ProformaService::ExportTask.call(exercise: exercise.reload).string } @@ -78,12 +78,12 @@ describe ProformaService::Import do context 'when exercise has a mainfile' do let(:files) { [file] } - let(:file) { FactoryBot.build(:file) } + let(:file) { build(:file) } it { is_expected.to be_an_equal_exercise_as exercise } context 'when the mainfile is very large' do - let(:file) { FactoryBot.build(:file, content: 'test' * (10**5)) } + let(:file) { build(:file, content: 'test' * (10**5)) } it { is_expected.to be_an_equal_exercise_as exercise } end @@ -91,12 +91,12 @@ describe ProformaService::Import do context 'when exercise has a regular file' do let(:files) { [file] } - let(:file) { FactoryBot.build(:file, role: 'regular_file') } + let(:file) { build(:file, role: 'regular_file') } it { is_expected.to be_an_equal_exercise_as exercise } context 'when file has an attachment' do - let(:file) { FactoryBot.build(:file, :image, role: 'regular_file') } + let(:file) { build(:file, :image, role: 'regular_file') } it { is_expected.to be_an_equal_exercise_as exercise } end @@ -104,26 +104,26 @@ describe ProformaService::Import do context 'when exercise has a file with role reference implementation' do let(:files) { [file] } - let(:file) { FactoryBot.build(:file, role: 'reference_implementation', read_only: true) } + let(:file) { build(:file, role: 'reference_implementation', read_only: true) } it { is_expected.to be_an_equal_exercise_as exercise } end context 'when exercise has multiple files with role reference implementation' do - let(:files) { FactoryBot.build_list(:file, 2, role: 'reference_implementation', read_only: true) } + let(:files) { build_list(:file, 2, role: 'reference_implementation', read_only: true) } it { is_expected.to be_an_equal_exercise_as exercise } end context 'when exercise has a test' do let(:tests) { [test] } - let(:test) { FactoryBot.build(:test_file) } + let(:test) { build(:test_file) } it { is_expected.to be_an_equal_exercise_as exercise } end context 'when exercise has multiple tests' do - let(:tests) { FactoryBot.build_list(:test_file, 2) } + let(:tests) { build_list(:test_file, 2) } it { is_expected.to be_an_equal_exercise_as exercise } end @@ -153,7 +153,7 @@ describe ProformaService::Import do end context 'when another user imports the exercise' do - let(:import_user) { FactoryBot.create(:teacher) } + let(:import_user) { create(:teacher) } it 'raises a proforma error' do expect { imported_exercise.save! }.to raise_error Proforma::ExerciseNotOwned diff --git a/spec/support/factory_bot.rb b/spec/support/factory_bot.rb index 891db349..f7642003 100644 --- a/spec/support/factory_bot.rb +++ b/spec/support/factory_bot.rb @@ -4,3 +4,7 @@ require 'factory_bot' # Use "old" FactoryBot default to allow auto-creating associations for #build FactoryBot.use_parent_strategy = false + +RSpec.configure do |config| + config.include FactoryBot::Syntax::Methods +end diff --git a/spec/uploaders/file_uploader_spec.rb b/spec/uploaders/file_uploader_spec.rb index 4638bfff..3bca7f14 100644 --- a/spec/uploaders/file_uploader_spec.rb +++ b/spec/uploaders/file_uploader_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe FileUploader do let(:file_path) { Rails.root.join('db/seeds/fibonacci/exercise.rb') } - let(:uploader) { described_class.new(FactoryBot.create(:file)) } + let(:uploader) { described_class.new(create(:file)) } before { uploader.store!(File.open(file_path, 'r')) } diff --git a/spec/views/execution_environments/shell.html.slim_spec.rb b/spec/views/execution_environments/shell.html.slim_spec.rb index 30cec4ef..43afee27 100644 --- a/spec/views/execution_environments/shell.html.slim_spec.rb +++ b/spec/views/execution_environments/shell.html.slim_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe 'execution_environments/shell.html.slim' do - let(:execution_environment) { FactoryBot.create(:ruby) } + let(:execution_environment) { create(:ruby) } before do assign(:execution_environment, execution_environment) diff --git a/spec/views/exercises/implement.html.slim_spec.rb b/spec/views/exercises/implement.html.slim_spec.rb index 66d7a035..74d4da3d 100644 --- a/spec/views/exercises/implement.html.slim_spec.rb +++ b/spec/views/exercises/implement.html.slim_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' describe 'exercises/implement.html.slim' do - let(:exercise) { FactoryBot.create(:fibonacci) } + let(:exercise) { create(:fibonacci) } let(:files) { exercise.files.visible } let(:non_binary_files) { files.reject {|file| file.file_type.binary? } } before do - assign(:current_user, FactoryBot.create(:admin)) + assign(:current_user, create(:admin)) assign(:exercise, exercise) assign(:files, files) assign(:paths, []) diff --git a/yarn.lock b/yarn.lock index 988e1fb9..524d39d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,32 +2,32 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: - "@babel/highlight" "^7.16.0" + "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4": version "7.16.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== "@babel/core@^7.15.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.5.tgz#924aa9e1ae56e1e55f7184c8bf073a50d8677f5c" - integrity sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" + integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helpers" "^7.16.5" - "@babel/parser" "^7.16.5" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.7" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -35,59 +35,59 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.5.tgz#26e1192eb8f78e0a3acaf3eede3c6fc96d22bedf" - integrity sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA== +"@babel/generator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.7.tgz#b42bf46a3079fa65e1544135f32e7958f048adbb" + integrity sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" - integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz#a8429d064dce8207194b8bf05a70a9ea828746af" - integrity sha512-3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.0" - "@babel/types" "^7.16.0" + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz#5d1bcd096792c1ebec6249eebc6358eec55d0cad" - integrity sha512-NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg== +"@babel/helper-create-class-features-plugin@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz#9c5b34b53a01f2097daf10678d65135c1b9f84ba" + integrity sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-member-expression-to-functions" "^7.16.5" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" - integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48" + integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-annotate-as-pure" "^7.16.7" regexpu-core "^4.7.1" "@babel/helper-define-polyfill-provider@^0.3.0": @@ -104,109 +104,109 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz#f6a7f38b3c6d8b07c88faea083c46c09ef5451b8" - integrity sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg== +"@babel/helper-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-explode-assignable-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" - integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz#1bc9f7e87354e86f8879c67b316cb03d3dc2caab" - integrity sha512-7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw== +"@babel/helper-member-expression-to-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" + integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz#530ebf6ea87b500f60840578515adda2af470a29" - integrity sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ== +"@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz#afe37a45f39fce44a3d50a7958129ea5b1a5c074" - integrity sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/helper-remap-async-to-generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz#e706646dc4018942acb4b29f7e185bc246d65ac3" - integrity sha512-X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw== +"@babel/helper-remap-async-to-generator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.7.tgz#5ce2416990d55eb6e099128338848ae8ffa58a9a" + integrity sha512-C3o117GnP/j/N2OWo+oepeWbFEKRfNaay+F1Eo5Mj3A1SRjyx+qaFhm23nlipub7Cjv2azdUUiDH+VlpdwUFRg== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-wrap-function" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-replace-supers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz#96d3988bd0ab0a2d22c88c6198c3d3234ca25326" - integrity sha512-ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ== +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== dependencies: - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-member-expression-to-functions" "^7.16.5" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" @@ -215,199 +215,199 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helper-wrap-function@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz#0158fca6f6d0889c3fee8a6ed6e5e07b9b54e41f" - integrity sha512-2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA== +"@babel/helper-wrap-function@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.7.tgz#8ddf9eaa770ed43de4bc3687f3f3b0d6d5ecf014" + integrity sha512-7a9sABeVwcunnztZZ7WTgSw6jVYLzM1wua0Z4HIXm9S3/HC96WKQTkFgGEaj5W06SHHihPJ6Le6HzS5cGOQMNw== dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/helpers@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.5.tgz#29a052d4b827846dd76ece16f565b9634c554ebd" - integrity sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw== +"@babel/helpers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" + integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== +"@babel/highlight@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" + integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.0", "@babel/parser@^7.16.5": - version "7.16.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.6.tgz#8f194828193e8fa79166f34a4b4e52f3e769a314" - integrity sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ== +"@babel/parser@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e" + integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" - integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" - integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" -"@babel/plugin-proposal-async-generator-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz#fd3bd7e0d98404a3d4cbca15a72d533f8c9a2f67" - integrity sha512-C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA== +"@babel/plugin-proposal-async-generator-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.7.tgz#739adc1212a9e4892de440cd7dfffb06172df78d" + integrity sha512-TTXBT3A5c11eqRzaC6beO6rlFT3Mo9C2e8eB44tTr52ESXSK2CIc2fOp1ynpAwQA8HhBMho+WXhMHWlAe3xkpw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-remap-async-to-generator" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.7" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz#3269f44b89122110f6339806e05d43d84106468a" - integrity sha512-pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A== +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-class-static-block@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz#df58ab015a7d3b0963aafc8f20792dcd834952a9" - integrity sha512-EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ== +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" + integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz#2e0d19d5702db4dcb9bc846200ca02f2e9d60e9e" - integrity sha512-P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ== +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz#3b4dd28378d1da2fea33e97b9f25d1c2f5bf1ac9" - integrity sha512-i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw== +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz#1e726930fca139caab6b084d232a9270d9d16f9c" - integrity sha512-QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ== +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz#df1f2e4b5a0ec07abf061d2c18e53abc237d3ef5" - integrity sha512-xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA== +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz#652555bfeeeee2d2104058c6225dc6f75e2d0f07" - integrity sha512-YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz#edcb6379b6cf4570be64c45965d8da7a2debf039" - integrity sha512-DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw== +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz#f30f80dacf7bc1404bf67f99c8d9c01665e830ad" - integrity sha512-UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw== +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" + integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== dependencies: "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.5" + "@babel/plugin-transform-parameters" "^7.16.7" -"@babel/plugin-proposal-optional-catch-binding@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz#1a5405765cf589a11a33a1fd75b2baef7d48b74e" - integrity sha512-ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ== +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.16.0", "@babel/plugin-proposal-optional-chaining@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz#a5fa61056194d5059366c0009cb9a9e66ed75c1f" - integrity sha512-kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A== +"@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz#2086f7d78c1b0c712d49b5c3fbc2d1ca21a7ee12" - integrity sha512-+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA== +"@babel/plugin-proposal-private-methods@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz#e418e3aa6f86edd6d327ce84eff188e479f571e0" + integrity sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-private-property-in-object@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz#a42d4b56005db3d405b12841309dbca647e7a21b" - integrity sha512-+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA== +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-create-class-features-plugin" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.16.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz#35fe753afa7c572f322bd068ff3377bde0f37080" - integrity sha512-s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg== +"@babel/plugin-proposal-unicode-property-regex@^7.16.7", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -507,293 +507,294 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz#04c18944dd55397b521d9d7511e791acea7acf2d" - integrity sha512-8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ== +"@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-async-to-generator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz#89c9b501e65bb14c4579a6ce9563f859de9b34e4" - integrity sha512-TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w== +"@babel/plugin-transform-async-to-generator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.7.tgz#646e1262ac341b587ff5449844d4492dbb10ac4b" + integrity sha512-pFEfjnK4DfXCfAlA5I98BYdDJD8NltMzx19gt6DAmfE+2lXRfPUoa0/5SUjT4+TDE1W/rcxU/1lgN55vpAjjdg== dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-remap-async-to-generator" "^7.16.5" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.7" -"@babel/plugin-transform-block-scoped-functions@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz#af087494e1c387574260b7ee9b58cdb5a4e9b0b0" - integrity sha512-BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw== +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-block-scoping@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz#b91f254fe53e210eabe4dd0c40f71c0ed253c5e7" - integrity sha512-JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ== +"@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-classes@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz#6acf2ec7adb50fb2f3194dcd2909dbd056dcf216" - integrity sha512-DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA== +"@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.0" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-replace-supers" "^7.16.5" - "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-optimise-call-expression" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz#2af91ebf0cceccfcc701281ada7cfba40a9b322a" - integrity sha512-n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg== +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz#89ebc87499ac4a81b897af53bb5d3eed261bd568" - integrity sha512-GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg== +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" + integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-dotall-regex@^7.16.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz#b40739c00b6686820653536d6d143e311de67936" - integrity sha512-iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw== +"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-duplicate-keys@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz#2450f2742325412b746d7d005227f5e8973b512a" - integrity sha512-81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg== +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-exponentiation-operator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz#36e261fa1ab643cfaf30eeab38e00ed1a76081e2" - integrity sha512-12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA== +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-for-of@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz#9b544059c6ca11d565457c0ff1f08e13ce225261" - integrity sha512-+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw== +"@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-function-name@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz#6896ebb6a5538a75d6a4086a277752f655a7bd15" - integrity sha512-Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ== +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== dependencies: - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz#af392b90e3edb2bd6dc316844cbfd6b9e009d320" - integrity sha512-B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw== +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-member-expression-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz#4bd6ecdc11932361631097b779ca5c7570146dd5" - integrity sha512-d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ== +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-modules-amd@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz#92c0a3e83f642cb7e75fada9ab497c12c2616527" - integrity sha512-oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ== +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz#4ee03b089536f076b2773196529d27c32b9d7bde" - integrity sha512-ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ== +"@babel/plugin-transform-modules-commonjs@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.7.tgz#fd119e6a433c527d368425b45df361e1e95d3c1a" + integrity sha512-h2RP2kE7He1ZWKyAlanMZrAbdv+Acw1pA8dQZhE025WJZE2z0xzFADAinXA9fxd5bn7JnM+SdOGcndGx1ARs9w== dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz#07078ba2e3cc94fbdd06836e355c246e98ad006b" - integrity sha512-53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA== +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" + integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== dependencies: - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz#caa9c53d636fb4e3c99fd35a4c9ba5e5cd7e002e" - integrity sha512-qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw== +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== dependencies: - "@babel/helper-module-transforms" "^7.16.5" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz#4afd8cdee377ce3568f4e8a9ee67539b69886a3c" - integrity sha512-/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.7.tgz#749d90d94e73cf62c60a0cc8d6b94d29305a81f2" + integrity sha512-kFy35VwmwIQwCjwrAQhl3+c/kr292i4KdLPKp5lPH03Ltc51qnFlIADoyPxc/6Naz3ok3WdYKg+KK6AH+D4utg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" -"@babel/plugin-transform-new-target@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz#759ea9d6fbbc20796056a5d89d13977626384416" - integrity sha512-ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg== +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-object-super@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz#8ccd9a1bcd3e7732ff8aa1702d067d8cd70ce380" - integrity sha512-tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg== +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-replace-supers" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" -"@babel/plugin-transform-parameters@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz#4fc74b18a89638bd90aeec44a11793ecbe031dde" - integrity sha512-B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA== +"@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-property-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz#58f1465a7202a2bb2e6b003905212dd7a79abe3f" - integrity sha512-+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg== +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz#704cc6d8dd3dd4758267621ab7b36375238cef13" - integrity sha512-2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg== +"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" + integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz#db95e98799675e193dc2b47d3e72a7c0651d0c30" - integrity sha512-aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw== +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.15.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.5.tgz#0cc3f01d69f299d5a42cd9ec43b92ea7a777b8db" - integrity sha512-gxpfS8XQWDbQ8oP5NcmpXxtEgCJkbO+W9VhZlOhr0xPyVaRjAQPOv7ZDj9fg0d5s9+NiVvMCE6gbkEkcsxwGRw== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.7.tgz#1da184cb83a2287a01956c10c60e66dd503c18aa" + integrity sha512-2FoHiSAWkdq4L06uaDN3rS43i6x28desUVxq+zAFuE6kbWYQeiLPJI5IC7Sg9xKYVcrBKSQkVUfH6aeQYbl9QA== dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.4.0" babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz#ccb60b1a23b799f5b9a14d97c5bc81025ffd96d7" - integrity sha512-ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg== +"@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-spread@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz#912b06cff482c233025d3e69cf56d3e8fa166c29" - integrity sha512-5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw== +"@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" -"@babel/plugin-transform-sticky-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz#593579bb2b5a8adfbe02cb43823275d9098f75f9" - integrity sha512-usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg== +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-template-literals@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz#343651385fd9923f5aa2275ca352c5d9183e1773" - integrity sha512-gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ== +"@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-typeof-symbol@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz#a1d1bf2c71573fe30965d0e4cd6a3291202e20ed" - integrity sha512-ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ== +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-escapes@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz#80507c225af49b4f4ee647e2a0ce53d2eeff9e85" - integrity sha512-shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q== +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-unicode-regex@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz#ac84d6a1def947d71ffb832426aa53b83d7ed49e" - integrity sha512-GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw== +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.0" - "@babel/helper-plugin-utils" "^7.16.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.15.0": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.5.tgz#2e94d922f4a890979af04ffeb6a6b4e44ba90847" - integrity sha512-MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.7.tgz#c491088856d0b3177822a2bf06cb74d76327aa56" + integrity sha512-urX3Cee4aOZbRWOSa3mKPk0aqDikfILuo+C7qq7HY0InylGNZ1fekq9jmlr3pLWwZHF4yD7heQooc2Pow2KMyQ== dependencies: "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.3" - "@babel/helper-plugin-utils" "^7.16.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" - "@babel/plugin-proposal-async-generator-functions" "^7.16.5" - "@babel/plugin-proposal-class-properties" "^7.16.5" - "@babel/plugin-proposal-class-static-block" "^7.16.5" - "@babel/plugin-proposal-dynamic-import" "^7.16.5" - "@babel/plugin-proposal-export-namespace-from" "^7.16.5" - "@babel/plugin-proposal-json-strings" "^7.16.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.16.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.5" - "@babel/plugin-proposal-numeric-separator" "^7.16.5" - "@babel/plugin-proposal-object-rest-spread" "^7.16.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.5" - "@babel/plugin-proposal-optional-chaining" "^7.16.5" - "@babel/plugin-proposal-private-methods" "^7.16.5" - "@babel/plugin-proposal-private-property-in-object" "^7.16.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.5" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-async-generator-functions" "^7.16.7" + "@babel/plugin-proposal-class-properties" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-dynamic-import" "^7.16.7" + "@babel/plugin-proposal-export-namespace-from" "^7.16.7" + "@babel/plugin-proposal-json-strings" "^7.16.7" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.7" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.7" + "@babel/plugin-proposal-numeric-separator" "^7.16.7" + "@babel/plugin-proposal-object-rest-spread" "^7.16.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-private-methods" "^7.16.7" + "@babel/plugin-proposal-private-property-in-object" "^7.16.7" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -808,40 +809,40 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.16.5" - "@babel/plugin-transform-async-to-generator" "^7.16.5" - "@babel/plugin-transform-block-scoped-functions" "^7.16.5" - "@babel/plugin-transform-block-scoping" "^7.16.5" - "@babel/plugin-transform-classes" "^7.16.5" - "@babel/plugin-transform-computed-properties" "^7.16.5" - "@babel/plugin-transform-destructuring" "^7.16.5" - "@babel/plugin-transform-dotall-regex" "^7.16.5" - "@babel/plugin-transform-duplicate-keys" "^7.16.5" - "@babel/plugin-transform-exponentiation-operator" "^7.16.5" - "@babel/plugin-transform-for-of" "^7.16.5" - "@babel/plugin-transform-function-name" "^7.16.5" - "@babel/plugin-transform-literals" "^7.16.5" - "@babel/plugin-transform-member-expression-literals" "^7.16.5" - "@babel/plugin-transform-modules-amd" "^7.16.5" - "@babel/plugin-transform-modules-commonjs" "^7.16.5" - "@babel/plugin-transform-modules-systemjs" "^7.16.5" - "@babel/plugin-transform-modules-umd" "^7.16.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.5" - "@babel/plugin-transform-new-target" "^7.16.5" - "@babel/plugin-transform-object-super" "^7.16.5" - "@babel/plugin-transform-parameters" "^7.16.5" - "@babel/plugin-transform-property-literals" "^7.16.5" - "@babel/plugin-transform-regenerator" "^7.16.5" - "@babel/plugin-transform-reserved-words" "^7.16.5" - "@babel/plugin-transform-shorthand-properties" "^7.16.5" - "@babel/plugin-transform-spread" "^7.16.5" - "@babel/plugin-transform-sticky-regex" "^7.16.5" - "@babel/plugin-transform-template-literals" "^7.16.5" - "@babel/plugin-transform-typeof-symbol" "^7.16.5" - "@babel/plugin-transform-unicode-escapes" "^7.16.5" - "@babel/plugin-transform-unicode-regex" "^7.16.5" + "@babel/plugin-transform-arrow-functions" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.7" + "@babel/plugin-transform-block-scoped-functions" "^7.16.7" + "@babel/plugin-transform-block-scoping" "^7.16.7" + "@babel/plugin-transform-classes" "^7.16.7" + "@babel/plugin-transform-computed-properties" "^7.16.7" + "@babel/plugin-transform-destructuring" "^7.16.7" + "@babel/plugin-transform-dotall-regex" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-exponentiation-operator" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-function-name" "^7.16.7" + "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-member-expression-literals" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.16.7" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.7" + "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-object-super" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-property-literals" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@babel/plugin-transform-unicode-escapes" "^7.16.7" + "@babel/plugin-transform-unicode-regex" "^7.16.7" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.16.0" + "@babel/types" "^7.16.7" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.4.0" babel-plugin-polyfill-regenerator "^0.3.0" @@ -860,43 +861,43 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.5.tgz#7f3e34bf8bdbbadf03fbb7b1ea0d929569c9487a" - integrity sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" + integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== +"@babel/template@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.5": - version "7.16.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.5.tgz#d7d400a8229c714a59b87624fc67b0f1fbd4b2b3" - integrity sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.7.tgz#dac01236a72c2560073658dd1a285fe4e0865d76" + integrity sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ== dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.5" - "@babel/helper-environment-visitor" "^7.16.5" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.5" - "@babel/types" "^7.16.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.16.7" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.4.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.4.4": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.7.tgz#4ed19d51f840ed4bd5645be6ce40775fecf03159" + integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" + "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" "@csstools/convert-colors@^1.4.0": @@ -1045,9 +1046,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.2.tgz#a4c07d47ff737e8ee7e586fe636ff0e1ddff070a" - integrity sha512-JepeIUPFDARgIs0zD/SKPgFsJEAF0X5/qO80llx59gOxFTboS9Amv3S+QfB7lqBId5sFXJ99BN0J6zFRvL9dDA== + version "17.0.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.7.tgz#4a53d8332bb65a45470a2f9e2611f1ced637a5cb" + integrity sha512-1QUk+WAUD4t8iR+Oj+UgI8oJa6yyxaB8a8pHaC8uqM6RrS1qbL7bf3Pwl5rHv0psm2CuDErgho6v5N+G+5fwtQ== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1828,9 +1829,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.30001286: - version "1.0.30001291" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz#08a8d2cfea0b2cf2e1d94dd795942d0daef6108c" - integrity sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA== + version "1.0.30001295" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001295.tgz#68a60f8f0664f342b2835c5d8898b4faea7b3d51" + integrity sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2119,17 +2120,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.18.0, core-js-compat@^3.19.1: - version "3.20.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.0.tgz#fd704640c5a213816b6d10ec0192756111e2c9d1" - integrity sha512-relrah5h+sslXssTTOkvqcC/6RURifB0W5yhYBdBkaPYa5/2KBMiog3XiD+s3TwEHWxInWVv4Jx2/Lw0vng+IQ== + version "3.20.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.2.tgz#d1ff6936c7330959b46b2e08b122a8b14e26140b" + integrity sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg== dependencies: browserslist "^4.19.1" semver "7.0.0" core-js@^3.16.2: - version "3.20.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.0.tgz#1c5ac07986b8d15473ab192e45a2e115a4a95b79" - integrity sha512-KjbKU7UEfg4YPpskMtMXPhUKn7m/1OdTHTVjy09ScR2LVaoUXe8Jh0UdvN2EKUR6iKTJph52SJP95mAB0MnVLQ== + version "3.20.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.2.tgz#46468d8601eafc8b266bd2dd6bf9dee622779581" + integrity sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw== core-util-is@~1.0.0: version "1.0.3" @@ -2874,9 +2875,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.17: - version "1.4.25" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz#ce95e6678f8c6893ae892c7e95a5000e83f1957f" - integrity sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg== + version "1.4.31" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.31.tgz#8d5ccc3f8253cd142b07afaa84f200fd33a7f2a6" + integrity sha512-t3XVQtk+Frkv6aTD4RRk0OqosU+VLe1dQFW83MDer78ZD6a52frgXuYOIsLYTQiH2Lm+JB2OKYcn7zrX+YGAiQ== elliptic@^6.5.3: version "6.5.4" @@ -5131,9 +5132,9 @@ picocolors@^1.0.0: integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^2.0.0, pify@^2.3.0: version "2.3.0" @@ -5785,9 +5786,9 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.7" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz#48404830a635113a71fd79397de8209ed05a66fc" - integrity sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA== + version "6.0.8" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" + integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -6270,9 +6271,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.45.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.45.1.tgz#fa03951f924d1ba5762949567eaf660e608a1ab0" - integrity sha512-pwPRiq29UR0o4X3fiQyCtrESldXvUQAAE0QmcJTpsI4kuHHcLzZ54M1oNBVIXybQv8QF2zfkpFcTxp8ta97dUA== + version "1.45.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.45.2.tgz#130b428c1692201cfa181139835d6fc378a33323" + integrity sha512-cKfs+F9AMPAFlbbTXNsbGvg3y58nV0mXA3E94jqaySKcC8Kq3/8983zVKQ0TLMUrHw7hF9Tnd3Bz9z5Xgtrl9g== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7082,9 +7083,9 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== + version "1.5.4" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.4.tgz#e4f645a7e2a0852cc8a66b14b292a3e9a11a97fd" + integrity sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From 0f45e5a354124e7c878bad9849043ca40ed8b116 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 6 Jan 2022 09:57:53 +0100 Subject: [PATCH 58/62] Update bundle --- Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d414b084..3d934dca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -260,13 +260,13 @@ GEM method_source (1.0.0) mime-types (3.4.1) mime-types-data (~> 3.2015) - mime-types-data (3.2021.1115) + mime-types-data (3.2022.0105) mimemagic (0.4.3) nokogiri (~> 1) rake mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.6.1) + mini_portile2 (2.5.3) minitest (5.15.0) minitest-autotest (1.1.1) minitest-server (~> 1.0) @@ -286,8 +286,8 @@ GEM netrc (0.11.0) newrelic_rpm (8.2.0) nio4r (2.5.8) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) + nokogiri (1.11.7) + mini_portile2 (~> 2.5.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) @@ -327,7 +327,7 @@ GEM rack-pjax (1.1.0) nokogiri (~> 1.5) rack (>= 1.1) - rack-proxy (0.7.0) + rack-proxy (0.7.2) rack rack-test (1.1.0) rack (>= 1.0, < 3) @@ -462,14 +462,14 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (4.8.1) + sentry-rails (4.8.3) railties (>= 5.0) - sentry-ruby-core (~> 4.8.1) - sentry-ruby (4.8.1) + sentry-ruby-core (~> 4.8.3) + sentry-ruby (4.8.3) concurrent-ruby (~> 1.0, >= 1.0.2) - faraday (>= 1.0) - sentry-ruby-core (= 4.8.1) - sentry-ruby-core (4.8.1) + faraday (~> 1.0) + sentry-ruby-core (= 4.8.3) + sentry-ruby-core (4.8.3) concurrent-ruby faraday set (1.0.2) @@ -508,7 +508,7 @@ GEM telegraf (2.0.0) influxdb temple (0.8.2) - thor (1.1.0) + thor (1.2.1) tilt (2.0.10) turbolinks (5.2.1) turbolinks-source (~> 5.2) From ea4c0d569beafd7fd52ab6def20e4d0fad1b98c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jan 2022 03:01:06 +0000 Subject: [PATCH 59/62] Bump faraday from 1.8.0 to 1.9.3 Bumps [faraday](https://github.com/lostisland/faraday) from 1.8.0 to 1.9.3. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v1.8.0...v1.9.3) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3d934dca..debb4477 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -168,25 +168,29 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (1.8.0) + faraday (1.9.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) + faraday-net_http_persistent (~> 1.0) faraday-patron (~> 1.0) faraday-rack (~> 1.0) - multipart-post (>= 1.2, < 3) + faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) faraday-httpclient (1.0.1) + faraday-multipart (1.0.2) + multipart-post (>= 1.2, < 3) faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) faraday-rack (1.0.0) + faraday-retry (1.0.3) faye-websocket (0.11.1) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) From 7c95eabe45f930807c5bc6faf20e750ceb71692d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jan 2022 03:02:09 +0000 Subject: [PATCH 60/62] Bump highlight.js from 11.3.1 to 11.4.0 Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 11.3.1 to 11.4.0. - [Release notes](https://github.com/highlightjs/highlight.js/releases) - [Changelog](https://github.com/highlightjs/highlight.js/blob/main/CHANGES.md) - [Commits](https://github.com/highlightjs/highlight.js/compare/11.3.1...11.4.0) --- updated-dependencies: - dependency-name: highlight.js dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 1ef05feb..28f1d570 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "chosen-js": "^1.8.7", "d3": "^7.2.1", "d3-tip": "^0.9.1", - "highlight.js": "^11.3.1", + "highlight.js": "^11.4.0", "jquery": "^3.6.0", "jquery-ui": "^1.13.0", "jquery-ujs": "^1.2.3", diff --git a/yarn.lock b/yarn.lock index 524d39d5..9abadde3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3581,10 +3581,10 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^11.3.1: - version "11.3.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.3.1.tgz#813078ef3aa519c61700f84fe9047231c5dc3291" - integrity sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw== +highlight.js@^11.4.0: + version "11.4.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.4.0.tgz#34ceadd49e1596ee5aba3d99346cdfd4845ee05a" + integrity sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA== hmac-drbg@^1.0.1: version "1.0.1" From 7b045aefd402c21c676fd3cc1e9157c771da9943 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jan 2022 03:00:58 +0000 Subject: [PATCH 61/62] Bump rubocop-rails from 2.13.0 to 2.13.1 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.13.0 to 2.13.1. - [Release notes](https://github.com/rubocop/rubocop-rails/releases) - [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.13.0...v2.13.1) --- updated-dependencies: - dependency-name: rubocop-rails dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index debb4477..3d5c38f2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -440,7 +440,7 @@ GEM rubocop-performance (1.13.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.13.0) + rubocop-rails (2.13.1) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) From c05b8d9ad9104ac47f0a3445a534935e58106eb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jan 2022 03:02:36 +0000 Subject: [PATCH 62/62] Bump d3 from 7.2.1 to 7.3.0 Bumps [d3](https://github.com/d3/d3) from 7.2.1 to 7.3.0. - [Release notes](https://github.com/d3/d3/releases) - [Changelog](https://github.com/d3/d3/blob/main/CHANGES.md) - [Commits](https://github.com/d3/d3/compare/v7.2.1...v7.3.0) --- updated-dependencies: - dependency-name: d3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 28f1d570..cb51ff19 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "bootstrap": "^4.6.1", "bootswatch": "^4.6.0", "chosen-js": "^1.8.7", - "d3": "^7.2.1", + "d3": "^7.3.0", "d3-tip": "^0.9.1", "highlight.js": "^11.4.0", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 9abadde3..9349c050 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2628,10 +2628,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.2.1.tgz#97eafaa6fc8cd7c564c3ace1e6678cbecf63f3ea" - integrity sha512-E/5sP0aeK6YPXI/+4QlefvBFgmcyR2jYftId0PrYWv4Y/gW3c3thp1XG4rQzF0eUwV9tR1x05X5eWuJ6rQXvew== +d3@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.3.0.tgz#f3d5a22c1f658952a6491cf50132f5267ed7a40a" + integrity sha512-MDRLJCMK232OJQRqGljQ/gCxtB8k3/sLKFjftMjzPB3nKVUODpdW9Rb3vcq7U8Ka5YKoZkAmp++Ur6I+6iNWIw== dependencies: d3-array "3" d3-axis "3"