From 5d93525d670e31e687fd247c1d312e340ad4cf12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 03:01:36 +0000 Subject: [PATCH 001/329] Bump bootsnap from 1.9.3 to 1.9.4 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.9.3 to 1.9.4. - [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.3...v1.9.4) --- 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 3d5c38f2..bf49cc5a 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.3) + bootsnap (1.9.4) msgpack (~> 1.0) bootstrap-will_paginate (1.0.0) will_paginate From de797ad80c04491d85c3382eabd675df8dc37e6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 03:02:09 +0000 Subject: [PATCH 002/329] Bump sentry-rails from 4.8.3 to 4.9.0 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.8.3 to 4.9.0. - [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.3...4.9.0) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3d5c38f2..58c18111 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -184,7 +184,7 @@ GEM faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) faraday-httpclient (1.0.1) - faraday-multipart (1.0.2) + faraday-multipart (1.0.3) multipart-post (>= 1.2, < 3) faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) @@ -466,14 +466,14 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (4.8.3) + sentry-rails (4.9.0) railties (>= 5.0) - sentry-ruby-core (~> 4.8.3) - sentry-ruby (4.8.3) + sentry-ruby-core (~> 4.9.0) + sentry-ruby (4.9.0) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (~> 1.0) - sentry-ruby-core (= 4.8.3) - sentry-ruby-core (4.8.3) + sentry-ruby-core (= 4.9.0) + sentry-ruby-core (4.9.0) concurrent-ruby faraday set (1.0.2) From 89dafdf093373f3ebce012981676787ce3e67d7d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 03:02:47 +0000 Subject: [PATCH 003/329] Bump newrelic_rpm from 8.2.0 to 8.3.0 Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 8.2.0 to 8.3.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.2.0...8.3.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 3d5c38f2..8f6077a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -288,7 +288,7 @@ GEM net-http-persistent (4.0.1) connection_pool (~> 2.2) netrc (0.11.0) - newrelic_rpm (8.2.0) + newrelic_rpm (8.3.0) nio4r (2.5.8) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) From 0a6ae91db8a53d16004174dda65f9da45d0439cd Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 12 Jan 2022 20:38:34 +0100 Subject: [PATCH 004/329] Introduce per_page parameter for custom page size --- app/controllers/consumers_controller.rb | 2 +- app/controllers/error_template_attributes_controller.rb | 2 +- app/controllers/error_templates_controller.rb | 2 +- app/controllers/execution_environments_controller.rb | 2 +- app/controllers/exercise_collections_controller.rb | 2 +- app/controllers/exercises_controller.rb | 4 ++-- app/controllers/external_users_controller.rb | 2 +- app/controllers/file_templates_controller.rb | 2 +- app/controllers/file_types_controller.rb | 2 +- app/controllers/internal_users_controller.rb | 2 +- app/controllers/proxy_exercises_controller.rb | 2 +- app/controllers/request_for_comments_controller.rb | 8 ++++---- app/controllers/study_groups_controller.rb | 2 +- app/controllers/submissions_controller.rb | 2 +- app/controllers/tags_controller.rb | 2 +- app/controllers/tips_controller.rb | 2 +- app/helpers/application_helper.rb | 8 ++++++++ 17 files changed, 28 insertions(+), 20 deletions(-) diff --git a/app/controllers/consumers_controller.rb b/app/controllers/consumers_controller.rb index a58424a0..2bf09d5b 100644 --- a/app/controllers/consumers_controller.rb +++ b/app/controllers/consumers_controller.rb @@ -28,7 +28,7 @@ class ConsumersController < ApplicationController private :consumer_params def index - @consumers = Consumer.paginate(page: params[:page]) + @consumers = Consumer.paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/error_template_attributes_controller.rb b/app/controllers/error_template_attributes_controller.rb index 2a89d00c..8540ce1d 100644 --- a/app/controllers/error_template_attributes_controller.rb +++ b/app/controllers/error_template_attributes_controller.rb @@ -12,7 +12,7 @@ class ErrorTemplateAttributesController < ApplicationController # GET /error_template_attributes.json def index @error_template_attributes = ErrorTemplateAttribute.all.order('important DESC', :key, - :id).paginate(page: params[:page]) + :id).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/error_templates_controller.rb b/app/controllers/error_templates_controller.rb index a246c312..b66d48d5 100644 --- a/app/controllers/error_templates_controller.rb +++ b/app/controllers/error_templates_controller.rb @@ -11,7 +11,7 @@ class ErrorTemplatesController < ApplicationController # GET /error_templates # GET /error_templates.json def index - @error_templates = ErrorTemplate.all.order(:execution_environment_id, :name).paginate(page: params[:page]) + @error_templates = ErrorTemplate.all.order(:execution_environment_id, :name).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/execution_environments_controller.rb b/app/controllers/execution_environments_controller.rb index bc05e631..ae640521 100644 --- a/app/controllers/execution_environments_controller.rb +++ b/app/controllers/execution_environments_controller.rb @@ -121,7 +121,7 @@ class ExecutionEnvironmentsController < ApplicationController private :execution_environment_params def index - @execution_environments = ExecutionEnvironment.all.includes(:user).order(:name).paginate(page: params[:page]) + @execution_environments = ExecutionEnvironment.all.includes(:user).order(:name).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/exercise_collections_controller.rb b/app/controllers/exercise_collections_controller.rb index 598125dd..40d49e64 100644 --- a/app/controllers/exercise_collections_controller.rb +++ b/app/controllers/exercise_collections_controller.rb @@ -6,7 +6,7 @@ class ExerciseCollectionsController < ApplicationController before_action :set_exercise_collection, only: %i[show edit update destroy statistics] def index - @exercise_collections = ExerciseCollection.all.paginate(page: params[:page]) + @exercise_collections = ExerciseCollection.all.paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 02c184b4..abde6329 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -103,7 +103,7 @@ raise: false def feedback authorize! - @feedbacks = @exercise.user_exercise_feedbacks.paginate(page: params[:page]) + @feedbacks = @exercise.user_exercise_feedbacks.paginate(page: params[:page], per_page: per_page_param) @submissions = @feedbacks.map do |feedback| feedback.exercise.final_submission(feedback.user) end @@ -410,7 +410,7 @@ working_time_accumulated: working_time_accumulated}) def index @search = policy_scope(Exercise).ransack(params[:q]) - @exercises = @search.result.includes(:execution_environment, :user).order(:title).paginate(page: params[:page]) + @exercises = @search.result.includes(:execution_environment, :user).order(:title).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/external_users_controller.rb b/app/controllers/external_users_controller.rb index 5b38d180..2072d195 100644 --- a/app/controllers/external_users_controller.rb +++ b/app/controllers/external_users_controller.rb @@ -10,7 +10,7 @@ class ExternalUsersController < ApplicationController def index @search = ExternalUser.ransack(params[:q]) - @users = @search.result.in_study_group_of(current_user).includes(:consumer).paginate(page: params[:page]) + @users = @search.result.in_study_group_of(current_user).includes(:consumer).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/file_templates_controller.rb b/app/controllers/file_templates_controller.rb index 43e9596b..9852a68a 100644 --- a/app/controllers/file_templates_controller.rb +++ b/app/controllers/file_templates_controller.rb @@ -19,7 +19,7 @@ class FileTemplatesController < ApplicationController # GET /file_templates # GET /file_templates.json def index - @file_templates = FileTemplate.all.order(:file_type_id).paginate(page: params[:page]) + @file_templates = FileTemplate.all.order(:file_type_id).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/file_types_controller.rb b/app/controllers/file_types_controller.rb index 7c557536..2f7fa37d 100644 --- a/app/controllers/file_types_controller.rb +++ b/app/controllers/file_types_controller.rb @@ -33,7 +33,7 @@ class FileTypesController < ApplicationController private :file_type_params def index - @file_types = FileType.all.includes(:user).order(:name).paginate(page: params[:page]) + @file_types = FileType.all.includes(:user).order(:name).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/internal_users_controller.rb b/app/controllers/internal_users_controller.rb index 7db31c43..8f38092d 100644 --- a/app/controllers/internal_users_controller.rb +++ b/app/controllers/internal_users_controller.rb @@ -63,7 +63,7 @@ class InternalUsersController < ApplicationController def index @search = InternalUser.ransack(params[:q]) - @users = @search.result.includes(:consumer).order(:name).paginate(page: params[:page]) + @users = @search.result.includes(:consumer).order(:name).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/proxy_exercises_controller.rb b/app/controllers/proxy_exercises_controller.rb index d6f0863a..b591c3d4 100644 --- a/app/controllers/proxy_exercises_controller.rb +++ b/app/controllers/proxy_exercises_controller.rb @@ -51,7 +51,7 @@ class ProxyExercisesController < ApplicationController def index @search = policy_scope(ProxyExercise).ransack(params[:q]) - @proxy_exercises = @search.result.order(:title).paginate(page: params[:page]) + @proxy_exercises = @search.result.order(:title).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/request_for_comments_controller.rb b/app/controllers/request_for_comments_controller.rb index c673f842..1c245814 100644 --- a/app/controllers/request_for_comments_controller.rb +++ b/app/controllers/request_for_comments_controller.rb @@ -23,7 +23,7 @@ class RequestForCommentsController < ApplicationController .where(exercises: {unpublished: false}) .includes(submission: [:study_group]) .order('created_at DESC') - .paginate(page: params[:page], total_entries: @search.result.length) + .paginate(page: params[:page], per_page: per_page_param, total_entries: @search.result.length) authorize! end @@ -36,7 +36,7 @@ class RequestForCommentsController < ApplicationController .ransack(params[:q]) @request_for_comments = @search.result .order('created_at DESC') - .paginate(page: params[:page]) + .paginate(page: params[:page], per_page: per_page_param) authorize! render 'index' end @@ -50,7 +50,7 @@ class RequestForCommentsController < ApplicationController .ransack(params[:q]) @request_for_comments = @search.result .order('last_comment DESC') - .paginate(page: params[:page]) + .paginate(page: params[:page], per_page: per_page_param) authorize! render 'index' end @@ -65,7 +65,7 @@ class RequestForCommentsController < ApplicationController @request_for_comments = @search.result .joins(:exercise) .order('last_comment DESC') - .paginate(page: params[:page]) + .paginate(page: params[:page], per_page: per_page_param) # let the exercise decide, whether its rfcs should be visible authorize(exercise) render 'index' diff --git a/app/controllers/study_groups_controller.rb b/app/controllers/study_groups_controller.rb index 87b8f8ea..de84a945 100644 --- a/app/controllers/study_groups_controller.rb +++ b/app/controllers/study_groups_controller.rb @@ -7,7 +7,7 @@ class StudyGroupsController < ApplicationController def index @search = policy_scope(StudyGroup).ransack(params[:q]) - @study_groups = @search.result.includes(:consumer).order(:name).paginate(page: params[:page]) + @study_groups = @search.result.includes(:consumer).order(:name).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index de9cf368..c1e6418b 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -65,7 +65,7 @@ class SubmissionsController < ApplicationController def index @search = Submission.ransack(params[:q]) - @submissions = @search.result.includes(:exercise, :user).paginate(page: params[:page]) + @submissions = @search.result.includes(:exercise, :user).paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 5b95df11..6a60099b 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -28,7 +28,7 @@ class TagsController < ApplicationController private :tag_params def index - @tags = Tag.all.paginate(page: params[:page]) + @tags = Tag.all.paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/controllers/tips_controller.rb b/app/controllers/tips_controller.rb index 7afb4baf..7d808d08 100644 --- a/app/controllers/tips_controller.rb +++ b/app/controllers/tips_controller.rb @@ -34,7 +34,7 @@ class TipsController < ApplicationController private :tip_params def index - @tips = Tip.all.paginate(page: params[:page]) + @tips = Tip.all.paginate(page: params[:page], per_page: per_page_param) authorize! end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c3cd19ec..4411bd54 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -34,6 +34,14 @@ module ApplicationHelper tag.i(nil, class: 'fa fa-times') end + def per_page_param + if params[:per_page] + [params[:per_page].to_i, 100].min + else + WillPaginate.per_page + end + end + def progress_bar(value) tag.div(class: value ? 'progress' : 'disabled progress') do tag.div(value ? "#{value}%" : '', 'aria-valuemax': 100, 'aria-valuemin': 0, From a88efccd398718321630ace10a111cdca8324ebe Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 12 Jan 2022 20:34:10 +0100 Subject: [PATCH 005/329] Update bundle --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 98d48dbf..a920cde3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -158,8 +158,8 @@ GEM multi_json domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - ecma-re-validator (0.3.0) - regexp_parser (~> 2.0) + ecma-re-validator (0.4.0) + regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) excon (0.89.0) @@ -194,7 +194,7 @@ GEM faye-websocket (0.11.1) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) - ffi (1.15.4) + ffi (1.15.5) forgery (0.8.1) globalid (1.0.0) activesupport (>= 5.0) @@ -383,7 +383,7 @@ GEM method_source rake (>= 0.13) thor (~> 1.0) - rainbow (3.0.0) + rainbow (3.1.1) rake (13.0.6) ransack (2.5.0) activerecord (>= 5.2.4) From be9ee0159bc6e7f4d0eceb5e7f80e51e67b33f15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jan 2022 09:44:23 +0000 Subject: [PATCH 006/329] Bump follow-redirects from 1.14.6 to 1.14.7 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.6 to 1.14.7. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.6...v1.14.7) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9349c050..93fdaba1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3287,9 +3287,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" - integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== + version "1.14.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" + integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== for-in@^1.0.2: version "1.0.2" From 21009c7eaa6c057e7552d46b4450d7858a979735 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 13 Jan 2022 16:02:25 +0100 Subject: [PATCH 007/329] Fix exercise statistics when external users share the same ID as internal users --- app/controllers/exercises_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index abde6329..8f50385d 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -506,8 +506,8 @@ working_time_accumulated: working_time_accumulated}) 'AND FALSE' end query = "SELECT user_id, MAX(score) AS maximum_score, COUNT(id) AS runs - FROM submissions WHERE exercise_id = #{@exercise.id} #{additional_filter} GROUP BY - user_id;" + FROM submissions WHERE exercise_id = #{@exercise.id} #{additional_filter} AND user_type = 'ExternalUser' + GROUP BY user_id;" ApplicationRecord.connection.execute(query).each do |tuple| user_statistics[tuple['user_id'].to_i] = tuple end From 89747ef41acd36487e085f94f51289e7e3557f90 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 13 Jan 2022 16:03:25 +0100 Subject: [PATCH 008/329] Bundle update --- Gemfile.lock | 2 +- yarn.lock | 224 ++++++++++++++++++++++++++------------------------- 2 files changed, 116 insertions(+), 110 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a920cde3..382d6fe7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -162,7 +162,7 @@ GEM regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) - excon (0.89.0) + excon (0.90.0) factory_bot (6.2.0) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) diff --git a/yarn.lock b/yarn.lock index 9349c050..456ad00d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,10 +9,10 @@ dependencies: "@babel/highlight" "^7.16.7" -"@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/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" + integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== "@babel/core@^7.15.0": version "7.16.7" @@ -35,12 +35,12 @@ semver "^6.3.0" source-map "^0.5.0" -"@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== +"@babel/generator@^7.16.7", "@babel/generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" + integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.16.8" jsesc "^2.5.1" source-map "^0.5.0" @@ -181,14 +181,14 @@ 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.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== +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" "@babel/helper-replace-supers@^7.16.7": version "7.16.7" @@ -232,15 +232,15 @@ 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.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== +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== dependencies: "@babel/helper-function-name" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" "@babel/helpers@^7.16.7": version "7.16.7" @@ -260,10 +260,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@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/parser@^7.16.7", "@babel/parser@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" + integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -281,13 +281,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-proposal-optional-chaining" "^7.16.7" -"@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== +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== dependencies: "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.16.7": @@ -514,14 +514,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-remap-async-to-generator" "^7.16.7" + "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions@^7.16.7": version "7.16.7" @@ -627,10 +627,10 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@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== +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" + integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== dependencies: "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -656,10 +656,10 @@ "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.16.7" @@ -707,14 +707,14 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.15.0": - 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== + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz#3339368701103edae708f0fba9e4bfb70a3e5872" + integrity sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ== dependencies: "@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-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" @@ -770,17 +770,17 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.15.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.7.tgz#c491088856d0b3177822a2bf06cb74d76327aa56" - integrity sha512-urX3Cee4aOZbRWOSa3mKPk0aqDikfILuo+C7qq7HY0InylGNZ1fekq9jmlr3pLWwZHF4yD7heQooc2Pow2KMyQ== + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.8.tgz#e682fa0bcd1cf49621d64a8956318ddfb9a05af9" + integrity sha512-9rNKgVCdwHb3z1IlbMyft6yIXIeP3xz6vWvGaLHrJThuEIqWfHb0DNBH9VuTgnDfdbUDhkmkvMZS/YMCtP7Elg== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.16.8" "@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-async-generator-functions" "^7.16.8" "@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" @@ -810,7 +810,7 @@ "@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.7" - "@babel/plugin-transform-async-to-generator" "^7.16.7" + "@babel/plugin-transform-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions" "^7.16.7" "@babel/plugin-transform-block-scoping" "^7.16.7" "@babel/plugin-transform-classes" "^7.16.7" @@ -824,10 +824,10 @@ "@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-commonjs" "^7.16.8" "@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-named-capturing-groups-regex" "^7.16.8" "@babel/plugin-transform-new-target" "^7.16.7" "@babel/plugin-transform-object-super" "^7.16.7" "@babel/plugin-transform-parameters" "^7.16.7" @@ -842,11 +842,11 @@ "@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.7" + "@babel/types" "^7.16.8" babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.19.1" + core-js-compat "^3.20.2" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -876,26 +876,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@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== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c" + integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" + "@babel/generator" "^7.16.8" "@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" + "@babel/parser" "^7.16.8" + "@babel/types" "^7.16.8" debug "^4.1.0" globals "^11.1.0" -"@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== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.4.4": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" + integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -1046,9 +1046,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - 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== + version "17.0.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b" + integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1451,13 +1451,13 @@ babel-plugin-polyfill-corejs2@^0.3.0: "@babel/helper-define-polyfill-provider" "^0.3.0" semver "^6.1.1" -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== +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz#f81371be3fe499d39e074e272a1ef86533f3d268" + integrity sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.0" - core-js-compat "^3.18.0" + core-js-compat "^3.20.0" babel-plugin-polyfill-regenerator@^0.3.0: version "0.3.0" @@ -1829,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.30001295" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001295.tgz#68a60f8f0664f342b2835c5d8898b4faea7b3d51" - integrity sha512-lSP16vcyC0FEy0R4ECc9duSPoKoZy+YkpGkue9G4D81OfPnliopaZrU10+qtPdT8PbGXad/PNx43TIQrOmJZSQ== + version "1.0.30001299" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz#d753bf6444ed401eb503cbbe17aa3e1451b5a68c" + integrity sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2119,7 +2119,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.1: +core-js-compat@^3.20.0, core-js-compat@^3.20.2: 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== @@ -2573,9 +2573,9 @@ d3-selection@^1.3.0: integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== d3-shape@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.0.1.tgz#9ccdfb28fd9b0d12f2d8aec234cd5c4a9ea27931" - integrity sha512-HNZNEQoDhuCrDWEc/BMbF/hKtzMZVoe64TvisFLDp2Iyj0UShB/E6/lBsLlJTfBMbYgftHj90cXJ0SEitlE6Xw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.1.0.tgz#c8a495652d83ea6f524e482fca57aa3f8bc32556" + integrity sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ== dependencies: d3-path "1 - 3" @@ -2875,9 +2875,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.17: - 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== + version "1.4.44" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz#8a41923afdd6ef5ddabe001626036ba5d1d64ae6" + integrity sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw== elliptic@^6.5.3: version "6.5.4" @@ -3287,9 +3287,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" - integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== + version "1.14.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" + integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== for-in@^1.0.2: version "1.0.2" @@ -3480,9 +3480,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== hammerjs@^2.0.8: version "2.0.8" @@ -3939,10 +3939,10 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.2.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" @@ -5095,7 +5095,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.6: +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -6171,12 +6171,13 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.21.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" + integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" ret@~0.1.10: version "0.1.15" @@ -6271,9 +6272,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.45.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.45.2.tgz#130b428c1692201cfa181139835d6fc378a33323" - integrity sha512-cKfs+F9AMPAFlbbTXNsbGvg3y58nV0mXA3E94jqaySKcC8Kq3/8983zVKQ0TLMUrHw7hF9Tnd3Bz9z5Xgtrl9g== + version "1.48.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.48.0.tgz#b53cfccc1b8ab4be375cc54f306fda9d4711162c" + integrity sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6317,9 +6318,9 @@ select-hose@^2.0.0: integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^1.10.8: - version "1.10.11" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + version "1.10.14" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" + integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== dependencies: node-forge "^0.10.0" @@ -6791,6 +6792,11 @@ supports-color@^7.0.0: dependencies: has-flag "^4.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + svgo@^1.0.0: version "1.3.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" From 73a079c41dc622ace00ef778a7bd957adf7bcb1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jan 2022 03:01:19 +0000 Subject: [PATCH 009/329] Bump listen from 3.7.0 to 3.7.1 Bumps [listen](https://github.com/guard/listen) from 3.7.0 to 3.7.1. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.7.0...v3.7.1) --- updated-dependencies: - dependency-name: listen 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 382d6fe7..d6698255 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -251,7 +251,7 @@ GEM kaminari-core (1.2.2) kramdown (2.3.1) rexml - listen (3.7.0) + listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) loofah (2.13.0) From 61bbc9c878af4299553895fbbc4d72d104c0c735 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jan 2022 03:00:43 +0000 Subject: [PATCH 010/329] Bump rubocop-performance from 1.13.1 to 1.13.2 Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.13.1 to 1.13.2. - [Release notes](https://github.com/rubocop/rubocop-performance/releases) - [Changelog](https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-performance/compare/v1.13.1...v1.13.2) --- updated-dependencies: - dependency-name: rubocop-performance 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 d6698255..a83a5dec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -437,7 +437,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.15.1) parser (>= 3.0.1.1) - rubocop-performance (1.13.1) + rubocop-performance (1.13.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) rubocop-rails (2.13.1) From f8426fd9cc0954cb584bdb22da80fb0cfa2f2aea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jan 2022 03:02:23 +0000 Subject: [PATCH 011/329] Bump sentry-ruby from 4.9.0 to 4.9.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.9.0 to 4.9.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.9.0...4.9.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 d6698255..43049926 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -469,11 +469,11 @@ GEM sentry-rails (4.9.0) railties (>= 5.0) sentry-ruby-core (~> 4.9.0) - sentry-ruby (4.9.0) + sentry-ruby (4.9.1) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (~> 1.0) - sentry-ruby-core (= 4.9.0) - sentry-ruby-core (4.9.0) + sentry-ruby-core (= 4.9.1) + sentry-ruby-core (4.9.1) concurrent-ruby faraday set (1.0.2) From 01af2ad24ab4d9cbc39423d2f9bb587753441067 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jan 2022 03:07:42 +0000 Subject: [PATCH 012/329] Bump rubocop-rails from 2.13.1 to 2.13.2 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.13.1 to 2.13.2. - [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.1...v2.13.2) --- 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 a83a5dec..c016cf46 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -440,7 +440,7 @@ GEM rubocop-performance (1.13.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.13.1) + rubocop-rails (2.13.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) From 716028d594d9851c188883a5b435d75ff38806ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jan 2022 03:00:51 +0000 Subject: [PATCH 013/329] Bump sentry-rails from 4.9.0 to 4.9.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.9.0 to 4.9.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.9.0...4.9.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 22c1cdfa..31aa14fc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -466,9 +466,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (4.9.0) + sentry-rails (4.9.1) railties (>= 5.0) - sentry-ruby-core (~> 4.9.0) + sentry-ruby-core (~> 4.9.1) sentry-ruby (4.9.1) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (~> 1.0) From f3f7d6da33b42ba45c724bacd26fbffea29ff0c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jan 2022 03:01:52 +0000 Subject: [PATCH 014/329] Bump bootsnap from 1.9.4 to 1.10.1 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.9.4 to 1.10.1. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.9.4...v1.10.1) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 22c1cdfa..aeabaf5c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,8 +109,8 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.9.4) - msgpack (~> 1.0) + bootsnap (1.10.1) + msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate builder (3.2.4) From b00fc2ebe9d47b66cfdab7c64dc175f33fdc7d19 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 19 Jan 2022 08:55:59 +0100 Subject: [PATCH 015/329] Bundle update --- Gemfile.lock | 8 ++--- yarn.lock | 86 ++++++++++++++++++++++++++-------------------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 37d97dde..c2709dde 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -29,7 +29,7 @@ GIT GEM remote: https://rubygems.org/ specs: - ZenTest (4.12.0) + ZenTest (4.12.1) actioncable (6.1.4.4) actionpack (= 6.1.4.4) activesupport (= 6.1.4.4) @@ -411,7 +411,7 @@ GEM rspec-expectations (>= 2.99.0.beta1) rspec-core (3.10.1) rspec-support (~> 3.10.0) - rspec-expectations (3.10.1) + rspec-expectations (3.10.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.10.0) rspec-mocks (3.10.2) @@ -426,9 +426,9 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.10.3) - rubocop (1.24.1) + rubocop (1.25.0) parallel (~> 1.10) - parser (>= 3.0.0.0) + parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml diff --git a/yarn.lock b/yarn.lock index 456ad00d..8943ce07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -90,10 +90,10 @@ "@babel/helper-annotate-as-pure" "^7.16.7" regexpu-core "^4.7.1" -"@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== +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -1046,9 +1046,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b" - integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg== + version "17.0.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab" + integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1443,28 +1443,28 @@ babel-plugin-macros@^2.8.0: resolve "^1.12.0" 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== + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz#f81371be3fe499d39e074e272a1ef86533f3d268" - integrity sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ== + version "0.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060" + integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" core-js-compat "^3.20.0" 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== + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.0" + "@babel/helper-define-polyfill-provider" "^0.3.1" balanced-match@^1.0.0: version "1.0.2" @@ -1829,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.30001299" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz#d753bf6444ed401eb503cbbe17aa3e1451b5a68c" - integrity sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw== + version "1.0.30001300" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz#11ab6c57d3eb6f964cba950401fd00a146786468" + integrity sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -1848,9 +1848,9 @@ chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: supports-color "^5.3.0" "chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -2120,17 +2120,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.20.0, core-js-compat@^3.20.2: - 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== + version "3.20.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6" + integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw== dependencies: browserslist "^4.19.1" semver "7.0.0" core-js@^3.16.2: - version "3.20.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.2.tgz#46468d8601eafc8b266bd2dd6bf9dee622779581" - integrity sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw== + version "3.20.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" + integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== core-util-is@~1.0.0: version "1.0.3" @@ -2875,9 +2875,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.17: - version "1.4.44" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz#8a41923afdd6ef5ddabe001626036ba5d1d64ae6" - integrity sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw== + version "1.4.48" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz#1948b5227aa0ca1ed690945eae1adbe9e7904575" + integrity sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA== elliptic@^6.5.3: version "6.5.4" @@ -6079,9 +6079,9 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + version "1.4.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" + integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" @@ -6272,9 +6272,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.48.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.48.0.tgz#b53cfccc1b8ab4be375cc54f306fda9d4711162c" - integrity sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw== + version "1.49.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.0.tgz#65ec1b1d9a6bc1bae8d2c9d4b392c13f5d32c078" + integrity sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6549,9 +6549,9 @@ source-list-map@^2.0.0: 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== + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-resolve@^0.5.0: version "0.5.3" From 11c3a888c2ae94c94a78350199b3ee7715b6f46b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 19 Jan 2022 08:57:07 +0100 Subject: [PATCH 016/329] Fix rubocop offenses --- app/controllers/code_ocean/files_controller.rb | 2 +- app/controllers/exercises_controller.rb | 2 +- app/helpers/application_helper.rb | 2 +- app/helpers/pagedown_form_builder.rb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/code_ocean/files_controller.rb b/app/controllers/code_ocean/files_controller.rb index 77ce4212..79331f6a 100644 --- a/app/controllers/code_ocean/files_controller.rb +++ b/app/controllers/code_ocean/files_controller.rb @@ -28,7 +28,7 @@ module CodeOcean yield if block_given? path = options[:path].try(:call) || @object respond_with_valid_object(format, notice: t('shared.object_created', model: @object.class.model_name.human), -path: path, status: :created) + path: path, status: :created) else filename = "#{@object.path || ''}/#{@object.name || ''}#{@object.file_type.try(:file_extension) || ''}" format.html do diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 8f50385d..1e3d7258 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -21,7 +21,7 @@ class ExercisesController < ApplicationController only: %i[import_exercise import_uuid_check export_external_confirm export_external_check] skip_after_action :verify_authorized, only: %i[import_exercise import_uuid_check export_external_confirm] skip_after_action :verify_policy_scoped, only: %i[import_exercise import_uuid_check export_external_confirm], -raise: false + raise: false def authorize! authorize(@exercise || @exercises) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4411bd54..4f46e81c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -45,7 +45,7 @@ module ApplicationHelper def progress_bar(value) tag.div(class: value ? 'progress' : 'disabled progress') do tag.div(value ? "#{value}%" : '', 'aria-valuemax': 100, 'aria-valuemin': 0, -'aria-valuenow': value, class: 'progress-bar progress-bar-striped', role: 'progressbar', style: "width: #{[value || 0, 100].min}%;") + 'aria-valuenow': value, class: 'progress-bar progress-bar-striped', role: 'progressbar', style: "width: #{[value || 0, 100].min}%;") end end diff --git a/app/helpers/pagedown_form_builder.rb b/app/helpers/pagedown_form_builder.rb index 6b1ec5c6..ed4a31c4 100644 --- a/app/helpers/pagedown_form_builder.rb +++ b/app/helpers/pagedown_form_builder.rb @@ -28,7 +28,7 @@ class PagedownFormBuilder < ActionView::Helpers::FormBuilder def wmd_preview @template.tag.div(nil, class: 'wmd-preview', - id: "wmd-preview-#{base_id}") + id: "wmd-preview-#{base_id}") end def show_wmd_preview? From bb877ac2234c4f165ab7b12055bc40a914234f91 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 19 Jan 2022 08:57:29 +0100 Subject: [PATCH 017/329] Update comment for UserGroupSeparator (Java21) --- lib/user_group_separator.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/user_group_separator.rb b/lib/user_group_separator.rb index 25634d04..c82dead0 100644 --- a/lib/user_group_separator.rb +++ b/lib/user_group_separator.rb @@ -2,12 +2,12 @@ class UserGroupSeparator # Different user groups for the Java21 course based on the user_id - # 0: show_tips_intervention && no_b - # 1: show_break_intervention && no_b - # 2: show_rfc_intervention && no_b - # 3: show_tips_intervention && show_b - # 4: show_break_intervention && show_b - # 5: show_rfc_intervention && show_b + # 0: show_tips_intervention && show_community_solution + # 1: show_break_intervention && show_community_solution + # 2: show_rfc_intervention && show_community_solution + # 3: show_tips_intervention && no_community_solution + # 4: show_break_intervention && no_community_solution + # 5: show_rfc_intervention && no_community_solution # separates user into 33% tips interventions, 33% break intervention, 33% rfc intervention def self.get_intervention_group(user_id) From 16364b5b24c338892dcc152a5c2f88a820224160 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jan 2022 03:00:53 +0000 Subject: [PATCH 018/329] Bump sentry-ruby from 4.9.1 to 4.9.2 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.9.1 to 4.9.2. - [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.9.1...4.9.2) --- 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 c2709dde..4a551b36 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -469,11 +469,11 @@ GEM sentry-rails (4.9.1) railties (>= 5.0) sentry-ruby-core (~> 4.9.1) - sentry-ruby (4.9.1) + sentry-ruby (4.9.2) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (~> 1.0) - sentry-ruby-core (= 4.9.1) - sentry-ruby-core (4.9.1) + sentry-ruby-core (= 4.9.2) + sentry-ruby-core (4.9.2) concurrent-ruby faraday set (1.0.2) From ba11adb966eb3fbeeae16a5369ffcdc1b7fe310e Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 20 Jan 2022 23:41:32 +0100 Subject: [PATCH 019/329] Fix working time statistics for internal and external users --- app/models/exercise.rb | 8 ++++---- app/views/exercises/feedback.html.slim | 2 +- app/views/exercises/statistics.html.slim | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/models/exercise.rb b/app/models/exercise.rb index 5f9a927a..d0aa9605 100644 --- a/app/models/exercise.rb +++ b/app/models/exercise.rb @@ -372,11 +372,11 @@ class Exercise < ApplicationRecord end def retrieve_working_time_statistics - @working_time_statistics = {} + @working_time_statistics = {'InternalUser' => {}, 'ExternalUser' => {}} ActiveRecord::Base.transaction do self.class.connection.execute("SET LOCAL intervalstyle = 'postgres'") self.class.connection.execute(user_working_time_query).each do |tuple| - @working_time_statistics[tuple['user_id'].to_i] = tuple + @working_time_statistics[tuple['user_type']][tuple['user_id'].to_i] = tuple end end end @@ -392,9 +392,9 @@ class Exercise < ApplicationRecord end end - def average_working_time_for(user_id) + def average_working_time_for(user) retrieve_working_time_statistics if @working_time_statistics.nil? - @working_time_statistics[user_id]['working_time'] + @working_time_statistics[user.class.name][user.id]['working_time'] end def accumulated_working_time_for_only(user) diff --git a/app/views/exercises/feedback.html.slim b/app/views/exercises/feedback.html.slim index 0aee4422..aa06a509 100644 --- a/app/views/exercises/feedback.html.slim +++ b/app/views/exercises/feedback.html.slim @@ -32,7 +32,7 @@ h1 = link_to_if(policy(@exercise).show?, @exercise, exercise_path(@exercise)) .card-footer div.clearfix.feedback-header span.points.flex-grow-1 = "#{t('exercises.statistics.score')}: #{@submissions[index].score}" - span.working_time.pull-right = "#{t('exercises.statistics.worktime')}: #{@exercise.average_working_time_for(feedback.user.id) or 0}" + span.working_time.pull-right = "#{t('exercises.statistics.worktime')}: #{@exercise.average_working_time_for(feedback.user) or 0}" = render('shared/pagination', collection: @feedbacks) diff --git a/app/views/exercises/statistics.html.slim b/app/views/exercises/statistics.html.slim index f5ec9734..afb78b3e 100644 --- a/app/views/exercises/statistics.html.slim +++ b/app/views/exercises/statistics.html.slim @@ -48,7 +48,7 @@ h1 = @exercise - if symbol==:external_users - working_time_array = [] - @exercise.send(symbol).distinct().each do |user| - - working_time = @exercise.average_working_time_for(user.id) or 0 + - working_time = @exercise.average_working_time_for(user) or 0 - working_time_array.push working_time hr .d-none#data data-working-time=ActiveSupport::JSON.encode(working_time_array) @@ -88,4 +88,4 @@ h1 = @exercise - elsif latest_user_submission.after_late_deadline? .unit-test-result.negative-result.after_late_deadline td = us['runs'] if policy(@exercise).detailed_statistics? - td = @exercise.average_working_time_for(user.id) or 0 if policy(@exercise).detailed_statistics? + td = @exercise.average_working_time_for(user) or 0 if policy(@exercise).detailed_statistics? From 8604acc960cadf6a9887912677d34e40b15b2951 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jan 2022 03:00:57 +0000 Subject: [PATCH 020/329] Bump sentry-rails from 4.9.1 to 4.9.2 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.9.1 to 4.9.2. - [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.9.1...4.9.2) --- 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 4a551b36..94ca7ee6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -466,9 +466,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (4.9.1) + sentry-rails (4.9.2) railties (>= 5.0) - sentry-ruby-core (~> 4.9.1) + sentry-ruby-core (~> 4.9.2) sentry-ruby (4.9.2) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (~> 1.0) From 4dbfd34d8e90ddc8a5638a5c779a35c91344222d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jan 2022 03:02:38 +0000 Subject: [PATCH 021/329] Bump jquery-ui from 1.13.0 to 1.13.1 Bumps [jquery-ui](https://github.com/jquery/jquery-ui) from 1.13.0 to 1.13.1. - [Release notes](https://github.com/jquery/jquery-ui/releases) - [Commits](https://github.com/jquery/jquery-ui/compare/1.13.0...1.13.1) --- updated-dependencies: - dependency-name: jquery-ui 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 cb51ff19..2259bd34 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "d3-tip": "^0.9.1", "highlight.js": "^11.4.0", "jquery": "^3.6.0", - "jquery-ui": "^1.13.0", + "jquery-ui": "^1.13.1", "jquery-ujs": "^1.2.3", "jstree": "^3.3.12", "opensans-webkit": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index 8943ce07..e115c028 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4171,10 +4171,10 @@ jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jquery-ui@^1.13.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.0.tgz#ab5ac65f37ca093c51b3478c4097f55bbc008f36" - integrity sha512-Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw== +jquery-ui@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.1.tgz#d0b7a42e73a04c31bb5706adf86f6f8942f64eaa" + integrity sha512-2VlU59N5P4HaumDK1Z3XEVjSvegFbEOQRgpHUBaB2Ak98Axl3hFhJ6RFcNQNuk9SfL6WxIbuLst8dW/U56NSiA== dependencies: jquery ">=1.8.0 <4.0.0" From 751fa75b8d94c26b9181b27a34838021b0c5651e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jan 2022 03:03:02 +0000 Subject: [PATCH 022/329] Bump js-routes from 2.2.0 to 2.2.1 Bumps [js-routes](https://github.com/railsware/js-routes) from 2.2.0 to 2.2.1. - [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.2.0...v2.2.1) --- updated-dependencies: - dependency-name: js-routes 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 4a551b36..b95ebd22 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -228,7 +228,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - js-routes (2.2.0) + js-routes (2.2.1) railties (>= 4) json (2.6.1) json_schemer (0.2.18) From 2f86b18fd60bb4c17b2381355e7c8eaaed9737fc Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 21 Jan 2022 13:13:52 +0100 Subject: [PATCH 023/329] Fix run and score statistics for internal and external users --- app/controllers/exercises_controller.rb | 10 +++++----- app/views/exercises/statistics.html.slim | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 1e3d7258..e052e230 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -496,7 +496,7 @@ working_time_accumulated: working_time_accumulated}) render 'exercises/external_users/statistics' else # Show general statistic page for specific exercise - user_statistics = {} + user_statistics = {'InternalUser' => {}, 'ExternalUser' => {}} additional_filter = if policy(@exercise).detailed_statistics? '' elsif !policy(@exercise).detailed_statistics? && current_user.study_groups.count.positive? @@ -505,11 +505,11 @@ working_time_accumulated: working_time_accumulated}) # e.g. internal user without any study groups, show no submissions 'AND FALSE' end - query = "SELECT user_id, MAX(score) AS maximum_score, COUNT(id) AS runs - FROM submissions WHERE exercise_id = #{@exercise.id} #{additional_filter} AND user_type = 'ExternalUser' - GROUP BY user_id;" + query = "SELECT user_id, user_type, MAX(score) AS maximum_score, COUNT(id) AS runs + FROM submissions WHERE exercise_id = #{@exercise.id} #{additional_filter} + GROUP BY user_id, user_type;" ApplicationRecord.connection.execute(query).each do |tuple| - user_statistics[tuple['user_id'].to_i] = tuple + user_statistics[tuple['user_type']][tuple['user_id'].to_i] = tuple end render locals: { user_statistics: user_statistics, diff --git a/app/views/exercises/statistics.html.slim b/app/views/exercises/statistics.html.slim index afb78b3e..0fc2a847 100644 --- a/app/views/exercises/statistics.html.slim +++ b/app/views/exercises/statistics.html.slim @@ -73,7 +73,7 @@ h1 = @exercise tbody - users = symbol.to_s.classify.constantize.where(id: submissions.joins(symbol).group(:user_id).select(:user_id).distinct) - users.each do |user| - - if user_statistics[user.id] then us = user_statistics[user.id] else us = {"maximum_score" => nil, "runs" => nil} + - if user_statistics[user.class.name][user.id] then us = user_statistics[user.class.name][user.id] else us = {"maximum_score" => nil, "runs" => nil} - label = "#{user.displayname}" tr td = link_to_if symbol==:external_users && policy(user).statistics?, label, {controller: "exercises", action: "statistics", external_user_id: user.id, id: @exercise.id} From ef083280eb2d0082727144b7193c3911a3d324b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jan 2022 03:01:20 +0000 Subject: [PATCH 024/329] Bump sentry-rails from 4.9.2 to 5.0.0 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.9.2 to 5.0.0. - [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.9.2...5.0.0) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index dcaf30a0..d3eea501 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -466,16 +466,14 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (4.9.2) + sentry-rails (5.0.0) railties (>= 5.0) - sentry-ruby-core (~> 4.9.2) - sentry-ruby (4.9.2) + sentry-ruby-core (~> 5.0.0) + sentry-ruby (5.0.0) concurrent-ruby (~> 1.0, >= 1.0.2) - faraday (~> 1.0) - sentry-ruby-core (= 4.9.2) - sentry-ruby-core (4.9.2) + sentry-ruby-core (= 5.0.0) + sentry-ruby-core (5.0.0) concurrent-ruby - faraday set (1.0.2) shoulda-matchers (5.1.0) activesupport (>= 5.2.0) From 45996635c2eb22416e2eb35aa383e2a78a1751f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jan 2022 03:02:20 +0000 Subject: [PATCH 025/329] Bump bootsnap from 1.10.1 to 1.10.2 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.10.1 to 1.10.2. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.10.1...v1.10.2) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:development 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 dcaf30a0..c8fcf33b 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.10.1) + bootsnap (1.10.2) msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate @@ -280,7 +280,7 @@ GEM mnemosyne-ruby (1.12.0) activesupport (>= 4) bunny - msgpack (1.4.2) + msgpack (1.4.4) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) From 58ee35c8ecf168f6ad79d22fe2d3fd2c6c70ced2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jan 2022 03:03:25 +0000 Subject: [PATCH 026/329] Bump pg from 1.2.3 to 1.3.0 Bumps [pg](https://github.com/ged/ruby-pg) from 1.2.3 to 1.3.0. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.2.3...v1.3.0) --- updated-dependencies: - dependency-name: pg 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 dcaf30a0..d76ab98d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,7 +308,7 @@ GEM parser (3.1.0.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.2.3) + pg (1.3.0) prometheus_exporter (1.0.1) webrick pry (0.13.1) From 4ccceb4410c4f04ed984fb18ef66e3a3069636de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jan 2022 03:00:47 +0000 Subject: [PATCH 027/329] Bump sentry-ruby from 5.0.0 to 5.0.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.0.0 to 5.0.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/5.0.0...5.0.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 6c0da81a..20a6c320 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -469,10 +469,10 @@ GEM sentry-rails (5.0.0) railties (>= 5.0) sentry-ruby-core (~> 5.0.0) - sentry-ruby (5.0.0) + sentry-ruby (5.0.1) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.0.0) - sentry-ruby-core (5.0.0) + sentry-ruby-core (= 5.0.1) + sentry-ruby-core (5.0.1) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From d1bbcb040d1e1c8baa58cdcd3f813cf7474e48fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jan 2022 03:02:11 +0000 Subject: [PATCH 028/329] Bump telegraf from 2.0.0 to 2.1.0 Bumps [telegraf](https://github.com/jgraichen/telegraf-ruby) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/jgraichen/telegraf-ruby/releases) - [Changelog](https://github.com/jgraichen/telegraf-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/jgraichen/telegraf-ruby/compare/v2.0.0...v2.1.0) --- updated-dependencies: - dependency-name: telegraf 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 6c0da81a..c3e416b0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -507,7 +507,7 @@ GEM sprockets (>= 3.0.0) ssrf_filter (1.0.7) structured_warnings (0.4.0) - telegraf (2.0.0) + telegraf (2.1.0) influxdb temple (0.8.2) thor (1.2.1) From 4137cd6befa192587a04342850c27d94f72c62f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jan 2022 03:02:30 +0000 Subject: [PATCH 029/329] Bump rubocop-rspec from 2.7.0 to 2.8.0 Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.7.0 to 2.8.0. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.7.0...v2.8.0) --- updated-dependencies: - dependency-name: rubocop-rspec 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 6c0da81a..13182527 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -444,7 +444,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.7.0) + rubocop-rspec (2.8.0) rubocop (~> 1.19) ruby-progressbar (1.11.0) ruby-vips (2.1.4) From a78cf1670aa0f858dc479e93b5497adfdac726d9 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 25 Jan 2022 09:17:35 +0100 Subject: [PATCH 030/329] Add gem 'faraday-net_http_persistent' for Faraday 2.0 upgrade --- Gemfile | 1 + Gemfile.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/Gemfile b/Gemfile index 43aa0d60..aae494dd 100644 --- a/Gemfile +++ b/Gemfile @@ -10,6 +10,7 @@ gem 'docker-api', require: 'docker' gem 'eventmachine' gem 'factory_bot_rails' gem 'faraday' +gem 'faraday-net_http_persistent' gem 'faye-websocket' gem 'forgery' gem 'highline' diff --git a/Gemfile.lock b/Gemfile.lock index c680d366..1349474b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -567,6 +567,7 @@ DEPENDENCIES eventmachine factory_bot_rails faraday + faraday-net_http_persistent faye-websocket forgery headless From b3c49bad83b6c48149e5d9f1f25da8f4a24b16cc Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 25 Jan 2022 09:18:42 +0100 Subject: [PATCH 031/329] Bundle update --- Gemfile.lock | 4 +- yarn.lock | 176 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1349474b..39ea4802 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -466,9 +466,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.0.0) + sentry-rails (5.0.1) railties (>= 5.0) - sentry-ruby-core (~> 5.0.0) + sentry-ruby-core (~> 5.0.1) sentry-ruby (5.0.1) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-ruby-core (= 5.0.1) diff --git a/yarn.lock b/yarn.lock index e115c028..66bb438e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,19 +15,19 @@ integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== "@babel/core@^7.15.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" - integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== + version "7.16.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" + integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" + "@babel/generator" "^7.16.8" "@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/parser" "^7.16.12" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.16.10" + "@babel/types" "^7.16.8" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -35,7 +35,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.16.7", "@babel/generator@^7.16.8": +"@babel/generator@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== @@ -69,10 +69,10 @@ browserslist "^4.17.5" semver "^6.3.0" -"@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== +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c" + integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -252,18 +252,18 @@ "@babel/types" "^7.16.7" "@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== + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" - integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== +"@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7": + version "7.16.12" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" + integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -383,12 +383,12 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@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== +"@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.16.10" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-proposal-private-property-in-object@^7.16.7": @@ -707,9 +707,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.15.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.8.tgz#3339368701103edae708f0fba9e4bfb70a3e5872" - integrity sha512-6Kg2XHPFnIarNweZxmzbgYnnWsXxkx9WQUVk2sksBRL80lBC1RAQV3wQagWxdCHiYHqPN+oenwNIuttlYgIbQQ== + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz#53d9fd3496daedce1dd99639097fa5d14f4c7c2c" + integrity sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -770,9 +770,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.15.0": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.8.tgz#e682fa0bcd1cf49621d64a8956318ddfb9a05af9" - integrity sha512-9rNKgVCdwHb3z1IlbMyft6yIXIeP3xz6vWvGaLHrJThuEIqWfHb0DNBH9VuTgnDfdbUDhkmkvMZS/YMCtP7Elg== + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== dependencies: "@babel/compat-data" "^7.16.8" "@babel/helper-compilation-targets" "^7.16.7" @@ -792,7 +792,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-methods" "^7.16.11" "@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" @@ -876,10 +876,10 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.8.tgz#bab2f2b09a5fe8a8d9cad22cbfe3ba1d126fef9c" - integrity sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" + integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.16.8" @@ -887,7 +887,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.8" + "@babel/parser" "^7.16.10" "@babel/types" "^7.16.8" debug "^4.1.0" globals "^11.1.0" @@ -976,55 +976,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.16.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.16.1.tgz#4270ab0fbd1de425e339b3e7a364feb09f470a87" - integrity sha512-F2I5RL7RTLQF9CccMrqt73GRdK3FdqaChED3RulGQX5lH6U3exHGFxwyZxSrY4x6FedfBFYlfXWWCJXpLnFkow== + version "6.17.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.1.tgz#4dd3a27042d73548fd2444b832947e0944db49b8" + integrity sha512-Tj4uXNRA6dAwKzOwLGvTOsD8WNk6tiPaIYXPsIIOdBjDsFBfiu4JY8ygCzQpj7Fwy8qL6UULygU4kBuAx2ieyQ== dependencies: - "@sentry/core" "6.16.1" - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/core" "6.17.1" + "@sentry/types" "6.17.1" + "@sentry/utils" "6.17.1" tslib "^1.9.3" -"@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== +"@sentry/core@6.17.1": + version "6.17.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.1.tgz#669b8732e49a44aff661b09590323f56d2117f78" + integrity sha512-dRcKs3+IKx2w7+xwg3mWRc4ghjnY+36W+qCOJXRbWyRjlzb67Es+TDYY3BxWwN4beNr2dvQkRt5HoPxJnrzGVQ== dependencies: - "@sentry/hub" "6.16.1" - "@sentry/minimal" "6.16.1" - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/hub" "6.17.1" + "@sentry/minimal" "6.17.1" + "@sentry/types" "6.17.1" + "@sentry/utils" "6.17.1" tslib "^1.9.3" -"@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== +"@sentry/hub@6.17.1": + version "6.17.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.1.tgz#e973c8b856e7211e7715e41c2f67f8c3f0651d9d" + integrity sha512-14lNcM4kt2sKhsfZ6WG2gbsPMydxBAY1OSk+WodO/x0Esdr7VbaVngSJSFzCI0iRBPLSQuFVtUWaAZzSF+WdiA== dependencies: - "@sentry/types" "6.16.1" - "@sentry/utils" "6.16.1" + "@sentry/types" "6.17.1" + "@sentry/utils" "6.17.1" tslib "^1.9.3" -"@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== +"@sentry/minimal@6.17.1": + version "6.17.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.1.tgz#34c888ffec803a82895502fe0ec145b364c16ff7" + integrity sha512-0V5YqVCylMjjDhD98Xod1ZdxzVRUjDSq7ssCJ2PRjfRAEtk7mN5oeznyZUhyx4pZB8hNh2G9PdasIR2WIjYN9w== dependencies: - "@sentry/hub" "6.16.1" - "@sentry/types" "6.16.1" + "@sentry/hub" "6.17.1" + "@sentry/types" "6.17.1" tslib "^1.9.3" -"@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/types@6.17.1": + version "6.17.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.1.tgz#9aae33d00769db67e9231febf2514837e49b2f7b" + integrity sha512-EBFiN3utd1xoxowy+WFSDQGgS4J+VEZbc7j3uYVZNjn03/w5pe9FfeLsszJ2s1/hCf/K7GAGH4NA7i0r7SWF3g== -"@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== +"@sentry/utils@6.17.1": + version "6.17.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.1.tgz#4297dbbd1c1ae8a38254dd133ca9e0f40ba60831" + integrity sha512-FOjxMZ4yBflYvJYhNDacRfSa0NTKLsjCXQ3u1phxODRUwhQ7wwqmtwy86AL5uzfpiqZKwXAPlWoWihBluw7vqw== dependencies: - "@sentry/types" "6.16.1" + "@sentry/types" "6.17.1" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1046,9 +1046,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.10.tgz#616f16e9d3a2a3d618136b1be244315d95bd7cab" - integrity sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog== + version "17.0.12" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.12.tgz#f7aa331b27f08244888c47b7df126184bc2339c5" + integrity sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1829,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.30001300" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz#11ab6c57d3eb6f964cba950401fd00a146786468" - integrity sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA== + version "1.0.30001301" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450" + integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2875,9 +2875,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.17: - version "1.4.48" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz#1948b5227aa0ca1ed690945eae1adbe9e7904575" - integrity sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA== + version "1.4.52" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz#ce44c6d6cc449e7688a4356b8c261cfeafa26833" + integrity sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q== elliptic@^6.5.3: version "6.5.4" @@ -3939,7 +3939,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.8.0: +is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -5786,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.8" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz#f023ed7a9ea736cd7ef70342996e8e78645a7914" - integrity sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ== + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -6171,11 +6171,11 @@ resolve-url@^0.2.1: integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: - version "1.21.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f" - integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.8.0" + is-core-module "^2.8.1" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" From 489f391cee8e46e7f47d98e6c959062d2b67e99a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jan 2022 03:00:51 +0000 Subject: [PATCH 032/329] Bump newrelic_rpm from 8.3.0 to 8.4.0 Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 8.3.0 to 8.4.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.3.0...8.4.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 39ea4802..c547ac77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -288,7 +288,7 @@ GEM net-http-persistent (4.0.1) connection_pool (~> 2.2) netrc (0.11.0) - newrelic_rpm (8.3.0) + newrelic_rpm (8.4.0) nio4r (2.5.8) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) From c115d8bb3c3eaf41cc85f6f1daeeced3224195d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jan 2022 03:01:11 +0000 Subject: [PATCH 033/329] Bump puma from 5.5.2 to 5.6.0 Bumps [puma](https://github.com/puma/puma) from 5.5.2 to 5.6.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.5.2...v5.6.0) --- updated-dependencies: - dependency-name: puma 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 39ea4802..9f1e8613 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -320,7 +320,7 @@ GEM pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (4.0.6) - puma (5.5.2) + puma (5.6.0) nio4r (~> 2.0) pundit (2.1.1) activesupport (>= 3.0.0) From cbc7dd01e2bdf7a99e7059538164c380cab53dd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jan 2022 03:01:50 +0000 Subject: [PATCH 034/329] Bump puma from 5.6.0 to 5.6.1 Bumps [puma](https://github.com/puma/puma) from 5.6.0 to 5.6.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.0...v5.6.1) --- updated-dependencies: - dependency-name: puma 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 9e7103cf..75fa1166 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -320,7 +320,7 @@ GEM pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (4.0.6) - puma (5.6.0) + puma (5.6.1) nio4r (~> 2.0) pundit (2.1.1) activesupport (>= 3.0.0) From c0a5bf49164eb0094de4760edb9da5750ad63237 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jan 2022 03:02:08 +0000 Subject: [PATCH 035/329] Bump rspec-rails from 5.0.2 to 5.1.0 Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 5.0.2 to 5.1.0. - [Release notes](https://github.com/rspec/rspec-rails/releases) - [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md) - [Commits](https://github.com/rspec/rspec-rails/compare/v5.0.2...v5.1.0) --- updated-dependencies: - dependency-name: rspec-rails dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9e7103cf..106e690b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -208,7 +208,7 @@ GEM http-accept (1.7.0) http-cookie (1.0.4) domain_name (~> 0.5) - i18n (1.8.11) + i18n (1.9.0) concurrent-ruby (~> 1.0) i18n-js (3.9.0) i18n (>= 0.6.6) @@ -417,7 +417,7 @@ GEM rspec-mocks (3.10.2) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.10.0) - rspec-rails (5.0.2) + rspec-rails (5.1.0) actionpack (>= 5.2) activesupport (>= 5.2) railties (>= 5.2) From 9bf68551a377234aae49c698f5926bce6d4dd95f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Feb 2022 03:01:17 +0000 Subject: [PATCH 036/329] Bump sentry-ruby from 5.0.1 to 5.0.2 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.0.1 to 5.0.2. - [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/5.0.1...5.0.2) --- 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 d4ff5691..ca91a80c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -469,10 +469,10 @@ GEM sentry-rails (5.0.1) railties (>= 5.0) sentry-ruby-core (~> 5.0.1) - sentry-ruby (5.0.1) + sentry-ruby (5.0.2) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.0.1) - sentry-ruby-core (5.0.1) + sentry-ruby-core (= 5.0.2) + sentry-ruby-core (5.0.2) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From 160ebb0d489bb7795f81ed3bf7197452689268a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 03:00:50 +0000 Subject: [PATCH 037/329] Bump pg from 1.3.0 to 1.3.1 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: pg 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 ca91a80c..57640ef3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,7 +308,7 @@ GEM parser (3.1.0.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.3.0) + pg (1.3.1) prometheus_exporter (1.0.1) webrick pry (0.13.1) From 30e09f46553ce33ecb6e82aa5cc87401b5b8805a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 03:01:37 +0000 Subject: [PATCH 038/329] Bump js-routes from 2.2.1 to 2.2.2 Bumps [js-routes](https://github.com/railsware/js-routes) from 2.2.1 to 2.2.2. - [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.2.1...v2.2.2) --- updated-dependencies: - dependency-name: js-routes 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 ca91a80c..2457fe58 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -208,7 +208,7 @@ GEM http-accept (1.7.0) http-cookie (1.0.4) domain_name (~> 0.5) - i18n (1.9.0) + i18n (1.9.1) concurrent-ruby (~> 1.0) i18n-js (3.9.0) i18n (>= 0.6.6) @@ -228,7 +228,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - js-routes (2.2.1) + js-routes (2.2.2) railties (>= 4) json (2.6.1) json_schemer (0.2.18) @@ -546,7 +546,7 @@ GEM will_paginate (3.3.1) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.5.3) + zeitwerk (2.5.4) PLATFORMS ruby From 8b2ba90eab386ec450b8acb33630a6233145cbac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 03:02:36 +0000 Subject: [PATCH 039/329] Bump sentry-rails from 5.0.1 to 5.0.2 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.0.1 to 5.0.2. - [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/5.0.1...5.0.2) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ca91a80c..7e0a9bd9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -208,7 +208,7 @@ GEM http-accept (1.7.0) http-cookie (1.0.4) domain_name (~> 0.5) - i18n (1.9.0) + i18n (1.9.1) concurrent-ruby (~> 1.0) i18n-js (3.9.0) i18n (>= 0.6.6) @@ -466,9 +466,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.0.1) + sentry-rails (5.0.2) railties (>= 5.0) - sentry-ruby-core (~> 5.0.1) + sentry-ruby-core (~> 5.0.2) sentry-ruby (5.0.2) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-ruby-core (= 5.0.2) @@ -546,7 +546,7 @@ GEM will_paginate (3.3.1) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.5.3) + zeitwerk (2.5.4) PLATFORMS ruby From 2996df64d84100d9207dbd6f257fbdb082324916 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Feb 2022 03:00:47 +0000 Subject: [PATCH 040/329] Bump bootsnap from 1.10.2 to 1.10.3 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.10.2 to 1.10.3. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.10.2...v1.10.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 6719d444..c25a0f25 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.10.2) + bootsnap (1.10.3) msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate From 1337b79bbf98ed211f47d34adc00f67187601338 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Feb 2022 03:00:53 +0000 Subject: [PATCH 041/329] Bump rubocop from 1.25.0 to 1.25.1 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.25.0 to 1.25.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.25.0...v1.25.1) --- updated-dependencies: - dependency-name: rubocop 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 c25a0f25..ced1e7c5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -426,7 +426,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.10.3) - rubocop (1.25.0) + rubocop (1.25.1) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) From 3d66d13f741d4eda3aec8be36f493f74221008c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Feb 2022 03:02:15 +0000 Subject: [PATCH 042/329] Bump i18n-js from 3.9.0 to 3.9.1 Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.9.0 to 3.9.1. - [Release notes](https://github.com/fnando/i18n-js/releases) - [Changelog](https://github.com/fnando/i18n-js/blob/v3.9.1/CHANGELOG.md) - [Commits](https://github.com/fnando/i18n-js/compare/v3.9.0...v3.9.1) --- updated-dependencies: - dependency-name: i18n-js 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 ced1e7c5..de93052c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -210,7 +210,7 @@ GEM domain_name (~> 0.5) i18n (1.9.1) concurrent-ruby (~> 1.0) - i18n-js (3.9.0) + i18n-js (3.9.1) i18n (>= 0.6.6) image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) From 5be63c672323c25e15a3495ed1dd0ceb64e5c7ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 22:05:19 +0000 Subject: [PATCH 043/329] Bump puma from 5.6.1 to 5.6.2 Bumps [puma](https://github.com/puma/puma) from 5.6.1 to 5.6.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.1...v5.6.2) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index de93052c..47109f03 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -320,7 +320,7 @@ GEM pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (4.0.6) - puma (5.6.1) + puma (5.6.2) nio4r (~> 2.0) pundit (2.1.1) activesupport (>= 3.0.0) From 9f6a14a5ce06dee9da3c8d5f780ee1f2f78bace5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 22:13:30 +0000 Subject: [PATCH 044/329] Bump follow-redirects from 1.14.7 to 1.14.8 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 66bb438e..24948164 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3287,9 +3287,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.7" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" - integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== + version "1.14.8" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" + integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== for-in@^1.0.2: version "1.0.2" From 23111e122a4954371e0d64d83a7e150107de9b14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 03:01:11 +0000 Subject: [PATCH 045/329] Bump sentry-rails from 5.0.2 to 5.1.0 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.0.2 to 5.1.0. - [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/5.0.2...5.1.0) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 47109f03..ecc48250 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -254,7 +254,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.13.0) + loofah (2.14.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -466,13 +466,13 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.0.2) + sentry-rails (5.1.0) railties (>= 5.0) - sentry-ruby-core (~> 5.0.2) - sentry-ruby (5.0.2) + sentry-ruby-core (~> 5.1.0) + sentry-ruby (5.1.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.0.2) - sentry-ruby-core (5.0.2) + sentry-ruby-core (= 5.1.0) + sentry-ruby-core (5.1.0) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From 6f00ac60199ef6ae7049a2ee321bc60bb4eb9e43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 03:01:25 +0000 Subject: [PATCH 046/329] Bump pundit from 2.1.1 to 2.2.0 Bumps [pundit](https://github.com/varvet/pundit) from 2.1.1 to 2.2.0. - [Release notes](https://github.com/varvet/pundit/releases) - [Changelog](https://github.com/varvet/pundit/blob/main/CHANGELOG.md) - [Commits](https://github.com/varvet/pundit/compare/v2.1.1...v2.2.0) --- updated-dependencies: - dependency-name: pundit 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 47109f03..d9c050b6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -322,7 +322,7 @@ GEM public_suffix (4.0.6) puma (5.6.2) nio4r (~> 2.0) - pundit (2.1.1) + pundit (2.2.0) activesupport (>= 3.0.0) racc (1.6.0) rack (2.2.3) From 21222f2a59c8e3f8062693c0c0f90f235dd2086f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 03:02:18 +0000 Subject: [PATCH 047/329] Bump rails-i18n from 7.0.1 to 7.0.2 Bumps [rails-i18n](https://github.com/svenfuchs/rails-i18n) from 7.0.1 to 7.0.2. - [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-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 47109f03..a21010c4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -254,7 +254,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.13.0) + loofah (2.14.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -359,7 +359,7 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) - rails-i18n (7.0.1) + rails-i18n (7.0.2) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) rails-timeago (2.19.1) From 313fee57b64095acb9e034d4217a7a7931e860d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 23:05:03 +0000 Subject: [PATCH 048/329] Bump rails from 6.1.4.4 to 6.1.4.6 Bumps [rails](https://github.com/rails/rails) from 6.1.4.4 to 6.1.4.6. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.4...v6.1.4.6) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 106 +++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 68b333a3..3db653ea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,64 +30,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.1) - actioncable (6.1.4.4) - actionpack (= 6.1.4.4) - activesupport (= 6.1.4.4) + actioncable (6.1.4.6) + actionpack (= 6.1.4.6) + activesupport (= 6.1.4.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - 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) + actionmailbox (6.1.4.6) + actionpack (= 6.1.4.6) + activejob (= 6.1.4.6) + activerecord (= 6.1.4.6) + activestorage (= 6.1.4.6) + activesupport (= 6.1.4.6) mail (>= 2.7.1) - 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) + actionmailer (6.1.4.6) + actionpack (= 6.1.4.6) + actionview (= 6.1.4.6) + activejob (= 6.1.4.6) + activesupport (= 6.1.4.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.4) - actionview (= 6.1.4.4) - activesupport (= 6.1.4.4) + actionpack (6.1.4.6) + actionview (= 6.1.4.6) + activesupport (= 6.1.4.6) 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.4) - actionpack (= 6.1.4.4) - activerecord (= 6.1.4.4) - activestorage (= 6.1.4.4) - activesupport (= 6.1.4.4) + actiontext (6.1.4.6) + actionpack (= 6.1.4.6) + activerecord (= 6.1.4.6) + activestorage (= 6.1.4.6) + activesupport (= 6.1.4.6) nokogiri (>= 1.8.5) - actionview (6.1.4.4) - activesupport (= 6.1.4.4) + actionview (6.1.4.6) + activesupport (= 6.1.4.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.4.4) - activesupport (= 6.1.4.4) + activejob (6.1.4.6) + activesupport (= 6.1.4.6) globalid (>= 0.3.6) - activemodel (6.1.4.4) - activesupport (= 6.1.4.4) + activemodel (6.1.4.6) + activesupport (= 6.1.4.6) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - 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) + activerecord (6.1.4.6) + activemodel (= 6.1.4.6) + activesupport (= 6.1.4.6) + activestorage (6.1.4.6) + actionpack (= 6.1.4.6) + activejob (= 6.1.4.6) + activerecord (= 6.1.4.6) + activesupport (= 6.1.4.6) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.4) + activesupport (6.1.4.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -335,20 +335,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 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) + rails (6.1.4.6) + actioncable (= 6.1.4.6) + actionmailbox (= 6.1.4.6) + actionmailer (= 6.1.4.6) + actionpack (= 6.1.4.6) + actiontext (= 6.1.4.6) + actionview (= 6.1.4.6) + activejob (= 6.1.4.6) + activemodel (= 6.1.4.6) + activerecord (= 6.1.4.6) + activestorage (= 6.1.4.6) + activesupport (= 6.1.4.6) bundler (>= 1.15.0) - railties (= 6.1.4.4) + railties (= 6.1.4.6) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -377,9 +377,9 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.4.4) - actionpack (= 6.1.4.4) - activesupport (= 6.1.4.4) + railties (6.1.4.6) + actionpack (= 6.1.4.6) + activesupport (= 6.1.4.6) method_source rake (>= 0.13) thor (~> 1.0) From 96e3eaad32eff3b1285c421b8037a3e6386dafa9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Feb 2022 03:02:16 +0000 Subject: [PATCH 049/329] Bump pg from 1.3.1 to 1.3.2 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: pg 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 3db653ea..04ff26dd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,7 +308,7 @@ GEM parser (3.1.0.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.3.1) + pg (1.3.2) prometheus_exporter (1.0.1) webrick pry (0.13.1) From a080b8987e3a21d3bc0727e0b9ee604ef7c13bc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Feb 2022 20:20:35 +0000 Subject: [PATCH 050/329] Bump url-parse from 1.5.4 to 1.5.7 Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.4 to 1.5.7. - [Release notes](https://github.com/unshiftio/url-parse/releases) - [Commits](https://github.com/unshiftio/url-parse/compare/1.5.4...1.5.7) --- updated-dependencies: - dependency-name: url-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 24948164..ee85344d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7089,9 +7089,9 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.4" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.4.tgz#e4f645a7e2a0852cc8a66b14b292a3e9a11a97fd" - integrity sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg== + version "1.5.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.7.tgz#00780f60dbdae90181f51ed85fb24109422c932a" + integrity sha512-HxWkieX+STA38EDk7CE9MEryFeHCKzgagxlGvsdS7WBImq9Mk+PGwiT56w82WI3aicwJA8REp42Cxo98c8FZMA== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From ffb21e5aee7ea0e0a9f8cdaf031de29b45b627ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Feb 2022 03:04:09 +0000 Subject: [PATCH 051/329] Bump faraday from 1.9.3 to 1.10.0 Bumps [faraday](https://github.com/lostisland/faraday) from 1.9.3 to 1.10.0. - [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.9.3...v1.10.0) --- updated-dependencies: - dependency-name: faraday 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 04ff26dd..7307df09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -168,7 +168,7 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (1.9.3) + faraday (1.10.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) From 2fde09a580acbbb71d09ab29ea04f127c90fc257 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Feb 2022 03:00:47 +0000 Subject: [PATCH 052/329] Bump json_schemer from 0.2.18 to 0.2.19 Bumps [json_schemer](https://github.com/davishmcclurg/json_schemer) from 0.2.18 to 0.2.19. - [Release notes](https://github.com/davishmcclurg/json_schemer/releases) - [Commits](https://github.com/davishmcclurg/json_schemer/compare/v0.2.18...v0.2.19) --- updated-dependencies: - dependency-name: json_schemer 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 7307df09..69a26ed3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -231,7 +231,7 @@ GEM js-routes (2.2.2) railties (>= 4) json (2.6.1) - json_schemer (0.2.18) + json_schemer (0.2.19) ecma-re-validator (~> 0.3) hana (~> 1.3) regexp_parser (~> 2.0) @@ -393,7 +393,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree (0.4.4) - regexp_parser (2.2.0) + regexp_parser (2.2.1) remotipart (1.4.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) From 431f7ad9342d9ad1d24b0b453c2f62b28ef9abd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Feb 2022 03:01:44 +0000 Subject: [PATCH 053/329] Bump rack-mini-profiler from 2.3.3 to 2.3.4 Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 2.3.3 to 2.3.4. - [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases) - [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md) - [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v2.3.3...v2.3.4) --- updated-dependencies: - dependency-name: rack-mini-profiler 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 69a26ed3..0e409a1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -326,7 +326,7 @@ GEM activesupport (>= 3.0.0) racc (1.6.0) rack (2.2.3) - rack-mini-profiler (2.3.3) + rack-mini-profiler (2.3.4) rack (>= 1.2.0) rack-pjax (1.1.0) nokogiri (~> 1.5) From 362f6571cce934f6eef0f21fcb8796a4fbaf252f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Feb 2022 03:01:59 +0000 Subject: [PATCH 054/329] Bump pg from 1.3.2 to 1.3.3 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.2...v1.3.3) --- updated-dependencies: - dependency-name: pg 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 69a26ed3..827801cf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,7 +308,7 @@ GEM parser (3.1.0.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.3.2) + pg (1.3.3) prometheus_exporter (1.0.1) webrick pry (0.13.1) From 4748cb4f166610294f1681202254a7fe0180d0ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Feb 2022 03:09:23 +0000 Subject: [PATCH 055/329] Bump prometheus_exporter from 1.0.1 to 2.0.0 Bumps [prometheus_exporter](https://github.com/discourse/prometheus_exporter) from 1.0.1 to 2.0.0. - [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.1...v2.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 6908931d..8c198fdf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -309,7 +309,7 @@ GEM ast (~> 2.4.1) path_expander (1.1.0) pg (1.3.3) - prometheus_exporter (1.0.1) + prometheus_exporter (2.0.0) webrick pry (0.13.1) coderay (~> 1.1) From 7e0a5d58e8ee3133ce5fe242bf16ff545076b653 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Feb 2022 03:01:45 +0000 Subject: [PATCH 056/329] Bump faraday from 1.10.0 to 2.2.0 Bumps [faraday](https://github.com/lostisland/faraday) from 1.10.0 to 2.2.0. - [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.10.0...v2.2.0) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7307df09..2fdd1cee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -168,29 +168,13 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (1.10.0) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) + faraday (2.2.0) + faraday-net_http (~> 2.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.3) - 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) + faraday-net_http (2.0.1) + faraday-net_http_persistent (2.0.1) + faraday-net_http + net-http-persistent (~> 4.0) faye-websocket (0.11.1) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) @@ -283,7 +267,6 @@ GEM msgpack (1.4.4) multi_json (1.15.0) multi_xml (0.6.0) - multipart-post (2.1.1) nested_form (0.3.2) net-http-persistent (4.0.1) connection_pool (~> 2.2) @@ -296,8 +279,8 @@ GEM nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) oauth (0.5.8) - oauth2 (1.4.7) - faraday (>= 0.8, < 2.0) + oauth2 (1.4.9) + faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) From b690989e869fbb79312a56e3cf8275b5cdf57bdb Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 23 Feb 2022 20:56:25 +0100 Subject: [PATCH 057/329] Bundle update --- Gemfile.lock | 40 ++--- yarn.lock | 492 +++++++++++++++++++++++++++------------------------ 2 files changed, 284 insertions(+), 248 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7599a8c6..a5261d25 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -162,7 +162,7 @@ GEM regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) - excon (0.90.0) + excon (0.91.0) factory_bot (6.2.0) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -192,7 +192,7 @@ GEM http-accept (1.7.0) http-cookie (1.0.4) domain_name (~> 0.5) - i18n (1.9.1) + i18n (1.10.0) concurrent-ruby (~> 1.0) i18n-js (3.9.1) i18n (>= 0.6.6) @@ -264,7 +264,7 @@ GEM mnemosyne-ruby (1.12.0) activesupport (>= 4) bunny - msgpack (1.4.4) + msgpack (1.4.5) multi_json (1.15.0) multi_xml (0.6.0) nested_form (0.3.2) @@ -288,7 +288,7 @@ GEM pagedown-bootstrap-rails (2.1.4) railties (> 3.1) parallel (1.21.0) - parser (3.1.0.0) + parser (3.1.1.0) ast (~> 2.4.1) path_expander (1.1.0) pg (1.3.3) @@ -372,10 +372,10 @@ GEM activerecord (>= 5.2.4) activesupport (>= 5.2.4) i18n - rb-fsevent (0.11.0) + rb-fsevent (0.11.1) rb-inotify (0.10.1) ffi (~> 1.0) - rbtree (0.4.4) + rbtree (0.4.5) regexp_parser (2.2.1) remotipart (1.4.4) rest-client (2.1.0) @@ -384,22 +384,22 @@ GEM mime-types (>= 1.16, < 4.0) netrc (~> 0.8) rexml (3.2.5) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) rspec-autotest (1.0.2) rspec-core (>= 2.99.0.beta1, < 4.0.0) rspec-collection_matchers (1.2.0) rspec-expectations (>= 2.99.0.beta1) - rspec-core (3.10.1) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.2) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) - rspec-mocks (3.10.2) + rspec-support (~> 3.11.0) + rspec-mocks (3.11.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) + rspec-support (~> 3.11.0) rspec-rails (5.1.0) actionpack (>= 5.2) activesupport (>= 5.2) @@ -408,7 +408,7 @@ GEM rspec-expectations (~> 3.10) rspec-mocks (~> 3.10) rspec-support (~> 3.10) - rspec-support (3.10.3) + rspec-support (3.11.0) rubocop (1.25.1) parallel (~> 1.10) parser (>= 3.1.0.0) @@ -418,8 +418,8 @@ GEM rubocop-ast (>= 1.15.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.15.1) - parser (>= 3.0.1.1) + rubocop-ast (1.16.0) + parser (>= 3.1.1.0) rubocop-performance (1.13.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) @@ -465,7 +465,7 @@ GEM simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) - simplecov_json_formatter (0.1.3) + simplecov_json_formatter (0.1.4) slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) diff --git a/yarn.lock b/yarn.lock index ee85344d..c741cbd6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + "@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" @@ -9,38 +16,38 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" - integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== "@babel/core@^7.15.0": - version "7.16.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784" - integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg== + version "7.17.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" + integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== dependencies: + "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" + "@babel/generator" "^7.17.3" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.12" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.3" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.10" - "@babel/types" "^7.16.8" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.1.2" semver "^6.3.0" - source-map "^0.5.0" -"@babel/generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" - integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw== +"@babel/generator@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" + integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== dependencies: - "@babel/types" "^7.16.8" + "@babel/types" "^7.17.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -69,10 +76,10 @@ browserslist "^4.17.5" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz#8a6959b9cc818a88815ba3c5474619e9c0f2c21c" - integrity sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg== +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9" + integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -83,12 +90,12 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@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== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^4.7.1" + regexpu-core "^5.0.1" "@babel/helper-define-polyfill-provider@^0.3.1": version "0.3.1" @@ -156,9 +163,9 @@ "@babel/types" "^7.16.7" "@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== + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0" + integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -166,8 +173,8 @@ "@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/traverse" "^7.17.3" + "@babel/types" "^7.17.0" "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" @@ -242,14 +249,14 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@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== +"@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": version "7.16.10" @@ -260,10 +267,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7": - version "7.16.12" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6" - integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" + integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -299,11 +306,11 @@ "@babel/helper-plugin-utils" "^7.16.7" "@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== + version "7.17.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" + integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.6" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -356,11 +363,11 @@ "@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.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== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" + integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.0" "@babel/helper-compilation-targets" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" @@ -559,9 +566,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@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== + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" + integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -707,9 +714,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.15.0": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz#53d9fd3496daedce1dd99639097fa5d14f4c7c2c" - integrity sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" + integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -861,9 +868,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" - integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" @@ -876,26 +883,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f" - integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.8" + "@babel/generator" "^7.17.3" "@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.10" - "@babel/types" "^7.16.8" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.4.4": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" - integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -911,14 +918,32 @@ integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== "@gar/promisify@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" - integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@npmcli/fs@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.0.tgz#bec1d1b89c170d40e1b73ad6c943b0b75e7d2951" - integrity sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" semver "^7.3.5" @@ -976,55 +1001,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.17.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.1.tgz#4dd3a27042d73548fd2444b832947e0944db49b8" - integrity sha512-Tj4uXNRA6dAwKzOwLGvTOsD8WNk6tiPaIYXPsIIOdBjDsFBfiu4JY8ygCzQpj7Fwy8qL6UULygU4kBuAx2ieyQ== + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.9.tgz#62eac0cc3c7c788df6b4677fe9882d3974d84027" + integrity sha512-RsC8GBZmZ3YfBTaIOJ06RlFp5zG7BkUoquNJmf4YhRUZeihT9osrn8qUYGFWSV/UduwKUIlSGJA/rATWWhwPRQ== dependencies: - "@sentry/core" "6.17.1" - "@sentry/types" "6.17.1" - "@sentry/utils" "6.17.1" + "@sentry/core" "6.17.9" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/core@6.17.1": - version "6.17.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.1.tgz#669b8732e49a44aff661b09590323f56d2117f78" - integrity sha512-dRcKs3+IKx2w7+xwg3mWRc4ghjnY+36W+qCOJXRbWyRjlzb67Es+TDYY3BxWwN4beNr2dvQkRt5HoPxJnrzGVQ== +"@sentry/core@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.9.tgz#1c09f1f101207952566349a1921d46db670c8f62" + integrity sha512-14KalmTholGUtgdh9TklO+jUpyQ/D3OGkhlH1rnGQGoJgFy2eYm+s+MnUEMxFdGIUCz5kOteuNqYZxaDmFagpQ== dependencies: - "@sentry/hub" "6.17.1" - "@sentry/minimal" "6.17.1" - "@sentry/types" "6.17.1" - "@sentry/utils" "6.17.1" + "@sentry/hub" "6.17.9" + "@sentry/minimal" "6.17.9" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/hub@6.17.1": - version "6.17.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.1.tgz#e973c8b856e7211e7715e41c2f67f8c3f0651d9d" - integrity sha512-14lNcM4kt2sKhsfZ6WG2gbsPMydxBAY1OSk+WodO/x0Esdr7VbaVngSJSFzCI0iRBPLSQuFVtUWaAZzSF+WdiA== +"@sentry/hub@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.9.tgz#f2c355088a49045e49feafb5356ca5d6e1e31d3c" + integrity sha512-34EdrweWDbBV9EzEFIXcO+JeoyQmKzQVJxpTKZoJA6PUwf2NrndaUdjlkDEtBEzjuLUTxhLxtOzEsYs1O6RVcg== dependencies: - "@sentry/types" "6.17.1" - "@sentry/utils" "6.17.1" + "@sentry/types" "6.17.9" + "@sentry/utils" "6.17.9" tslib "^1.9.3" -"@sentry/minimal@6.17.1": - version "6.17.1" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.1.tgz#34c888ffec803a82895502fe0ec145b364c16ff7" - integrity sha512-0V5YqVCylMjjDhD98Xod1ZdxzVRUjDSq7ssCJ2PRjfRAEtk7mN5oeznyZUhyx4pZB8hNh2G9PdasIR2WIjYN9w== +"@sentry/minimal@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.9.tgz#0edca978097b3f56463ede028395d40adbf2ae84" + integrity sha512-T3PMCHcKk6lkZq6zKgANrYJJxXBXKOe+ousV1Fas1rVBMv7dtKfsa4itqQHszcW9shusPDiaQKIJ4zRLE5LKmg== dependencies: - "@sentry/hub" "6.17.1" - "@sentry/types" "6.17.1" + "@sentry/hub" "6.17.9" + "@sentry/types" "6.17.9" tslib "^1.9.3" -"@sentry/types@6.17.1": - version "6.17.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.1.tgz#9aae33d00769db67e9231febf2514837e49b2f7b" - integrity sha512-EBFiN3utd1xoxowy+WFSDQGgS4J+VEZbc7j3uYVZNjn03/w5pe9FfeLsszJ2s1/hCf/K7GAGH4NA7i0r7SWF3g== +"@sentry/types@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.9.tgz#d579c33cde0301adaf8ff4762479ad017bf0dffa" + integrity sha512-xuulX6qUCL14ayEOh/h6FUIvZtsi1Bx34dSOaWDrjXUOJHJAM7214uiqW1GZxPJ13YuaUIubjTSfDmSQ9CBzTw== -"@sentry/utils@6.17.1": - version "6.17.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.1.tgz#4297dbbd1c1ae8a38254dd133ca9e0f40ba60831" - integrity sha512-FOjxMZ4yBflYvJYhNDacRfSa0NTKLsjCXQ3u1phxODRUwhQ7wwqmtwy86AL5uzfpiqZKwXAPlWoWihBluw7vqw== +"@sentry/utils@6.17.9": + version "6.17.9" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.9.tgz#425fe9af4e2d6114c2e9aaede75ccb6ddf91fbda" + integrity sha512-4eo9Z3JlJCGlGrQRbtZWL+L9NnlUXgTbfK3Lk7oO8D1ev8R5b5+iE6tZHTvU5rQRcq6zu+POT+tK5u9oxc/rnQ== dependencies: - "@sentry/types" "6.17.1" + "@sentry/types" "6.17.9" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1046,9 +1071,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.12.tgz#f7aa331b27f08244888c47b7df126184bc2339c5" - integrity sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA== + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1215,19 +1240,24 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" + mime-types "~2.1.34" + negotiator "0.6.3" acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -1452,12 +1482,12 @@ babel-plugin-polyfill-corejs2@^0.3.0: semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060" - integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A== + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.20.0" + core-js-compat "^3.21.0" babel-plugin-polyfill-regenerator@^0.3.0: version "0.3.1" @@ -1531,20 +1561,20 @@ 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.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4" - integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA== +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== dependencies: - bytes "3.1.1" + bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" depd "~1.1.2" http-errors "1.8.1" iconv-lite "0.4.24" on-finished "~2.3.0" - qs "6.9.6" - raw-body "2.4.2" + qs "6.9.7" + raw-body "2.4.3" type-is "~1.6.18" bonjour@^3.5.0: @@ -1672,14 +1702,14 @@ browserify-zlib@^0.2.0: pako "~1.0.5" 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== + version "4.19.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" + integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== dependencies: - caniuse-lite "^1.0.30001286" - electron-to-chromium "^1.4.17" + caniuse-lite "^1.0.30001312" + electron-to-chromium "^1.4.71" escalade "^3.1.1" - node-releases "^2.0.1" + node-releases "^2.0.2" picocolors "^1.0.0" buffer-from@^1.0.0: @@ -1716,10 +1746,10 @@ bytes@3.0.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= -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== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacache@^12.0.2: version "12.0.4" @@ -1828,10 +1858,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.30001286: - version "1.0.30001301" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450" - integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001312: + version "1.0.30001312" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" + integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2097,10 +2127,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.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== +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== copy-concurrently@^1.0.0: version "1.0.5" @@ -2119,18 +2149,18 @@ 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.20.0, core-js-compat@^3.20.2: - version "3.20.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.20.3.tgz#d71f85f94eb5e4bea3407412e549daa083d23bd6" - integrity sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw== +core-js-compat@^3.20.2, core-js-compat@^3.21.0: + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" + integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== dependencies: browserslist "^4.19.1" semver "7.0.0" core-js@^3.16.2: - version "3.20.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.3.tgz#c710d0a676e684522f3db4ee84e5e18a9d11d69a" - integrity sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag== + version "3.21.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" + integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== core-util-is@~1.0.0: version "1.0.3" @@ -2874,10 +2904,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.4.17: - version "1.4.52" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.52.tgz#ce44c6d6cc449e7688a4356b8c261cfeafa26833" - integrity sha512-JGkh8HEh5PnVrhU4HbpyyO0O791dVY6k7AdqfDeqbcRMeoGxtNHWT77deR2nhvbLe4dKpxjlDEvdEwrvRLGu2Q== +electron-to-chromium@^1.4.71: + version "1.4.71" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" + integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== elliptic@^6.5.3: version "6.5.4" @@ -3096,16 +3126,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: homedir-polyfill "^1.0.1" express@^4.17.1: - version "4.17.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3" - integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg== + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== dependencies: - accepts "~1.3.7" + accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.1" + body-parser "1.19.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.1" + cookie "0.4.2" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" @@ -3120,7 +3150,7 @@ express@^4.17.1: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.6" + qs "6.9.7" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.17.2" @@ -3269,9 +3299,9 @@ findup-sync@^3.0.0: resolve-dir "^1.0.1" flatted@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== flatten@^1.0.2: version "1.0.3" @@ -3287,9 +3317,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== + version "1.14.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" + integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== for-in@^1.0.2: version "1.0.2" @@ -4505,12 +4535,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.51.0: 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: +"mime-db@>= 1.43.0 < 2": + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: 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== @@ -4548,9 +4583,9 @@ minimalistic-crypto-utils@^1.0.1: integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -4698,10 +4733,10 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" @@ -4747,10 +4782,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== normalize-path@^2.1.1: version "2.1.1" @@ -5667,9 +5702,9 @@ postcss-place@^4.0.1: postcss-values-parser "^2.0.0" postcss-preset-env@^6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + version "6.7.1" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.1.tgz#26563d2e9395d626a45a836450844540694bfcef" + integrity sha512-rlRkgX9t0v2On33n7TK8pnkcYOATGQSv48J2RS8GsXhqtg+xk6AummHP88Y5mJo0TLJelBjePvSjScTNkj3+qw== dependencies: autoprefixer "^9.6.1" browserslist "^4.6.4" @@ -5935,10 +5970,10 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -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== +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== query-string@^4.1.0: version "4.3.4" @@ -5991,12 +6026,12 @@ 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.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== dependencies: - bytes "3.1.1" + bytes "3.1.2" http-errors "1.8.1" iconv-lite "0.4.24" unpipe "1.0.0" @@ -6046,10 +6081,10 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -regenerate-unicode-properties@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" - integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" @@ -6086,27 +6121,27 @@ regexp.prototype.flags@^1.2.0: call-bind "^1.0.2" define-properties "^1.1.3" -regexpu-core@^4.7.1: - version "4.8.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" - integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== dependencies: regenerate "^1.4.2" - regenerate-unicode-properties "^9.0.0" - regjsgen "^0.5.2" - regjsparser "^0.7.0" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" - integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" @@ -6272,9 +6307,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.0.tgz#65ec1b1d9a6bc1bae8d2c9d4b392c13f5d32c078" - integrity sha512-TVwVdNDj6p6b4QymJtNtRS2YtLJ/CqZriGg0eIAbAKMlN8Xy6kbv33FsEZSF7FufFFM705SQviHjjThfaQ4VNw== + version "1.49.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.8.tgz#9bbbc5d43d14862db07f1c04b786c9da9b641828" + integrity sha512-NoGOjvDDOU9og9oAxhRnap71QaTjjlzrvLnKecUJ3GxhaQBrV6e7gPuSPF28u1OcVAArVojPAe4ZhOXwwC4tGw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6469,9 +6504,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" - integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-swizzle@^0.2.2: version "0.2.2" @@ -6873,10 +6908,11 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.10.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" - integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== + version "5.11.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.11.0.tgz#2da5506c02e12cd8799947f30ce9c5b760be000f" + integrity sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A== dependencies: + acorn "^8.5.0" commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.20" @@ -7089,9 +7125,9 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3, url-parse@^1.5.3: - version "1.5.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.7.tgz#00780f60dbdae90181f51ed85fb24109422c932a" - integrity sha512-HxWkieX+STA38EDk7CE9MEryFeHCKzgagxlGvsdS7WBImq9Mk+PGwiT56w82WI3aicwJA8REp42Cxo98c8FZMA== + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From 91488d8129cf1bc7221f13ab700b670a7ec7ff64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Feb 2022 03:00:58 +0000 Subject: [PATCH 058/329] Bump prometheus_exporter from 2.0.0 to 2.0.1 Bumps [prometheus_exporter](https://github.com/discourse/prometheus_exporter) from 2.0.0 to 2.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/v2.0.0...v2.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 a5261d25..b9e86829 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -292,7 +292,7 @@ GEM ast (~> 2.4.1) path_expander (1.1.0) pg (1.3.3) - prometheus_exporter (2.0.0) + prometheus_exporter (2.0.1) webrick pry (0.13.1) coderay (~> 1.1) From b0bbc70d940c213a96d3d7da429d606ea348b1fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Feb 2022 03:02:01 +0000 Subject: [PATCH 059/329] Bump sorcery from 0.16.2 to 0.16.3 Bumps [sorcery](https://github.com/Sorcery/sorcery) from 0.16.2 to 0.16.3. - [Release notes](https://github.com/Sorcery/sorcery/releases) - [Changelog](https://github.com/Sorcery/sorcery/blob/master/CHANGELOG.md) - [Commits](https://github.com/Sorcery/sorcery/compare/v0.16.2...v0.16.3) --- updated-dependencies: - dependency-name: sorcery 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 a5261d25..27869850 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -473,7 +473,7 @@ GEM actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 5.0) - sorcery (0.16.2) + sorcery (0.16.3) bcrypt (~> 3.1) oauth (~> 0.5, >= 0.5.5) oauth2 (~> 1.0, >= 0.8.0) From 24f3133bb3348c3ad7b2709f1dc1107c3e0027a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Feb 2022 03:00:52 +0000 Subject: [PATCH 060/329] Bump newrelic_rpm from 8.4.0 to 8.5.0 Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 8.4.0 to 8.5.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.4.0...8.5.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 9d99bfbd..3f89a979 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -271,7 +271,7 @@ GEM net-http-persistent (4.0.1) connection_pool (~> 2.2) netrc (0.11.0) - newrelic_rpm (8.4.0) + newrelic_rpm (8.5.0) nio4r (2.5.8) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) From 5825e6e654b9bfa9c1482dc4626c500ab50a6bc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Feb 2022 03:01:13 +0000 Subject: [PATCH 061/329] Bump sentry-ruby from 5.1.0 to 5.1.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.1.0 to 5.1.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/5.1.0...5.1.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 9d99bfbd..77aa5377 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -452,10 +452,10 @@ GEM sentry-rails (5.1.0) railties (>= 5.0) sentry-ruby-core (~> 5.1.0) - sentry-ruby (5.1.0) + sentry-ruby (5.1.1) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.1.0) - sentry-ruby-core (5.1.0) + sentry-ruby-core (= 5.1.1) + sentry-ruby-core (5.1.1) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From 2edfd297a0e98096ea626f3849f2384a20430f82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Feb 2022 03:01:57 +0000 Subject: [PATCH 062/329] Bump rack-mini-profiler from 2.3.4 to 3.0.0 Bumps [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) from 2.3.4 to 3.0.0. - [Release notes](https://github.com/MiniProfiler/rack-mini-profiler/releases) - [Changelog](https://github.com/MiniProfiler/rack-mini-profiler/blob/master/CHANGELOG.md) - [Commits](https://github.com/MiniProfiler/rack-mini-profiler/compare/v2.3.4...v3.0.0) --- updated-dependencies: - dependency-name: rack-mini-profiler 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 9d99bfbd..7d973cdc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -309,7 +309,7 @@ GEM activesupport (>= 3.0.0) racc (1.6.0) rack (2.2.3) - rack-mini-profiler (2.3.4) + rack-mini-profiler (3.0.0) rack (>= 1.2.0) rack-pjax (1.1.0) nokogiri (~> 1.5) From 7b0a4e218127f3b6e5b042005d56df657a78e67d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 03:01:44 +0000 Subject: [PATCH 063/329] Bump prometheus_exporter from 2.0.1 to 2.0.2 Bumps [prometheus_exporter](https://github.com/discourse/prometheus_exporter) from 2.0.1 to 2.0.2. - [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/v2.0.1...v2.0.2) --- 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 bf83dad0..24aece28 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -292,7 +292,7 @@ GEM ast (~> 2.4.1) path_expander (1.1.0) pg (1.3.3) - prometheus_exporter (2.0.1) + prometheus_exporter (2.0.2) webrick pry (0.13.1) coderay (~> 1.1) From cd4f60f45bfd0c872b71839451bf518176854cdc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Feb 2022 03:02:04 +0000 Subject: [PATCH 064/329] Bump sentry-rails from 5.1.0 to 5.1.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.1.0 to 5.1.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/5.1.0...5.1.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 bf83dad0..69bdb1cd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -449,9 +449,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.1.0) + sentry-rails (5.1.1) railties (>= 5.0) - sentry-ruby-core (~> 5.1.0) + sentry-ruby-core (~> 5.1.1) sentry-ruby (5.1.1) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-ruby-core (= 5.1.1) From 06ce498d0210e3725b9f76a6bf14bdb13af5e710 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 03:02:15 +0000 Subject: [PATCH 065/329] Bump rubocop-rspec from 2.8.0 to 2.9.0 Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.8.0 to 2.9.0. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.8.0...v2.9.0) --- updated-dependencies: - dependency-name: rubocop-rspec 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 f2d39903..2af196f6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -427,7 +427,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.8.0) + rubocop-rspec (2.9.0) rubocop (~> 1.19) ruby-progressbar (1.11.0) ruby-vips (2.1.4) From b2656bd6b50c60416786d77eb0d738d5d255b967 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 1 Mar 2022 15:35:08 +0100 Subject: [PATCH 066/329] Fix rubocop offenses --- spec/lib/port_pool_spec.rb | 2 +- spec/services/exercise_service/push_external_spec.rb | 4 ++-- spec/services/proforma_service/export_task_spec.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/lib/port_pool_spec.rb b/spec/lib/port_pool_spec.rb index 3294c106..6f38b8ab 100644 --- a/spec/lib/port_pool_spec.rb +++ b/spec/lib/port_pool_spec.rb @@ -24,7 +24,7 @@ describe PortPool do it 'returns the port' do available_ports = described_class.instance_variable_get(:@available_ports) described_class.instance_variable_set(:@available_ports, []) - expect(described_class.available_port).to be nil + expect(described_class.available_port).to be_nil described_class.instance_variable_set(:@available_ports, available_ports) end end diff --git a/spec/services/exercise_service/push_external_spec.rb b/spec/services/exercise_service/push_external_spec.rb index 2a52075f..28e145e2 100644 --- a/spec/services/exercise_service/push_external_spec.rb +++ b/spec/services/exercise_service/push_external_spec.rb @@ -45,7 +45,7 @@ RSpec.describe ExerciseService::PushExternal do end context 'when response status is success' do - it { is_expected.to be nil } + it { is_expected.to be_nil } context 'when response status is 500' do let(:status) { 500 } @@ -58,7 +58,7 @@ RSpec.describe ExerciseService::PushExternal do context 'when an error occurs' do before { allow(Faraday).to receive(:new).and_raise(StandardError) } - it { is_expected.not_to be nil } + it { is_expected.not_to be_nil } end end end diff --git a/spec/services/proforma_service/export_task_spec.rb b/spec/services/proforma_service/export_task_spec.rb index 78e91f36..3937f08a 100644 --- a/spec/services/proforma_service/export_task_spec.rb +++ b/spec/services/proforma_service/export_task_spec.rb @@ -16,7 +16,7 @@ describe ProformaService::ExportTask do subject(:export_task) { described_class.new } it 'assigns exercise' do - expect(export_task.instance_variable_get(:@exercise)).to be nil + expect(export_task.instance_variable_get(:@exercise)).to be_nil end end end From d3e4f4baa6fee0e22990cba09fb4f290ea8621e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 23:23:40 +0000 Subject: [PATCH 067/329] Bump image_processing from 1.12.1 to 1.12.2 Bumps [image_processing](https://github.com/janko/image_processing) from 1.12.1 to 1.12.2. - [Release notes](https://github.com/janko/image_processing/releases) - [Changelog](https://github.com/janko/image_processing/blob/master/CHANGELOG.md) - [Commits](https://github.com/janko/image_processing/compare/v1.12.1...v1.12.2) --- updated-dependencies: - dependency-name: image_processing dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2af196f6..463ea6a4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -196,7 +196,7 @@ GEM concurrent-ruby (~> 1.0) i18n-js (3.9.1) i18n (>= 0.6.6) - image_processing (1.12.1) + image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) ims-lti (1.2.4) From a0be7b4dfe3262470d915b4ded93ba36a6e7712f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Mar 2022 03:01:17 +0000 Subject: [PATCH 068/329] Bump rails-i18n from 7.0.2 to 7.0.3 Bumps [rails-i18n](https://github.com/svenfuchs/rails-i18n) from 7.0.2 to 7.0.3. - [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-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 463ea6a4..4df4de7e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -342,7 +342,7 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) - rails-i18n (7.0.2) + rails-i18n (7.0.3) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) rails-timeago (2.19.1) From 18daa1c998bcc182f1006faa415e70a27e9efa8c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 2 Mar 2022 11:44:48 +0100 Subject: [PATCH 069/329] Enable image preview in STDOUT --- app/assets/javascripts/editor/evaluation.js | 21 +++++++++++++-------- lib/runner/connection/buffer.rb | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/editor/evaluation.js b/app/assets/javascripts/editor/evaluation.js index d3f8ed14..c5723f12 100644 --- a/app/assets/javascripts/editor/evaluation.js +++ b/app/assets/javascripts/editor/evaluation.js @@ -199,26 +199,31 @@ CodeOceanEditorEvaluation = { return; } + if (output.stdout !== undefined && !output.stdout.startsWith(" tags if (!colorize) { if (output.stdout !== undefined && output.stdout !== '') { - //element.append(output.stdout) - element.text(element.text() + output.stdout) + + element.append(output.stdout) + //element.text(element.text() + output.stdout) } if (output.stderr !== undefined && output.stderr !== '') { - //element.append('StdErr: ' + output.stderr); - element.text('StdErr: ' + element.text() + output.stderr); + element.append('StdErr: ' + output.stderr); + //element.text('StdErr: ' + element.text() + output.stderr); } } else if (output.stderr) { - //element.addClass('text-warning').append(output.stderr); - element.addClass('text-warning').text(element.text() + output.stderr); + element.addClass('text-warning').append(output.stderr); + //element.addClass('text-warning').text(element.text() + output.stderr); this.QaApiOutputBuffer.stderr += output.stderr; } else if (output.stdout) { - //element.addClass('text-success').append(output.stdout); - element.addClass('text-success').text(element.text() + output.stdout); + element.addClass('text-success').append(output.stdout); + //element.addClass('text-success').text(element.text() + output.stdout); this.QaApiOutputBuffer.stdout += output.stdout; } else { element.addClass('text-muted').text($('#output').data('message-no-output')); diff --git a/lib/runner/connection/buffer.rb b/lib/runner/connection/buffer.rb index 7a1b3af5..b3421df8 100644 --- a/lib/runner/connection/buffer.rb +++ b/lib/runner/connection/buffer.rb @@ -84,7 +84,7 @@ class Runner::Connection::Buffer # Second, if we have the beginning of a valid command but an invalid JSON return true if invalid_json && message.start_with?(/\s*{"cmd/) # Third, buffer the message if it contains long messages (e.g., an image or turtle batch commands) - return true if invalid_json && (message.include?(' Date: Wed, 2 Mar 2022 11:47:07 +0100 Subject: [PATCH 070/329] Bundle update --- yarn.lock | 122 ++++++++++++++++++++++++++---------------------------- 1 file changed, 58 insertions(+), 64 deletions(-) diff --git a/yarn.lock b/yarn.lock index c741cbd6..9f729225 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1001,55 +1001,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.17.9" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.17.9.tgz#62eac0cc3c7c788df6b4677fe9882d3974d84027" - integrity sha512-RsC8GBZmZ3YfBTaIOJ06RlFp5zG7BkUoquNJmf4YhRUZeihT9osrn8qUYGFWSV/UduwKUIlSGJA/rATWWhwPRQ== + version "6.18.1" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.18.1.tgz#7c61d53260a6cd8999a46a0bd3159773b93fd1ea" + integrity sha512-OZmk6RNcdQWxUkC8HBEruqpWUsaX/+pb1J/R5cDfHNeePLbDj9b8KFfs9QkgyZmmEP6l0Nu80TuDsdPF0q4uyw== dependencies: - "@sentry/core" "6.17.9" - "@sentry/types" "6.17.9" - "@sentry/utils" "6.17.9" + "@sentry/core" "6.18.1" + "@sentry/types" "6.18.1" + "@sentry/utils" "6.18.1" tslib "^1.9.3" -"@sentry/core@6.17.9": - version "6.17.9" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.17.9.tgz#1c09f1f101207952566349a1921d46db670c8f62" - integrity sha512-14KalmTholGUtgdh9TklO+jUpyQ/D3OGkhlH1rnGQGoJgFy2eYm+s+MnUEMxFdGIUCz5kOteuNqYZxaDmFagpQ== +"@sentry/core@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.1.tgz#6d09c4f59b30b62d5d288b5f3f3af56f1f7e6336" + integrity sha512-9V8Q+3Asi+3RL67CSIMMZ9mjMsu2/hrpQszYStX7hPPpAZIlAKk2MT5B+na/r80iWKhy+3Ts6aDFF218QtnsVw== dependencies: - "@sentry/hub" "6.17.9" - "@sentry/minimal" "6.17.9" - "@sentry/types" "6.17.9" - "@sentry/utils" "6.17.9" + "@sentry/hub" "6.18.1" + "@sentry/minimal" "6.18.1" + "@sentry/types" "6.18.1" + "@sentry/utils" "6.18.1" tslib "^1.9.3" -"@sentry/hub@6.17.9": - version "6.17.9" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.17.9.tgz#f2c355088a49045e49feafb5356ca5d6e1e31d3c" - integrity sha512-34EdrweWDbBV9EzEFIXcO+JeoyQmKzQVJxpTKZoJA6PUwf2NrndaUdjlkDEtBEzjuLUTxhLxtOzEsYs1O6RVcg== +"@sentry/hub@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.1.tgz#fcfb8cb84515efefaf4e48472305ea5a71455abb" + integrity sha512-+zGzgc/xX3an/nKA3ELMn9YD9VmqbNaNwWZ5/SjNUvzsYHh2UNZ7YzT8WawQsRVOXLljyCKxkWpFB4EchiYGbw== dependencies: - "@sentry/types" "6.17.9" - "@sentry/utils" "6.17.9" + "@sentry/types" "6.18.1" + "@sentry/utils" "6.18.1" tslib "^1.9.3" -"@sentry/minimal@6.17.9": - version "6.17.9" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.17.9.tgz#0edca978097b3f56463ede028395d40adbf2ae84" - integrity sha512-T3PMCHcKk6lkZq6zKgANrYJJxXBXKOe+ousV1Fas1rVBMv7dtKfsa4itqQHszcW9shusPDiaQKIJ4zRLE5LKmg== +"@sentry/minimal@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.1.tgz#eac73d2262589930aa0bb33e0e12380ac5b766a9" + integrity sha512-dm+0MuasWNi/LASvHX+09oCo8IBZY5WpMK8qXvQMnwQ9FVfklrjcfEI3666WORDCmeUhDCSeL2MbjPDm+AmPLg== dependencies: - "@sentry/hub" "6.17.9" - "@sentry/types" "6.17.9" + "@sentry/hub" "6.18.1" + "@sentry/types" "6.18.1" tslib "^1.9.3" -"@sentry/types@6.17.9": - version "6.17.9" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.9.tgz#d579c33cde0301adaf8ff4762479ad017bf0dffa" - integrity sha512-xuulX6qUCL14ayEOh/h6FUIvZtsi1Bx34dSOaWDrjXUOJHJAM7214uiqW1GZxPJ13YuaUIubjTSfDmSQ9CBzTw== +"@sentry/types@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.1.tgz#e2de38dd0da8096a5d22f8effc6756c919266ede" + integrity sha512-wp741NoBKnXE/4T9L723sWJ8EcNMxeTIT1smgNJOfbPwrsDICoYmGEt6JFa05XHpWBGI66WuNvnDjoHVeh6zhA== -"@sentry/utils@6.17.9": - version "6.17.9" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.17.9.tgz#425fe9af4e2d6114c2e9aaede75ccb6ddf91fbda" - integrity sha512-4eo9Z3JlJCGlGrQRbtZWL+L9NnlUXgTbfK3Lk7oO8D1ev8R5b5+iE6tZHTvU5rQRcq6zu+POT+tK5u9oxc/rnQ== +"@sentry/utils@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.1.tgz#1aa819502b042540612f4db7bcb86c7b176f5a6b" + integrity sha512-IFZmuvA+c5lDGlZEri13JSyUP0BHelzY0S4dcKxAzskPW+BtBdQDgYGV90iED1y+IRMLawWb34GF7HyJSouN1Q== dependencies: - "@sentry/types" "6.17.9" + "@sentry/types" "6.18.1" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -2701,7 +2701,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.6: +debug@^3.1.1, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -2905,9 +2905,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.71: - version "1.4.71" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6" - integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw== + version "1.4.75" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd" + integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q== elliptic@^6.5.3: version "6.5.4" @@ -3077,7 +3077,7 @@ events@^3.0.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: +eventsource@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== @@ -3200,7 +3200,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -faye-websocket@^0.11.3: +faye-websocket@^0.11.3, faye-websocket@^0.11.4: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== @@ -3540,9 +3540,9 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" @@ -4256,11 +4256,6 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -6307,9 +6302,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.49.8" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.8.tgz#9bbbc5d43d14862db07f1c04b786c9da9b641828" - integrity sha512-NoGOjvDDOU9og9oAxhRnap71QaTjjlzrvLnKecUJ3GxhaQBrV6e7gPuSPF28u1OcVAArVojPAe4ZhOXwwC4tGw== + version "1.49.9" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" + integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6546,16 +6541,15 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" - integrity sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.0.tgz#e0277b8974558edcb557eafc7d3027ef6128d865" + integrity sha512-qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ== dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" + debug "^3.2.7" + eventsource "^1.1.0" + faye-websocket "^0.11.4" inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.3" + url-parse "^1.5.10" sockjs@^0.3.21: version "0.3.24" @@ -6908,9 +6902,9 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.11.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.11.0.tgz#2da5506c02e12cd8799947f30ce9c5b760be000f" - integrity sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A== + version "5.12.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" + integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== dependencies: acorn "^8.5.0" commander "^2.20.0" @@ -7124,7 +7118,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3, url-parse@^1.5.3: +url-parse@^1.4.3, url-parse@^1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== From ae0b58df0a7ea2526e94856da397f860f611ffc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 03:01:22 +0000 Subject: [PATCH 071/329] Bump rubocop-performance from 1.13.2 to 1.13.3 Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.13.2 to 1.13.3. - [Release notes](https://github.com/rubocop/rubocop-performance/releases) - [Changelog](https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-performance/compare/v1.13.2...v1.13.3) --- updated-dependencies: - dependency-name: rubocop-performance 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 4df4de7e..e164e4fa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -420,7 +420,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.16.0) parser (>= 3.1.1.0) - rubocop-performance (1.13.2) + rubocop-performance (1.13.3) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) rubocop-rails (2.13.2) From 817bd5b74c6f75a4461b8c0eeb40477b94263569 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 03:00:50 +0000 Subject: [PATCH 072/329] Bump js-routes from 2.2.2 to 2.2.3 Bumps [js-routes](https://github.com/railsware/js-routes) from 2.2.2 to 2.2.3. - [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.2.2...v2.2.3) --- updated-dependencies: - dependency-name: js-routes 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 e164e4fa..6e0939e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -212,7 +212,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - js-routes (2.2.2) + js-routes (2.2.3) railties (>= 4) json (2.6.1) json_schemer (0.2.19) From ff3c0e7ca71f10ac39be09f2a358093e6c0ce1da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 03:01:24 +0000 Subject: [PATCH 073/329] Bump rspec-rails from 5.1.0 to 5.1.1 Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 5.1.0 to 5.1.1. - [Release notes](https://github.com/rspec/rspec-rails/releases) - [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md) - [Commits](https://github.com/rspec/rspec-rails/compare/v5.1.0...v5.1.1) --- updated-dependencies: - dependency-name: rspec-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 e164e4fa..bbddb445 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -400,7 +400,7 @@ GEM rspec-mocks (3.11.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) - rspec-rails (5.1.0) + rspec-rails (5.1.1) actionpack (>= 5.2) activesupport (>= 5.2) railties (>= 5.2) From 092144801280efb23317f488314a1a5fcf1a2d64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Mar 2022 03:01:30 +0000 Subject: [PATCH 074/329] Bump sentry-ruby from 5.1.1 to 5.2.0 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.1.1 to 5.2.0. - [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/5.1.1...5.2.0) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f68a1d01..9d39e9a4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -449,13 +449,13 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.1.1) + sentry-rails (5.2.0) railties (>= 5.0) - sentry-ruby-core (~> 5.1.1) - sentry-ruby (5.1.1) + sentry-ruby-core (~> 5.2.0) + sentry-ruby (5.2.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.1.1) - sentry-ruby-core (5.1.1) + sentry-ruby-core (= 5.2.0) + sentry-ruby-core (5.2.0) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From f8800d32eada4af305ce8562704706abca3019c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Mar 2022 03:01:43 +0000 Subject: [PATCH 075/329] Bump bootsnap from 1.10.3 to 1.11.1 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.10.3 to 1.11.1. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.10.3...v1.11.1) --- updated-dependencies: - dependency-name: bootsnap 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 f68a1d01..f4ed7dd8 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.10.3) + bootsnap (1.11.1) msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate From 08a2a3112f16c81aa3e6f2975ecb98b055780e02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Mar 2022 03:01:55 +0000 Subject: [PATCH 076/329] Bump rubocop from 1.25.1 to 1.26.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.25.1 to 1.26.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.25.1...v1.26.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f68a1d01..b7cf2a0b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -409,13 +409,13 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.25.1) + rubocop (1.26.0) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.15.1, < 2.0) + rubocop-ast (>= 1.16.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.16.0) From 70db2c588af9f9efa28c5062b3530c2527d227c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 03:02:21 +0000 Subject: [PATCH 077/329] Bump rails from 6.1.4.6 to 6.1.5 Bumps [rails](https://github.com/rails/rails) from 6.1.4.6 to 6.1.5. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.6...v6.1.5) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 114 +++++++++++++++++++++++++-------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/Gemfile b/Gemfile index aae494dd..ba24126a 100644 --- a/Gemfile +++ b/Gemfile @@ -30,7 +30,7 @@ gem 'prometheus_exporter' gem 'pry-byebug' gem 'puma' gem 'pundit' -gem 'rails', '~> 6.1.4' +gem 'rails', '~> 6.1.5' gem 'rails_admin' gem 'rails-i18n' gem 'rails-timeago' diff --git a/Gemfile.lock b/Gemfile.lock index f68a1d01..89e21368 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,64 +30,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.1) - actioncable (6.1.4.6) - actionpack (= 6.1.4.6) - activesupport (= 6.1.4.6) + actioncable (6.1.5) + actionpack (= 6.1.5) + activesupport (= 6.1.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.6) - actionpack (= 6.1.4.6) - activejob (= 6.1.4.6) - activerecord (= 6.1.4.6) - activestorage (= 6.1.4.6) - activesupport (= 6.1.4.6) + actionmailbox (6.1.5) + actionpack (= 6.1.5) + activejob (= 6.1.5) + activerecord (= 6.1.5) + activestorage (= 6.1.5) + activesupport (= 6.1.5) mail (>= 2.7.1) - actionmailer (6.1.4.6) - actionpack (= 6.1.4.6) - actionview (= 6.1.4.6) - activejob (= 6.1.4.6) - activesupport (= 6.1.4.6) + actionmailer (6.1.5) + actionpack (= 6.1.5) + actionview (= 6.1.5) + activejob (= 6.1.5) + activesupport (= 6.1.5) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.6) - actionview (= 6.1.4.6) - activesupport (= 6.1.4.6) + actionpack (6.1.5) + actionview (= 6.1.5) + activesupport (= 6.1.5) 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.6) - actionpack (= 6.1.4.6) - activerecord (= 6.1.4.6) - activestorage (= 6.1.4.6) - activesupport (= 6.1.4.6) + actiontext (6.1.5) + actionpack (= 6.1.5) + activerecord (= 6.1.5) + activestorage (= 6.1.5) + activesupport (= 6.1.5) nokogiri (>= 1.8.5) - actionview (6.1.4.6) - activesupport (= 6.1.4.6) + actionview (6.1.5) + activesupport (= 6.1.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.4.6) - activesupport (= 6.1.4.6) + activejob (6.1.5) + activesupport (= 6.1.5) globalid (>= 0.3.6) - activemodel (6.1.4.6) - activesupport (= 6.1.4.6) + activemodel (6.1.5) + activesupport (= 6.1.5) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.4.6) - activemodel (= 6.1.4.6) - activesupport (= 6.1.4.6) - activestorage (6.1.4.6) - actionpack (= 6.1.4.6) - activejob (= 6.1.4.6) - activerecord (= 6.1.4.6) - activesupport (= 6.1.4.6) - marcel (~> 1.0.0) + activerecord (6.1.5) + activemodel (= 6.1.5) + activesupport (= 6.1.5) + activestorage (6.1.5) + actionpack (= 6.1.5) + activejob (= 6.1.5) + activerecord (= 6.1.5) + activesupport (= 6.1.5) + marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.6) + activesupport (6.1.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -318,20 +318,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.6) - actioncable (= 6.1.4.6) - actionmailbox (= 6.1.4.6) - actionmailer (= 6.1.4.6) - actionpack (= 6.1.4.6) - actiontext (= 6.1.4.6) - actionview (= 6.1.4.6) - activejob (= 6.1.4.6) - activemodel (= 6.1.4.6) - activerecord (= 6.1.4.6) - activestorage (= 6.1.4.6) - activesupport (= 6.1.4.6) + rails (6.1.5) + actioncable (= 6.1.5) + actionmailbox (= 6.1.5) + actionmailer (= 6.1.5) + actionpack (= 6.1.5) + actiontext (= 6.1.5) + actionview (= 6.1.5) + activejob (= 6.1.5) + activemodel (= 6.1.5) + activerecord (= 6.1.5) + activestorage (= 6.1.5) + activesupport (= 6.1.5) bundler (>= 1.15.0) - railties (= 6.1.4.6) + railties (= 6.1.5) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -360,11 +360,11 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.4.6) - actionpack (= 6.1.4.6) - activesupport (= 6.1.4.6) + railties (6.1.5) + actionpack (= 6.1.5) + activesupport (= 6.1.5) method_source - rake (>= 0.13) + rake (>= 12.2) thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) @@ -481,7 +481,7 @@ GEM rbtree set (~> 1.0) spring (4.0.0) - sprockets (4.0.2) + sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.4.2) @@ -577,7 +577,7 @@ DEPENDENCIES puma pundit rack-mini-profiler - rails (~> 6.1.4) + rails (~> 6.1.5) rails-controller-testing rails-i18n rails-timeago From 4248ed6c0ee70277d80440e40a71629d7425b42d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 03:10:35 +0000 Subject: [PATCH 078/329] Bump rails-timeago from 2.19.1 to 2.20.0 Bumps [rails-timeago](https://github.com/jgraichen/rails-timeago) from 2.19.1 to 2.20.0. - [Release notes](https://github.com/jgraichen/rails-timeago/releases) - [Changelog](https://github.com/jgraichen/rails-timeago/blob/main/CHANGELOG.md) - [Commits](https://github.com/jgraichen/rails-timeago/compare/v2.19.1...v2.20.0) --- updated-dependencies: - dependency-name: rails-timeago dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 89e21368..4a38be2b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -345,9 +345,9 @@ GEM rails-i18n (7.0.3) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - rails-timeago (2.19.1) - actionpack (>= 3.1) - activesupport (>= 3.1) + rails-timeago (2.20.0) + actionpack (>= 5.2) + activesupport (>= 5.2) rails_admin (2.2.1) activemodel-serializers-xml (>= 1.0) builder (~> 3.1) From 2063b28c186ad21595e42fc0b11e532c427c1702 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Mar 2022 03:02:18 +0000 Subject: [PATCH 079/329] Bump highlight.js from 11.4.0 to 11.5.0 Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 11.4.0 to 11.5.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.4.0...11.5.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 2259bd34..c5b69024 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "chosen-js": "^1.8.7", "d3": "^7.3.0", "d3-tip": "^0.9.1", - "highlight.js": "^11.4.0", + "highlight.js": "^11.5.0", "jquery": "^3.6.0", "jquery-ui": "^1.13.1", "jquery-ujs": "^1.2.3", diff --git a/yarn.lock b/yarn.lock index 9f729225..99073742 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3611,10 +3611,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.4.0: - version "11.4.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.4.0.tgz#34ceadd49e1596ee5aba3d99346cdfd4845ee05a" - integrity sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA== +highlight.js@^11.5.0: + version "11.5.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.5.0.tgz#00abb7ed926491adbdabc93a4f3fd2b88b451b4a" + integrity sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw== hmac-drbg@^1.0.1: version "1.0.1" From 14c62237ce68f074f728ed39d43406988edc2bcd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Mar 2022 10:34:13 +0000 Subject: [PATCH 080/329] Bump pg from 1.3.3 to 1.3.4 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.3 to 1.3.4. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.3...v1.3.4) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 89e21368..ac53a87c 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.10.3) + bootsnap (1.11.1) msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate @@ -291,7 +291,7 @@ GEM parser (3.1.1.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.3.3) + pg (1.3.4) prometheus_exporter (2.0.2) webrick pry (0.13.1) @@ -345,9 +345,9 @@ GEM rails-i18n (7.0.3) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - rails-timeago (2.19.1) - actionpack (>= 3.1) - activesupport (>= 3.1) + rails-timeago (2.20.0) + actionpack (>= 5.2) + activesupport (>= 5.2) rails_admin (2.2.1) activemodel-serializers-xml (>= 1.0) builder (~> 3.1) @@ -409,13 +409,13 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.25.1) + rubocop (1.26.0) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.15.1, < 2.0) + rubocop-ast (>= 1.16.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.16.0) @@ -449,13 +449,13 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.1.1) + sentry-rails (5.2.0) railties (>= 5.0) - sentry-ruby-core (~> 5.1.1) - sentry-ruby (5.1.1) + sentry-ruby-core (~> 5.2.0) + sentry-ruby (5.2.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.1.1) - sentry-ruby-core (5.1.1) + sentry-ruby-core (= 5.2.0) + sentry-ruby-core (5.2.0) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From a2638a5d1ca4e98630a4f1bca0e5891fcf666e3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Mar 2022 10:49:18 +0000 Subject: [PATCH 081/329] Bump ransack from 2.5.0 to 2.6.0 Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 2.5.0 to 2.6.0. - [Release notes](https://github.com/activerecord-hackery/ransack/releases) - [Changelog](https://github.com/activerecord-hackery/ransack/blob/master/CHANGELOG.md) - [Commits](https://github.com/activerecord-hackery/ransack/compare/v2.5.0...v2.6.0) --- updated-dependencies: - dependency-name: ransack dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ac53a87c..f1f60efe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -368,9 +368,9 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - ransack (2.5.0) - activerecord (>= 5.2.4) - activesupport (>= 5.2.4) + ransack (2.6.0) + activerecord (>= 6.0.4) + activesupport (>= 6.0.4) i18n rb-fsevent (0.11.1) rb-inotify (0.10.1) From 9ca1956bfe80c7462e189e7a89c2a39a131c1226 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 14 Mar 2022 12:29:49 +0100 Subject: [PATCH 082/329] Bundle update --- Gemfile.lock | 4 +- yarn.lock | 123 ++++++++++++++++++++++++--------------------------- 2 files changed, 61 insertions(+), 66 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f1f60efe..470f1da2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -162,7 +162,7 @@ GEM regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) - excon (0.91.0) + excon (0.92.0) factory_bot (6.2.0) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -502,7 +502,7 @@ GEM concurrent-ruby (~> 1.0) unf (0.1.4) unf_ext - unf_ext (0.0.8) + unf_ext (0.0.8.1) unicode-display_width (2.1.0) uri_template (0.7.0) web-console (4.2.0) diff --git a/yarn.lock b/yarn.lock index 99073742..690b59c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1001,55 +1001,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.18.1.tgz#7c61d53260a6cd8999a46a0bd3159773b93fd1ea" - integrity sha512-OZmk6RNcdQWxUkC8HBEruqpWUsaX/+pb1J/R5cDfHNeePLbDj9b8KFfs9QkgyZmmEP6l0Nu80TuDsdPF0q4uyw== + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.18.2.tgz#f980add635c242420a7f0c4dd3ed5668f1f39513" + integrity sha512-EsqKSNboi2gOiMuEwQranLucxrARi00y2vgUnaPXcqTKTlVlHDetoWHvq8/r29idA1JHGka5tDrwrmWccWIkrg== dependencies: - "@sentry/core" "6.18.1" - "@sentry/types" "6.18.1" - "@sentry/utils" "6.18.1" + "@sentry/core" "6.18.2" + "@sentry/types" "6.18.2" + "@sentry/utils" "6.18.2" tslib "^1.9.3" -"@sentry/core@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.1.tgz#6d09c4f59b30b62d5d288b5f3f3af56f1f7e6336" - integrity sha512-9V8Q+3Asi+3RL67CSIMMZ9mjMsu2/hrpQszYStX7hPPpAZIlAKk2MT5B+na/r80iWKhy+3Ts6aDFF218QtnsVw== +"@sentry/core@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.2.tgz#d27619b7b4a4b90e2cfdc254d40ee9d630b251b9" + integrity sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g== dependencies: - "@sentry/hub" "6.18.1" - "@sentry/minimal" "6.18.1" - "@sentry/types" "6.18.1" - "@sentry/utils" "6.18.1" + "@sentry/hub" "6.18.2" + "@sentry/minimal" "6.18.2" + "@sentry/types" "6.18.2" + "@sentry/utils" "6.18.2" tslib "^1.9.3" -"@sentry/hub@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.1.tgz#fcfb8cb84515efefaf4e48472305ea5a71455abb" - integrity sha512-+zGzgc/xX3an/nKA3ELMn9YD9VmqbNaNwWZ5/SjNUvzsYHh2UNZ7YzT8WawQsRVOXLljyCKxkWpFB4EchiYGbw== +"@sentry/hub@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.2.tgz#fdb8536f61899fd48f3d1b49a6957348ad729ec5" + integrity sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ== dependencies: - "@sentry/types" "6.18.1" - "@sentry/utils" "6.18.1" + "@sentry/types" "6.18.2" + "@sentry/utils" "6.18.2" tslib "^1.9.3" -"@sentry/minimal@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.1.tgz#eac73d2262589930aa0bb33e0e12380ac5b766a9" - integrity sha512-dm+0MuasWNi/LASvHX+09oCo8IBZY5WpMK8qXvQMnwQ9FVfklrjcfEI3666WORDCmeUhDCSeL2MbjPDm+AmPLg== +"@sentry/minimal@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.2.tgz#581c2fc030b9c89f1fcdc3e4855b91ce6c95db56" + integrity sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ== dependencies: - "@sentry/hub" "6.18.1" - "@sentry/types" "6.18.1" + "@sentry/hub" "6.18.2" + "@sentry/types" "6.18.2" tslib "^1.9.3" -"@sentry/types@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.1.tgz#e2de38dd0da8096a5d22f8effc6756c919266ede" - integrity sha512-wp741NoBKnXE/4T9L723sWJ8EcNMxeTIT1smgNJOfbPwrsDICoYmGEt6JFa05XHpWBGI66WuNvnDjoHVeh6zhA== +"@sentry/types@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be" + integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw== -"@sentry/utils@6.18.1": - version "6.18.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.1.tgz#1aa819502b042540612f4db7bcb86c7b176f5a6b" - integrity sha512-IFZmuvA+c5lDGlZEri13JSyUP0BHelzY0S4dcKxAzskPW+BtBdQDgYGV90iED1y+IRMLawWb34GF7HyJSouN1Q== +"@sentry/utils@6.18.2": + version "6.18.2" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff" + integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw== dependencies: - "@sentry/types" "6.18.1" + "@sentry/types" "6.18.2" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1307,9 +1307,9 @@ ansi-regex@^2.0.0: integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" @@ -1702,12 +1702,12 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.6.4: - version "4.19.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383" - integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg== + version "4.20.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" + integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== dependencies: - caniuse-lite "^1.0.30001312" - electron-to-chromium "^1.4.71" + caniuse-lite "^1.0.30001313" + electron-to-chromium "^1.4.76" escalade "^3.1.1" node-releases "^2.0.2" picocolors "^1.0.0" @@ -1858,10 +1858,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.30001312: - version "1.0.30001312" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f" - integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001313: + version "1.0.30001316" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001316.tgz#b44a1f419f82d2e119aa0bbdab5ec15471796358" + integrity sha512-JgUdNoZKxPZFzbzJwy4hDSyGuH/gXz2rN51QmoR8cBQsVo58llD3A0vlRKKRt8FGf5u69P9eQyIH8/z9vN/S0Q== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2904,10 +2904,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.4.71: - version "1.4.75" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd" - integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q== +electron-to-chromium@^1.4.76: + version "1.4.82" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.82.tgz#51e123ca434b1eba8c434ece2b54f095b304a651" + integrity sha512-Ks+ANzLoIrFDUOJdjxYMH6CMKB8UQo5modAwvSZTxgF+vEs/U7G5IbWFUp6dS4klPkTDVdxbORuk8xAXXhMsWw== elliptic@^6.5.3: version "6.5.4" @@ -3684,9 +3684,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" 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" - integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== + version "0.5.6" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" + integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== http-proxy-middleware@0.19.1: version "0.19.1" @@ -4530,22 +4530,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== - -"mime-db@>= 1.43.0 < 2": +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: - 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== + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mime@1.6.0: version "1.6.0" From 645c77c05efdd9feecf0d31257b10f5f40b7ad32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 03:01:28 +0000 Subject: [PATCH 083/329] Bump slim-rails from 3.3.0 to 3.4.0 Bumps [slim-rails](https://github.com/slim-template/slim-rails) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/slim-template/slim-rails/releases) - [Changelog](https://github.com/slim-template/slim-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/slim-template/slim-rails/compare/v3.3.0...v3.4.0) --- updated-dependencies: - dependency-name: slim-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 470f1da2..99256b09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -238,7 +238,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.14.0) + loofah (2.15.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -469,7 +469,7 @@ GEM slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) - slim-rails (3.3.0) + slim-rails (3.4.0) actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 5.0) From 8630e59f93c7513291dbcf06e009964eb4c9ab75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 03:02:09 +0000 Subject: [PATCH 084/329] Bump bcrypt from 3.1.16 to 3.1.17 Bumps [bcrypt](https://github.com/codahale/bcrypt-ruby) from 3.1.16 to 3.1.17. - [Release notes](https://github.com/codahale/bcrypt-ruby/releases) - [Changelog](https://github.com/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG) - [Commits](https://github.com/codahale/bcrypt-ruby/compare/v3.1.16...v3.1.17) --- updated-dependencies: - dependency-name: bcrypt 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 470f1da2..f45ea6e1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -101,7 +101,7 @@ GEM minitest-autotest (~> 1.0) autotest-rails (4.2.1) ZenTest (~> 4.5) - bcrypt (3.1.16) + bcrypt (3.1.17) better_errors (2.9.1) coderay (>= 1.0.0) erubi (>= 1.0.0) From 61d3bffe1af0b3133c8885630424176337967788 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 16 Mar 2022 13:40:25 +0100 Subject: [PATCH 085/329] Keep LTI parameters after submitting through the web interface --- app/controllers/concerns/lti.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/concerns/lti.rb b/app/controllers/concerns/lti.rb index cb8665bd..8d3b727f 100644 --- a/app/controllers/concerns/lti.rb +++ b/app/controllers/concerns/lti.rb @@ -21,7 +21,7 @@ module Lti # exercise_id.nil? ==> the user has logged out. All session data is to be destroyed # exercise_id.exists? ==> the user has submitted the results of an exercise to the consumer. # Only the lti_parameters are deleted. - def clear_lti_session_data(exercise_id = nil, user_id = nil) + def clear_lti_session_data(exercise_id = nil, _user_id = nil) if exercise_id.nil? session.delete(:external_user_id) session.delete(:study_group_id) @@ -29,8 +29,10 @@ module Lti session.delete(:lti_exercise_id) session.delete(:lti_parameters_id) end - LtiParameter.where(external_users_id: user_id, - exercises_id: exercise_id).destroy_all + + # March 2022: We temporarily allow reusing the LTI credentials and don't remove them on purpose. + # This allows users to jump between remote and web evaluation with the same behavior. + # LtiParameter.where(external_users_id: user_id, exercises_id: exercise_id).destroy_all end private :clear_lti_session_data From d62d18c9ff522cb6cb73fdf16ac8208031408456 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Mar 2022 03:02:04 +0000 Subject: [PATCH 086/329] Bump rubocop-rails from 2.13.2 to 2.14.2 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.13.2 to 2.14.2. - [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.2...v2.14.2) --- updated-dependencies: - dependency-name: rubocop-rails 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 34052dbd..8fb2213e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,7 +423,7 @@ GEM rubocop-performance (1.13.3) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.13.2) + rubocop-rails (2.14.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) From d89cd8848558a3b0cecf79c27855cb7a0f7827da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 03:02:29 +0000 Subject: [PATCH 087/329] Bump sortablejs from 1.14.0 to 1.15.0 Bumps [sortablejs](https://github.com/SortableJS/Sortable) from 1.14.0 to 1.15.0. - [Release notes](https://github.com/SortableJS/Sortable/releases) - [Commits](https://github.com/SortableJS/Sortable/compare/1.14.0...1.15.0) --- updated-dependencies: - dependency-name: sortablejs 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 c5b69024..79905b38 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "opensans-webkit": "^1.1.0", "popper.js": "^1.16.1", "rails-erb-loader": "^5.5.2", - "sortablejs": "^1.14.0", + "sortablejs": "^1.15.0", "underscore": "^1.13.2", "vis": "^4.21.0", "webpack-merge": "^5.8.0" diff --git a/yarn.lock b/yarn.lock index 690b59c6..c274b3d9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6562,10 +6562,10 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -sortablejs@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.14.0.tgz#6d2e17ccbdb25f464734df621d4f35d4ab35b3d8" - integrity sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w== +sortablejs@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a" + integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== source-list-map@^2.0.0: version "2.0.1" From 6da322009bb8e67cf9a12914b557154cb1e27907 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 03:02:35 +0000 Subject: [PATCH 088/329] Bump sentry-ruby from 5.2.0 to 5.2.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.2.0 to 5.2.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/5.2.0...5.2.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 34052dbd..97419e9f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -452,10 +452,10 @@ GEM sentry-rails (5.2.0) railties (>= 5.0) sentry-ruby-core (~> 5.2.0) - sentry-ruby (5.2.0) + sentry-ruby (5.2.1) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.2.0) - sentry-ruby-core (5.2.0) + sentry-ruby-core (= 5.2.1) + sentry-ruby-core (5.2.1) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From 2f27934d8ba2b08ebcc2affa4fa021924e1aa299 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 03:02:49 +0000 Subject: [PATCH 089/329] Bump kramdown from 2.3.1 to 2.3.2 Bumps [kramdown](https://github.com/gettalong/kramdown) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/gettalong/kramdown/releases) - [Changelog](https://github.com/gettalong/kramdown/blob/master/doc/news.page) - [Commits](https://github.com/gettalong/kramdown/commits) --- updated-dependencies: - dependency-name: kramdown 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 34052dbd..38c866d1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -233,7 +233,7 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) - kramdown (2.3.1) + kramdown (2.3.2) rexml listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) From ccdba79cbf06213d9c32e1ec06ef3e6d7773f43b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 21 Mar 2022 09:04:01 +0100 Subject: [PATCH 090/329] Extract locales in accordance with Rails/I18nLocaleTexts --- app/controllers/error_template_attributes_controller.rb | 6 +++--- app/controllers/error_templates_controller.rb | 6 +++--- app/controllers/file_templates_controller.rb | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/controllers/error_template_attributes_controller.rb b/app/controllers/error_template_attributes_controller.rb index 8540ce1d..3ad29480 100644 --- a/app/controllers/error_template_attributes_controller.rb +++ b/app/controllers/error_template_attributes_controller.rb @@ -42,7 +42,7 @@ class ErrorTemplateAttributesController < ApplicationController respond_to do |format| if @error_template_attribute.save format.html do - redirect_to @error_template_attribute, notice: 'Error template attribute was successfully created.' + redirect_to @error_template_attribute, notice: t('shared.object_created', model: @error_template_attribute.class.model_name.human) end format.json { render :show, status: :created, location: @error_template_attribute } else @@ -59,7 +59,7 @@ class ErrorTemplateAttributesController < ApplicationController respond_to do |format| if @error_template_attribute.update(error_template_attribute_params) format.html do - redirect_to @error_template_attribute, notice: 'Error template attribute was successfully updated.' + redirect_to @error_template_attribute, notice: t('shared.object_updated', model: @error_template_attribute.class.model_name.human) end format.json { render :show, status: :ok, location: @error_template_attribute } else @@ -76,7 +76,7 @@ class ErrorTemplateAttributesController < ApplicationController @error_template_attribute.destroy respond_to do |format| format.html do - redirect_to error_template_attributes_url, notice: 'Error template attribute was successfully destroyed.' + redirect_to error_template_attributes_url, notice: t('shared.object_destroyed', model: @error_template_attribute.class.model_name.human) end format.json { head :no_content } end diff --git a/app/controllers/error_templates_controller.rb b/app/controllers/error_templates_controller.rb index b66d48d5..e459cef4 100644 --- a/app/controllers/error_templates_controller.rb +++ b/app/controllers/error_templates_controller.rb @@ -40,7 +40,7 @@ class ErrorTemplatesController < ApplicationController respond_to do |format| if @error_template.save - format.html { redirect_to @error_template, notice: 'Error template was successfully created.' } + format.html { redirect_to @error_template, notice: t('shared.object_created', model: @error_template.class.model_name.human) } format.json { render :show, status: :created, location: @error_template } else format.html { render :new } @@ -55,7 +55,7 @@ class ErrorTemplatesController < ApplicationController authorize! respond_to do |format| if @error_template.update(error_template_params) - format.html { redirect_to @error_template, notice: 'Error template was successfully updated.' } + format.html { redirect_to @error_template, notice: t('shared.object_updated', model: @error_template.class.model_name.human) } format.json { render :show, status: :ok, location: @error_template } else format.html { render :edit } @@ -70,7 +70,7 @@ class ErrorTemplatesController < ApplicationController authorize! @error_template.destroy respond_to do |format| - format.html { redirect_to error_templates_url, notice: 'Error template was successfully destroyed.' } + format.html { redirect_to error_templates_url, notice: t('shared.object_destroyed', model: @error_template.class.model_name.human) } format.json { head :no_content } end end diff --git a/app/controllers/file_templates_controller.rb b/app/controllers/file_templates_controller.rb index 9852a68a..e8813e1c 100644 --- a/app/controllers/file_templates_controller.rb +++ b/app/controllers/file_templates_controller.rb @@ -48,7 +48,7 @@ class FileTemplatesController < ApplicationController respond_to do |format| if @file_template.save - format.html { redirect_to @file_template, notice: 'File template was successfully created.' } + format.html { redirect_to @file_template, notice: t('shared.object_created', model: @file_template.class.model_name.human) } format.json { render :show, status: :created, location: @file_template } else format.html { render :new } @@ -63,7 +63,7 @@ class FileTemplatesController < ApplicationController authorize! respond_to do |format| if @file_template.update(file_template_params) - format.html { redirect_to @file_template, notice: 'File template was successfully updated.' } + format.html { redirect_to @file_template, notice: t('shared.object_updated', model: @file_template.class.model_name.human) } format.json { render :show, status: :ok, location: @file_template } else format.html { render :edit } @@ -78,7 +78,7 @@ class FileTemplatesController < ApplicationController authorize! @file_template.destroy respond_to do |format| - format.html { redirect_to file_templates_url, notice: 'File template was successfully destroyed.' } + format.html { redirect_to file_templates_url, notice: t('shared.object_destroyed', model: @file_template.class.model_name.human) } format.json { head :no_content } end end From 8b583ea2c96a958dab52bbf213fed413370d3935 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 21 Mar 2022 09:04:20 +0100 Subject: [PATCH 091/329] Fix Rails/DeprecatedActiveModelErrorsMethods --- app/validators/code_ocean/file_name_validator.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/validators/code_ocean/file_name_validator.rb b/app/validators/code_ocean/file_name_validator.rb index f9161458..0c377f01 100644 --- a/app/validators/code_ocean/file_name_validator.rb +++ b/app/validators/code_ocean/file_name_validator.rb @@ -6,7 +6,7 @@ module CodeOcean existing_files = File.where(name: record.name, path: record.path, file_type_id: record.file_type_id, context_id: record.context_id, context_type: record.context_type).to_a if !existing_files.empty? && (!record.context.is_a?(Exercise) || record.context.new_record?) - record.errors[:base] << 'Duplicate' + record.errors.add(:base, 'Duplicate') end end end From feca4c20928eee4e4cd50d4be885d3e71a72f72d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 03:01:08 +0000 Subject: [PATCH 092/329] Bump mnemosyne-ruby from 1.12.0 to 1.12.1 Bumps [mnemosyne-ruby](https://github.com/jgraichen/mnemosyne-ruby) from 1.12.0 to 1.12.1. - [Release notes](https://github.com/jgraichen/mnemosyne-ruby/releases) - [Changelog](https://github.com/mnemosyne-mon/mnemosyne-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/jgraichen/mnemosyne-ruby/compare/v1.12.0...v1.12.1) --- updated-dependencies: - dependency-name: mnemosyne-ruby 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 77afd922..b215506f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -139,7 +139,7 @@ GEM childprocess (4.1.0) chronic (0.10.2) coderay (1.1.3) - concurrent-ruby (1.1.9) + concurrent-ruby (1.1.10) connection_pool (2.2.5) crack (0.4.5) rexml @@ -261,7 +261,7 @@ GEM path_expander (~> 1.0) minitest-server (1.0.6) minitest (~> 5.0) - mnemosyne-ruby (1.12.0) + mnemosyne-ruby (1.12.1) activesupport (>= 4) bunny msgpack (1.4.5) From 6f68b7bda2036978cee4699fa28c75cf154098f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 03:02:10 +0000 Subject: [PATCH 093/329] Bump sentry-rails from 5.2.0 to 5.2.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.2.0 to 5.2.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/5.2.0...5.2.1) --- updated-dependencies: - dependency-name: sentry-rails 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 77afd922..fbe54b4c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -139,7 +139,7 @@ GEM childprocess (4.1.0) chronic (0.10.2) coderay (1.1.3) - concurrent-ruby (1.1.9) + concurrent-ruby (1.1.10) connection_pool (2.2.5) crack (0.4.5) rexml @@ -449,9 +449,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.2.0) + sentry-rails (5.2.1) railties (>= 5.0) - sentry-ruby-core (~> 5.2.0) + sentry-ruby-core (~> 5.2.1) sentry-ruby (5.2.1) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-ruby-core (= 5.2.1) From 2fb7ec39159bbce2e0b5de04a4ab74441da78230 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Mar 2022 03:01:49 +0000 Subject: [PATCH 094/329] Bump rubocop from 1.26.0 to 1.26.1 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.26.0 to 1.26.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.26.0...v1.26.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development 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 5ce96888..70346bc0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -287,7 +287,7 @@ GEM rack (>= 1.2, < 3) pagedown-bootstrap-rails (2.1.4) railties (> 3.1) - parallel (1.21.0) + parallel (1.22.0) parser (3.1.1.0) ast (~> 2.4.1) path_expander (1.1.0) @@ -409,7 +409,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.26.0) + rubocop (1.26.1) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) From a0c80dbc75ce5a7965baf65a7776821e16a067ab Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 23 Mar 2022 20:59:25 +0100 Subject: [PATCH 095/329] Update locales for exercise reset --- config/locales/de.yml | 4 ++-- config/locales/en.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/locales/de.yml b/config/locales/de.yml index 09e3eebe..8fa4cdfa 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -328,8 +328,8 @@ de: editor: collapse_action_sidebar: Aktions-Leiste Einklappen collapse_output_sidebar: Ausgabe-Leiste Einklappen - confirm_start_over: Wollen Sie wirklich von vorne anfangen? Ihr kompletter Fortschritt in dieser Aufgabe wird entfernt; andere Aufgaben bleiben unverändert. Diese Aktion kann nicht rückgängig gemacht werden. - confirm_start_over_active_file: Wollen Sie wirklich den Inhalt der ausgewählten Datei '%{filename}' zurücksetzen? Diese Aktion kann nicht rückgängig gemacht werden. + confirm_start_over: Wollen Sie in dieser Aufgabe wirklich von vorne anfangen? Ihre bisherigen Änderungen in dieser Aufgabe werden entfernt; andere Aufgaben bleiben unverändert. Diese Aktion kann nicht rückgängig gemacht werden. + confirm_start_over_active_file: Wollen Sie wirklich Ihre Änderungen in der ausgewählten Datei '%{filename}' zurücksetzen? Diese Aktion kann nicht rückgängig gemacht werden. confirm_submit: Wollen Sie Ihren Code wirklich zur Bewertung abgeben? create_file: Neue Datei depleted: Alle Ausführungsumgebungen sind momentan in Benutzung. Probiere es später nochmal. diff --git a/config/locales/en.yml b/config/locales/en.yml index 4f441daf..81a77075 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -328,8 +328,8 @@ en: editor: collapse_action_sidebar: Collapse Action Sidebar collapse_output_sidebar: Collapse Output Sidebar - confirm_start_over: Do you really want to start over? Your complete progress in this exercise will be reset; other exercises remain untouched. You cannot undo this action. - confirm_start_over_active_file: Do you really want to reset the active file '%{filename}'? You cannot undo this action. + confirm_start_over: Do you really want to start over? Your previous changes in this exercise will be reset; other exercises remain untouched. You cannot undo this action. + confirm_start_over_active_file: Do you really want to remove any changes in the active file '%{filename}'? You cannot undo this action. confirm_submit: Do you really want to submit your code for grading? create_file: New File depleted: All execution environments are busy. Please try again later. From a83d7e18217d9d540f5c6aba2bc25cc6d0b182de Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 23 Mar 2022 21:02:27 +0100 Subject: [PATCH 096/329] Update bundle --- Gemfile | 2 +- Gemfile.lock | 6 +- yarn.lock | 272 +++++++++++++++++++++++++-------------------------- 3 files changed, 139 insertions(+), 141 deletions(-) diff --git a/Gemfile b/Gemfile index ba24126a..6e8adcbc 100644 --- a/Gemfile +++ b/Gemfile @@ -31,7 +31,7 @@ gem 'pry-byebug' gem 'puma' gem 'pundit' gem 'rails', '~> 6.1.5' -gem 'rails_admin' +gem 'rails_admin', '< 3.0.0' # Blocked by https://github.com/railsadminteam/rails_admin/issues/3490 gem 'rails-i18n' gem 'rails-timeago' gem 'ransack' diff --git a/Gemfile.lock b/Gemfile.lock index 70346bc0..74946b68 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -162,8 +162,8 @@ GEM regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) - excon (0.92.0) - factory_bot (6.2.0) + excon (0.92.1) + factory_bot (6.2.1) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) @@ -581,7 +581,7 @@ DEPENDENCIES rails-controller-testing rails-i18n rails-timeago - rails_admin + rails_admin (< 3.0.0) ransack rest-client rspec-autotest diff --git a/yarn.lock b/yarn.lock index c274b3d9..400a17d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,23 +16,23 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" - integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== "@babel/core@^7.15.0": - version "7.17.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" - integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" + integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.3" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.8" + "@babel/parser" "^7.17.8" "@babel/template" "^7.16.7" "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" @@ -42,10 +42,10 @@ json5 "^2.1.2" semver "^6.3.0" -"@babel/generator@^7.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" - integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== dependencies: "@babel/types" "^7.17.0" jsesc "^2.5.1" @@ -66,12 +66,12 @@ "@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.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== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.7" "@babel/helper-validator-option" "^7.16.7" browserslist "^4.17.5" semver "^6.3.0" @@ -149,11 +149,11 @@ "@babel/types" "^7.16.7" "@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== + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": version "7.16.7" @@ -162,14 +162,14 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.7": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0" - integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA== +"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" "@babel/template" "^7.16.7" @@ -208,12 +208,12 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" -"@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== +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.17.0" "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" @@ -249,13 +249,13 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.2": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" - integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== +"@babel/helpers@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" + integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" + "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": @@ -267,10 +267,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" - integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" + integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -566,9 +566,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.7": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz#c445f75819641788a27a0a3a759d9df911df6abc" - integrity sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg== + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" + integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -635,22 +635,22 @@ babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" - integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz#d86b217c8e45bb5f2dbc11eefc8eab62cf980d19" + integrity sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA== dependencies: - "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" "@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== + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" + integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== dependencies: "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-module-transforms" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" @@ -868,9 +868,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" - integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" + integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== dependencies: regenerator-runtime "^0.13.4" @@ -883,7 +883,7 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3": +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== @@ -1001,55 +1001,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.18.2" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.18.2.tgz#f980add635c242420a7f0c4dd3ed5668f1f39513" - integrity sha512-EsqKSNboi2gOiMuEwQranLucxrARi00y2vgUnaPXcqTKTlVlHDetoWHvq8/r29idA1JHGka5tDrwrmWccWIkrg== + version "6.19.2" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.2.tgz#c0f6df07584f3b36fa037067aea20b2c8c2095a3" + integrity sha512-5VC44p5Vu2eJhVT39nLAJFgha5MjHDYCyZRR1ieeZt3a++otojPGBBAKNAtrEMGV+A2Z9AoneD6ZnDVlyb3GKg== dependencies: - "@sentry/core" "6.18.2" - "@sentry/types" "6.18.2" - "@sentry/utils" "6.18.2" + "@sentry/core" "6.19.2" + "@sentry/types" "6.19.2" + "@sentry/utils" "6.19.2" tslib "^1.9.3" -"@sentry/core@6.18.2": - version "6.18.2" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.18.2.tgz#d27619b7b4a4b90e2cfdc254d40ee9d630b251b9" - integrity sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g== +"@sentry/core@6.19.2": + version "6.19.2" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.2.tgz#dd35ba6ca41a2dd011c43f732bcdadbb52c06376" + integrity sha512-yu1R3ewBT4udmB4v7sc4biQZ0Z0rfB9+TzB5ZKoCftbe6kqXjFMMaFRYNUF9HicVldKAsBktgkWw3+yfqGkw/A== dependencies: - "@sentry/hub" "6.18.2" - "@sentry/minimal" "6.18.2" - "@sentry/types" "6.18.2" - "@sentry/utils" "6.18.2" + "@sentry/hub" "6.19.2" + "@sentry/minimal" "6.19.2" + "@sentry/types" "6.19.2" + "@sentry/utils" "6.19.2" tslib "^1.9.3" -"@sentry/hub@6.18.2": - version "6.18.2" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.18.2.tgz#fdb8536f61899fd48f3d1b49a6957348ad729ec5" - integrity sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ== +"@sentry/hub@6.19.2": + version "6.19.2" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.2.tgz#0e9f9c507e55d8396002f644b43ef27cc9ff1289" + integrity sha512-W7KCgNBgdBIMagOxy5J5KQPe+maYxSqfE8a5ncQ3R8BcZDQEKnkW/1FplNbfRLZqA/tL/ndKb7pTPqVtzsbARw== dependencies: - "@sentry/types" "6.18.2" - "@sentry/utils" "6.18.2" + "@sentry/types" "6.19.2" + "@sentry/utils" "6.19.2" tslib "^1.9.3" -"@sentry/minimal@6.18.2": - version "6.18.2" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.18.2.tgz#581c2fc030b9c89f1fcdc3e4855b91ce6c95db56" - integrity sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ== +"@sentry/minimal@6.19.2": + version "6.19.2" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.2.tgz#e748541e4adbc7e80a3b6ccaf01b631c17fc44b4" + integrity sha512-ClwxKm77iDHET7kpzv1JvzDx1er5DoNu+EUjst0kQzARIrXvu9xuZuE2/CnBWycQWqw8o3HoGoKz65uIhsUCzQ== dependencies: - "@sentry/hub" "6.18.2" - "@sentry/types" "6.18.2" + "@sentry/hub" "6.19.2" + "@sentry/types" "6.19.2" tslib "^1.9.3" -"@sentry/types@6.18.2": - version "6.18.2" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be" - integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw== +"@sentry/types@6.19.2": + version "6.19.2" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.2.tgz#0219c9da21ed975951108b8541913b1966464435" + integrity sha512-XO5qmVBdTs+7PdCz7fAwn1afWxSnRE2KLBFg5/vOdKosPSSHsSHUURSkxiEZc2QsR+JpRB4AeQ26AkIRX38qTg== -"@sentry/utils@6.18.2": - version "6.18.2" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff" - integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw== +"@sentry/utils@6.19.2": + version "6.19.2" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.2.tgz#995efb896c5159369509f4896c27a2d2ea9191f2" + integrity sha512-2DQQ2OJaxjtyxGq5FmMlqb6hptsqMs2xoBiVRMkTS/rvyTrk1oQdKZ8ePwjtgX3nJ728ni3IXIyXV+vfGp4EBw== dependencies: - "@sentry/types" "6.18.2" + "@sentry/types" "6.19.2" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1061,9 +1061,9 @@ "@types/node" "*" "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + version "7.0.10" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" + integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== "@types/minimatch@*": version "3.0.5" @@ -1071,9 +1071,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + version "17.0.23" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" + integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1447,12 +1447,12 @@ autoprefixer@^9.6.1: postcss-value-parser "^4.1.0" babel-loader@^8.2.2: - version "8.2.3" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" - integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== + version "8.2.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" + integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== dependencies: find-cache-dir "^3.3.1" - loader-utils "^1.4.0" + loader-utils "^2.0.0" make-dir "^3.1.0" schema-utils "^2.6.5" @@ -1702,12 +1702,12 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.6.4: - version "4.20.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" - integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== + version "4.20.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" + integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== dependencies: - caniuse-lite "^1.0.30001313" - electron-to-chromium "^1.4.76" + caniuse-lite "^1.0.30001317" + electron-to-chromium "^1.4.84" escalade "^3.1.1" node-releases "^2.0.2" picocolors "^1.0.0" @@ -1858,10 +1858,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.30001313: - version "1.0.30001316" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001316.tgz#b44a1f419f82d2e119aa0bbdab5ec15471796358" - integrity sha512-JgUdNoZKxPZFzbzJwy4hDSyGuH/gXz2rN51QmoR8cBQsVo58llD3A0vlRKKRt8FGf5u69P9eQyIH8/z9vN/S0Q== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317: + version "1.0.30001319" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz#eb4da4eb3ecdd409f7ba1907820061d56096e88f" + integrity sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2709,9 +2709,9 @@ debug@^3.1.1, debug@^3.2.7: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -2904,10 +2904,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.4.76: - version "1.4.82" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.82.tgz#51e123ca434b1eba8c434ece2b54f095b304a651" - integrity sha512-Ks+ANzLoIrFDUOJdjxYMH6CMKB8UQo5modAwvSZTxgF+vEs/U7G5IbWFUp6dS4klPkTDVdxbORuk8xAXXhMsWw== +electron-to-chromium@^1.4.84: + version "1.4.91" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.91.tgz#842bbc97fd639abe7e46e7da530e3af5f6ca2831" + integrity sha512-Z7Jkc4+ouEg8F6RrrgLOs0kkJjI0cnyFQmnGVpln8pPifuKBNbUr37GMgJsCTSwy6Z9TK7oTwW33Oe+3aERYew== elliptic@^6.5.3: version "6.5.4" @@ -4264,11 +4264,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" + version "2.2.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jstree@^3.3.12: version "3.3.12" @@ -4579,10 +4577,10 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass-collect@^1.0.2: version "1.0.2" @@ -4645,11 +4643,11 @@ mixin-deep@^1.2.0: is-extendable "^1.0.1" mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" @@ -6897,9 +6895,9 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.12.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.0.tgz#728c6bff05f7d1dcb687d8eace0644802a9dae8a" - integrity sha512-R3AUhNBGWiFc77HXag+1fXpAxTAFRQTJemlJKjAgD9r8xXTpjNKqIXwHM/o7Rh+O0kUJtS3WQVdBeMKFk5sw9A== + version "5.12.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.1.tgz#4cf2ebed1f5bceef5c83b9f60104ac4a78b49e9c" + integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== dependencies: acorn "^8.5.0" commander "^2.20.0" From f42959a7294e8a7efa33354f82d8483b0ec803cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Mar 2022 22:17:18 +0000 Subject: [PATCH 097/329] Bump puma from 5.6.2 to 5.6.4 Bumps [puma](https://github.com/puma/puma) from 5.6.2 to 5.6.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.2...v5.6.4) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 74946b68..75a1d6ef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -303,7 +303,7 @@ GEM pry-rails (0.3.9) pry (>= 0.10.4) public_suffix (4.0.6) - puma (5.6.2) + puma (5.6.4) nio4r (~> 2.0) pundit (2.2.0) activesupport (>= 3.0.0) From 84530b326156c92131a317b625d01f245ca4eefc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 03:01:04 +0000 Subject: [PATCH 098/329] Bump i18n-js from 3.9.1 to 3.9.2 Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.9.1 to 3.9.2. - [Release notes](https://github.com/fnando/i18n-js/releases) - [Changelog](https://github.com/fnando/i18n-js/blob/v3.9.2/CHANGELOG.md) - [Commits](https://github.com/fnando/i18n-js/compare/v3.9.1...v3.9.2) --- updated-dependencies: - dependency-name: i18n-js 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 75a1d6ef..8645bcf1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -194,7 +194,7 @@ GEM domain_name (~> 0.5) i18n (1.10.0) concurrent-ruby (~> 1.0) - i18n-js (3.9.1) + i18n-js (3.9.2) i18n (>= 0.6.6) image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) From 2903d9c0e6799b81f697324bf209b8e6bd2bcaec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 03:01:27 +0000 Subject: [PATCH 099/329] Bump ransack from 2.6.0 to 3.0.0 Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 2.6.0 to 3.0.0. - [Release notes](https://github.com/activerecord-hackery/ransack/releases) - [Changelog](https://github.com/activerecord-hackery/ransack/blob/main/CHANGELOG.md) - [Commits](https://github.com/activerecord-hackery/ransack/compare/v2.6.0...v3.0.0) --- updated-dependencies: - dependency-name: ransack 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 75a1d6ef..154d3065 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -368,7 +368,7 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - ransack (2.6.0) + ransack (3.0.0) activerecord (>= 6.0.4) activesupport (>= 6.0.4) i18n From 649606099874297a28f31e2a92d1637293c696fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Apr 2022 03:02:10 +0000 Subject: [PATCH 100/329] Bump pg from 1.3.4 to 1.3.5 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/commits) --- updated-dependencies: - dependency-name: pg 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 8645bcf1..1a4e1058 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -291,7 +291,7 @@ GEM parser (3.1.1.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.3.4) + pg (1.3.5) prometheus_exporter (2.0.2) webrick pry (0.13.1) From 4bae334cfae9477b4e789d2e3df2e58243b395a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 03:01:31 +0000 Subject: [PATCH 101/329] Bump json_schemer from 0.2.19 to 0.2.20 Bumps [json_schemer](https://github.com/davishmcclurg/json_schemer) from 0.2.19 to 0.2.20. - [Release notes](https://github.com/davishmcclurg/json_schemer/releases) - [Commits](https://github.com/davishmcclurg/json_schemer/compare/v0.2.19...v0.2.20) --- updated-dependencies: - dependency-name: json_schemer 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 1a4e1058..61402a75 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -215,7 +215,7 @@ GEM js-routes (2.2.3) railties (>= 4) json (2.6.1) - json_schemer (0.2.19) + json_schemer (0.2.20) ecma-re-validator (~> 0.3) hana (~> 1.3) regexp_parser (~> 2.0) From 88f38b03acbe3520ac7a83b981c16dc895b5a536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 03:01:55 +0000 Subject: [PATCH 102/329] Bump d3 from 7.3.0 to 7.4.2 Bumps [d3](https://github.com/d3/d3) from 7.3.0 to 7.4.2. - [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.3.0...v7.4.2) --- 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 79905b38..6264437b 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.3.0", + "d3": "^7.4.2", "d3-tip": "^0.9.1", "highlight.js": "^11.5.0", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 400a17d8..d8de598b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2658,10 +2658,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -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== +d3@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.4.2.tgz#c5d1001459dc9517bc774949f71b95e8735b3b4e" + integrity sha512-7VK+QBAWtNDbP2EU/ThkXgjd0u1MsXYYgCK2ElQ4BBWh0usE75tHVVeYx47m2pqQEy4isYKAA0tAFSln0l+9EQ== dependencies: d3-array "3" d3-axis "3" From 393c66918a4c2e6ce997d31b166022d32e47adf5 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 4 Apr 2022 16:28:38 +0200 Subject: [PATCH 103/329] Reduce sample rate for Sentry transactions --- config/initializers/sentry.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index e9559609..2155bd8e 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -30,7 +30,7 @@ Sentry.init do |config| when '/', '/ping' 0.00 # ignore health check else - 0.05 + 0.01 end else 0.0 # ignore all other transactions From 6f240d6d5164904bbbba47e8e1d4cccb2f51bc7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Apr 2022 03:01:49 +0000 Subject: [PATCH 104/329] Bump newrelic_rpm from 8.5.0 to 8.6.0 Bumps [newrelic_rpm](https://github.com/newrelic/newrelic-ruby-agent) from 8.5.0 to 8.6.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.5.0...8.6.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 f68e4e34..39c110b1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -271,7 +271,7 @@ GEM net-http-persistent (4.0.1) connection_pool (~> 2.2) netrc (0.11.0) - newrelic_rpm (8.5.0) + newrelic_rpm (8.6.0) nio4r (2.5.8) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) From d1d628a0901859e6181b64081b5ec9edd71a0bab Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 6 Apr 2022 19:50:25 +0200 Subject: [PATCH 105/329] Increase time for intervention and RfC tooltip --- app/assets/javascripts/editor/editor.js.erb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index cce1c53e..ecc91d40 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -17,7 +17,7 @@ var CodeOceanEditor = { //Request-For-Comments-Configuration REQUEST_FOR_COMMENTS_DELAY: 0, REQUEST_TOOLTIP_TIME: 5000, - REQUEST_TOOLTIP_DELAY: 10 * 60 * 1000, + REQUEST_TOOLTIP_DELAY: 15 * 60 * 1000, editors: [], editor_for_file: new Map(), @@ -835,11 +835,7 @@ var CodeOceanEditor = { const percentile75 = data['working_time_75_percentile']; const accumulatedWorkTimeUser = data['working_time_accumulated']; - let minTimeIntervention = 10 * 60 * 1000; - if ($('#editor').data('exercise-id') === 909) { - // 30 minutes for our large Map exercise - minTimeIntervention = 30 * 60 * 1000; - } + let minTimeIntervention = 20 * 60 * 1000; let timeUntilIntervention; if ((accumulatedWorkTimeUser - percentile75) > 0) { From 5f68baba7545922aa086e64d010678cae1d9aa1d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 6 Apr 2022 19:51:28 +0200 Subject: [PATCH 106/329] Fix typo for TipsIntervention in JS --- 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 ecc91d40..f7c9e804 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -860,7 +860,7 @@ var CodeOceanEditor = { $('#tips-intervention-modal').modal('show'); $.ajax({ data: { - intervention_type: 'TipIntervention' + intervention_type: 'TipsIntervention' }, dataType: 'json', type: 'POST', From 692cb1107e24737a72bc4debd26129e6d724f2ba Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 7 Apr 2022 18:17:27 +0200 Subject: [PATCH 107/329] Remove non-printable characters from console --- app/assets/javascripts/editor/evaluation.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/assets/javascripts/editor/evaluation.js b/app/assets/javascripts/editor/evaluation.js index c5723f12..a94eae38 100644 --- a/app/assets/javascripts/editor/evaluation.js +++ b/app/assets/javascripts/editor/evaluation.js @@ -1,5 +1,8 @@ CodeOceanEditorEvaluation = { chunkBuffer: [{streamedResponse: true}], + // A list of non-printable characters that are not allowed in the code output. + // Taken from https://stackoverflow.com/a/69024306 + nonPrintableRegEx: /[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u2000-\u200F\u2028-\u202F\u205F-\u206F\u3000\uFEFF]/g, /** * Scoring-Functions @@ -207,21 +210,28 @@ CodeOceanEditorEvaluation = { // Switch all four lines below to enable the output of images and render tags if (!colorize) { if (output.stdout !== undefined && output.stdout !== '') { + output.stdout = output.stdout.replace(this.nonPrintableRegEx, "") element.append(output.stdout) //element.text(element.text() + output.stdout) } if (output.stderr !== undefined && output.stderr !== '') { + output.stderr = output.stderr.replace(this.nonPrintableRegEx, "") + element.append('StdErr: ' + output.stderr); //element.text('StdErr: ' + element.text() + output.stderr); } } else if (output.stderr) { + output.stderr = output.stderr.replace(this.nonPrintableRegEx, "") + element.addClass('text-warning').append(output.stderr); //element.addClass('text-warning').text(element.text() + output.stderr); this.QaApiOutputBuffer.stderr += output.stderr; } else if (output.stdout) { + output.stdout = output.stdout.replace(this.nonPrintableRegEx, "") + element.addClass('text-success').append(output.stdout); //element.addClass('text-success').text(element.text() + output.stdout); this.QaApiOutputBuffer.stdout += output.stdout; From 0583076c2b1795eedd5313864e2786876b9974e4 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 7 Apr 2022 19:56:34 +0200 Subject: [PATCH 108/329] Fix Thread leakage when scoring or testing submissions It is discouraged to do anything directly within the Tubesock hijack block. We might only use the callbacks (onopen, onmessage, onclose, onerror). Otherwise, Tubesock might not close all Threads correctly and will keep them awake every five seconds. --- Gemfile | 2 +- Gemfile.lock | 24 +++++++------------ app/controllers/submissions_controller.rb | 29 ++++++++++++++--------- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/Gemfile b/Gemfile index 6e8adcbc..cad0b7cf 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'sass-rails' gem 'slim-rails' gem 'sorcery' # Causes a deprecation warning in Rails 6.0+, see: https://github.com/Sorcery/sorcery/pull/255 gem 'telegraf' -gem 'tubesock', github: 'gosukiwi/tubesock', branch: 'patch-1' # Switch to a fork which is compatible with Rails 5 +gem 'tubesock' gem 'turbolinks' gem 'webpacker' gem 'whenever', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 39c110b1..a5356d11 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,15 +6,6 @@ GIT json (~> 2.6.1) structured_warnings (~> 0.4.0) -GIT - remote: https://github.com/gosukiwi/tubesock.git - revision: 86a5ca4f7d3c3a7b9a727ad91df3b9b4912eda39 - branch: patch-1 - specs: - tubesock (0.2.7) - rack (>= 1.5.0) - websocket (>= 1.1.0) - GIT remote: https://github.com/openHPI/proforma.git revision: dc68000325388e1d75f31be9e136a82edad8a56d @@ -162,7 +153,7 @@ GEM regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) - excon (0.92.1) + excon (0.92.2) factory_bot (6.2.1) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -238,7 +229,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.15.0) + loofah (2.16.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -264,7 +255,7 @@ GEM mnemosyne-ruby (1.12.1) activesupport (>= 4) bunny - msgpack (1.4.5) + msgpack (1.5.1) multi_json (1.15.0) multi_xml (0.6.0) nested_form (0.3.2) @@ -287,7 +278,7 @@ GEM rack (>= 1.2, < 3) pagedown-bootstrap-rails (2.1.4) railties (> 3.1) - parallel (1.22.0) + parallel (1.22.1) parser (3.1.1.0) ast (~> 2.4.1) path_expander (1.1.0) @@ -397,7 +388,7 @@ GEM rspec-expectations (3.11.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) - rspec-mocks (3.11.0) + rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) rspec-rails (5.1.1) @@ -495,6 +486,9 @@ GEM temple (0.8.2) thor (1.2.1) tilt (2.0.10) + tubesock (0.2.9) + rack (>= 1.5.0) + websocket (>= 1.1.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) @@ -603,7 +597,7 @@ DEPENDENCIES sorcery spring telegraf - tubesock! + tubesock turbolinks web-console webmock diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index c1e6418b..83fefdb4 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -85,7 +85,10 @@ class SubmissionsController < ApplicationController hijack do |tubesock| client_socket = tubesock - return kill_client_socket(client_socket) if @embed_options[:disable_run] + + client_socket.onopen do |_event| + kill_client_socket(client_socket) if @embed_options[:disable_run] + end client_socket.onclose do |_event| runner_socket&.close(:terminated_by_client) @@ -177,16 +180,18 @@ class SubmissionsController < ApplicationController def score hijack do |tubesock| - return if @embed_options[:disable_score] + tubesock.onopen do |_event| + kill_client_socket(tubesock) if @embed_options[:disable_score] - tubesock.send_data(JSON.dump(@submission.calculate_score)) - # To enable hints when scoring a submission, uncomment the next line: - # send_hints(tubesock, StructuredError.where(submission: @submission)) + tubesock.send_data(JSON.dump(@submission.calculate_score)) + # To enable hints when scoring a submission, uncomment the next line: + # send_hints(tubesock, StructuredError.where(submission: @submission)) + kill_client_socket(tubesock) + end rescue Runner::Error => e tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) - Rails.logger.debug { "Runner error while scoring submission #{@submission.id}: #{e.message}" } - ensure kill_client_socket(tubesock) + Rails.logger.debug { "Runner error while scoring submission #{@submission.id}: #{e.message}" } end end @@ -196,14 +201,16 @@ class SubmissionsController < ApplicationController def test hijack do |tubesock| - return kill_client_socket(tubesock) if @embed_options[:disable_run] + tubesock.onopen do |_event| + kill_client_socket(tubesock) if @embed_options[:disable_run] - tubesock.send_data(JSON.dump(@submission.test(@file))) + tubesock.send_data(JSON.dump(@submission.test(@file))) + kill_client_socket(tubesock) + end rescue Runner::Error => e tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) - Rails.logger.debug { "Runner error while testing submission #{@submission.id}: #{e.message}" } - ensure kill_client_socket(tubesock) + Rails.logger.debug { "Runner error while testing submission #{@submission.id}: #{e.message}" } end end From 298761885c9a86aef44b40352421bd40aafedf37 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 7 Apr 2022 20:05:15 +0200 Subject: [PATCH 109/329] Update German intervention locals --- config/locales/de.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/de.yml b/config/locales/de.yml index 8fa4cdfa..44dbb20f 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -452,12 +452,12 @@ de: request: "Kommentaranfrage stellen" question: "Bitte beschreiben Sie kurz Ihre Probleme oder nennen Sie den Programmteil, zu dem Sie Feedback wünschen.

Ihr Programmcode und eventuelle Fehlermeldungen werden automatisch zur Anfrage hinzugefügt." rfc_intervention: - text: "Es scheint so als würden Sie Probleme mit der Aufgabe haben.
Wenn Sie möchten, können wir Ihnen helfen!

" + text: "Es scheint so, als würden Sie bei dieser Aufgabe momentan nicht weiterkommen.
Wenn Sie nicht selbst weiter knobeln möchten, können Ihre Mitlernenden bestimmt helfen!

" break_intervention: title: "Pause" - text: "Uns ist aufgefallen, dass du schon lange an dieser Aufgabe arbeitest. Möchtest du vielleicht später weiter machen um erstmal auf neue Gedanken zu kommen?" + text: "Es scheint so, als würden Sie bei dieser Aufgabe momentan nicht weiterkommen.
Da Ihr Fortschritt in CodeOcean automatisch gespeichert wird, können Sie jederzeit eine Pause einlegen und später weiter knobeln." tips_intervention: - text: "Es scheint so als würden Sie Probleme mit der Aufgabe haben.

Sind Ihnen die Tipps in der linken Seitenleiste aufgefallen? Sie könnten einige Ihrer Fragen beantworten und werden auch direkt hier angezeigt." + text: "Es scheint so, als würden Sie bei dieser Aufgabe momentan nicht weiterkommen.

Sind Ihnen die Tipps in der linken Seitenleiste aufgefallen? Sie könnten einige Ihrer Fragen beantworten und werden auch direkt hier angezeigt." error_hints: heading: "Hinweise" tips: From c0435ab185b98f969f8d2aa361a0119dec022873 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Apr 2022 03:01:25 +0000 Subject: [PATCH 110/329] Bump ransack from 3.0.0 to 3.0.1 Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/activerecord-hackery/ransack/releases) - [Changelog](https://github.com/activerecord-hackery/ransack/blob/main/CHANGELOG.md) - [Commits](https://github.com/activerecord-hackery/ransack/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: ransack 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 a5356d11..a944cd27 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -359,7 +359,7 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - ransack (3.0.0) + ransack (3.0.1) activerecord (>= 6.0.4) activesupport (>= 6.0.4) i18n From 3356c87ebf844848551fa135af3cfd40f3b4d016 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Apr 2022 03:02:28 +0000 Subject: [PATCH 111/329] Bump d3 from 7.4.2 to 7.4.3 Bumps [d3](https://github.com/d3/d3) from 7.4.2 to 7.4.3. - [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.4.2...v7.4.3) --- 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 6264437b..26f2086c 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.4.2", + "d3": "^7.4.3", "d3-tip": "^0.9.1", "highlight.js": "^11.5.0", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index d8de598b..d0ccbe42 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2658,10 +2658,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.4.2.tgz#c5d1001459dc9517bc774949f71b95e8735b3b4e" - integrity sha512-7VK+QBAWtNDbP2EU/ThkXgjd0u1MsXYYgCK2ElQ4BBWh0usE75tHVVeYx47m2pqQEy4isYKAA0tAFSln0l+9EQ== +d3@^7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.4.3.tgz#7bcd4f4d19e4359180a84d9cfd678761a269cbf7" + integrity sha512-x5cxHjtlXjtCzzaFv23mk6JKHKJzkYm/ePygQdeztcwYVedTHVQ7INyuAmRfjO7d4HTzQuofxzqva/d06Nh++Q== dependencies: d3-array "3" d3-axis "3" From e95388967cd0fea98b5068e5507be424ea830aeb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 9 Apr 2022 01:07:21 +0000 Subject: [PATCH 112/329] Bump moment from 2.29.1 to 2.29.2 Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.2. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.29.1...2.29.2) --- updated-dependencies: - dependency-name: moment dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d0ccbe42..879e96d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4655,9 +4655,9 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@^2.18.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + version "2.29.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" + integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== move-concurrently@^1.0.1: version "1.0.1" From a6039a6746abf8fdcf1cb734702c836969bf89fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 03:01:54 +0000 Subject: [PATCH 113/329] Bump highlight.js from 11.5.0 to 11.5.1 Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 11.5.0 to 11.5.1. - [Release notes](https://github.com/highlightjs/highlight.js/releases) - [Changelog](https://github.com/highlightjs/highlight.js/blob/11.5.1/CHANGES.md) - [Commits](https://github.com/highlightjs/highlight.js/compare/11.5.0...11.5.1) --- updated-dependencies: - dependency-name: highlight.js 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 26f2086c..0f299dd9 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "chosen-js": "^1.8.7", "d3": "^7.4.3", "d3-tip": "^0.9.1", - "highlight.js": "^11.5.0", + "highlight.js": "^11.5.1", "jquery": "^3.6.0", "jquery-ui": "^1.13.1", "jquery-ujs": "^1.2.3", diff --git a/yarn.lock b/yarn.lock index 879e96d2..0e5dbe71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3611,10 +3611,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.5.0: - version "11.5.0" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.5.0.tgz#00abb7ed926491adbdabc93a4f3fd2b88b451b4a" - integrity sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw== +highlight.js@^11.5.1: + version "11.5.1" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.5.1.tgz#027c24e4509e2f4dcd00b4a6dda542ce0a1f7aea" + integrity sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q== hmac-drbg@^1.0.1: version "1.0.1" From df9fb50c7d3bf082265686d71bf8c4faa875c64f Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 11 Apr 2022 19:45:04 +0200 Subject: [PATCH 114/329] Re-allow Carriage Return in Output --- app/assets/javascripts/editor/evaluation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/editor/evaluation.js b/app/assets/javascripts/editor/evaluation.js index a94eae38..0e511d78 100644 --- a/app/assets/javascripts/editor/evaluation.js +++ b/app/assets/javascripts/editor/evaluation.js @@ -2,7 +2,7 @@ CodeOceanEditorEvaluation = { chunkBuffer: [{streamedResponse: true}], // A list of non-printable characters that are not allowed in the code output. // Taken from https://stackoverflow.com/a/69024306 - nonPrintableRegEx: /[\u0000-\u0008\u000B-\u001F\u007F-\u009F\u2000-\u200F\u2028-\u202F\u205F-\u206F\u3000\uFEFF]/g, + nonPrintableRegEx: /[\u0000-\u0008\u000B\u000C\u000F-\u001F\u007F-\u009F\u2000-\u200F\u2028-\u202F\u205F-\u206F\u3000\uFEFF]/g, /** * Scoring-Functions From 4f3abd7c13af09456e28abd15f5017e08bf4c265 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Apr 2022 03:45:19 +0000 Subject: [PATCH 115/329] Bump d3 from 7.4.3 to 7.4.4 Bumps [d3](https://github.com/d3/d3) from 7.4.3 to 7.4.4. - [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.4.3...v7.4.4) --- 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 0f299dd9..e98d72e5 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.4.3", + "d3": "^7.4.4", "d3-tip": "^0.9.1", "highlight.js": "^11.5.1", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 0e5dbe71..68800dcf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2658,10 +2658,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.4.3: - version "7.4.3" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.4.3.tgz#7bcd4f4d19e4359180a84d9cfd678761a269cbf7" - integrity sha512-x5cxHjtlXjtCzzaFv23mk6JKHKJzkYm/ePygQdeztcwYVedTHVQ7INyuAmRfjO7d4HTzQuofxzqva/d06Nh++Q== +d3@^7.4.4: + version "7.4.4" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.4.4.tgz#bfbf87487c37d3196efebd5a63e3a0ed8299d8ff" + integrity sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ== dependencies: d3-array "3" d3-axis "3" From 83f63a9120b5edb6b27282f633e9590ea006826a Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 12 Apr 2022 12:42:36 +0200 Subject: [PATCH 116/329] Update bundle --- Gemfile | 4 +- Gemfile.lock | 43 ++++--- yarn.lock | 311 +++++++++++++++++++++++++-------------------------- 3 files changed, 176 insertions(+), 182 deletions(-) diff --git a/Gemfile b/Gemfile index cad0b7cf..3a9bceb8 100644 --- a/Gemfile +++ b/Gemfile @@ -25,7 +25,7 @@ gem 'net-http-persistent' gem 'nokogiri' gem 'pagedown-bootstrap-rails' gem 'pg' -gem 'proforma', github: 'openHPI/proforma', tag: 'v0.5.1' +gem 'proforma', github: 'openHPI/proforma', branch: 'v0.5.2' gem 'prometheus_exporter' gem 'pry-byebug' gem 'puma' @@ -36,7 +36,7 @@ gem 'rails-i18n' gem 'rails-timeago' gem 'ransack' gem 'rest-client' -gem 'rubytree', github: 'evolve75/RubyTree' +gem 'rubytree' gem 'rubyzip' gem 'sass-rails' gem 'slim-rails' diff --git a/Gemfile.lock b/Gemfile.lock index a944cd27..c20d418b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,21 +1,13 @@ -GIT - remote: https://github.com/evolve75/RubyTree.git - revision: 6081d0959b706dcefb85e85faa329ebb2dabcf9e - specs: - rubytree (1.0.2) - json (~> 2.6.1) - structured_warnings (~> 0.4.0) - GIT remote: https://github.com/openHPI/proforma.git - revision: dc68000325388e1d75f31be9e136a82edad8a56d - tag: v0.5.1 + revision: 243853e66034bc2afbb9c9661475d9718d007304 + branch: v0.5.2 specs: - proforma (0.5) - activemodel (>= 5.2.3, < 6.2.0) - activesupport (>= 5.2.3, < 6.2.0) - nokogiri (>= 1.10.2, < 1.12.0) - rubyzip (>= 1.2.2, < 2.4.0) + proforma (0.5.2) + activemodel (>= 5.2.3, < 7.2.0) + activesupport (>= 5.2.3, < 7.2.0) + nokogiri (~> 1.13) + rubyzip (~> 2.3) GEM remote: https://rubygems.org/ @@ -162,7 +154,7 @@ GEM faraday (2.2.0) faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) - faraday-net_http (2.0.1) + faraday-net_http (2.0.2) faraday-net_http_persistent (2.0.1) faraday-net_http net-http-persistent (~> 4.0) @@ -245,7 +237,7 @@ GEM rake mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.5.3) + mini_portile2 (2.8.0) minitest (5.15.0) minitest-autotest (1.1.1) minitest-server (~> 1.0) @@ -264,8 +256,8 @@ GEM netrc (0.11.0) newrelic_rpm (8.6.0) nio4r (2.5.8) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + nokogiri (1.13.4) + mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) @@ -293,7 +285,7 @@ GEM pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (4.0.6) + public_suffix (4.0.7) puma (5.6.4) nio4r (~> 2.0) pundit (2.2.0) @@ -367,7 +359,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree (0.4.5) - regexp_parser (2.2.1) + regexp_parser (2.3.0) remotipart (1.4.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -400,7 +392,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.26.1) + rubocop (1.27.0) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) @@ -409,7 +401,7 @@ GEM rubocop-ast (>= 1.16.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.16.0) + rubocop-ast (1.17.0) parser (>= 3.1.1.0) rubocop-performance (1.13.3) rubocop (>= 1.7.0, < 2.0) @@ -424,6 +416,9 @@ GEM ruby-vips (2.1.4) ffi (~> 1.12) ruby2_keywords (0.0.5) + rubytree (1.0.2) + json (~> 2.6.1) + structured_warnings (~> 0.4.0) rubyzip (2.3.2) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) @@ -585,7 +580,7 @@ DEPENDENCIES rubocop-performance rubocop-rails rubocop-rspec - rubytree! + rubytree rubyzip sass-rails selenium-webdriver diff --git a/yarn.lock b/yarn.lock index 68800dcf..78850da4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,30 +22,30 @@ integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== "@babel/core@^7.15.0": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" - integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.7" + "@babel/generator" "^7.17.9" "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.8" - "@babel/parser" "^7.17.8" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" + json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" - integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== +"@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== dependencies: "@babel/types" "^7.17.0" jsesc "^2.5.1" @@ -77,14 +77,14 @@ semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9" - integrity sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" + integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== dependencies: "@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-function-name" "^7.17.9" + "@babel/helper-member-expression-to-functions" "^7.17.7" "@babel/helper-optimise-call-expression" "^7.16.7" "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" @@ -125,21 +125,13 @@ dependencies: "@babel/types" "^7.16.7" -"@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== +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== dependencies: - "@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.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.7" + "@babel/types" "^7.17.0" "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" @@ -148,7 +140,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.7": +"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": version "7.17.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== @@ -249,28 +241,28 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" - integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" + "@babel/traverse" "^7.17.9" "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" - integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -635,9 +627,9 @@ babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.16.8": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz#d86b217c8e45bb5f2dbc11eefc8eab62cf980d19" - integrity sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" + integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== dependencies: "@babel/helper-module-transforms" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -700,11 +692,11 @@ "@babel/helper-plugin-utils" "^7.16.7" "@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== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" + integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== dependencies: - regenerator-transform "^0.14.2" + regenerator-transform "^0.15.0" "@babel/plugin-transform-reserved-words@^7.16.7": version "7.16.7" @@ -868,9 +860,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.8.tgz#3e56e4aff81befa55ac3ac6a0967349fd1c5bca2" - integrity sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" + integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== dependencies: regenerator-runtime "^0.13.4" @@ -883,18 +875,18 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" - integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" + "@babel/generator" "^7.17.9" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" + "@babel/parser" "^7.17.9" "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" @@ -1001,55 +993,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.19.2" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.2.tgz#c0f6df07584f3b36fa037067aea20b2c8c2095a3" - integrity sha512-5VC44p5Vu2eJhVT39nLAJFgha5MjHDYCyZRR1ieeZt3a++otojPGBBAKNAtrEMGV+A2Z9AoneD6ZnDVlyb3GKg== + version "6.19.6" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.6.tgz#75be467667fffa1f4745382fc7a695568609c634" + integrity sha512-V5QyY1cO1iuFCI78dOFbHV7vckbeQEPPq3a5dGSXlBQNYnd9Ec5xoxp5nRNpWQPOZ8/Ixt9IgRxdqVTkWib51g== dependencies: - "@sentry/core" "6.19.2" - "@sentry/types" "6.19.2" - "@sentry/utils" "6.19.2" + "@sentry/core" "6.19.6" + "@sentry/types" "6.19.6" + "@sentry/utils" "6.19.6" tslib "^1.9.3" -"@sentry/core@6.19.2": - version "6.19.2" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.2.tgz#dd35ba6ca41a2dd011c43f732bcdadbb52c06376" - integrity sha512-yu1R3ewBT4udmB4v7sc4biQZ0Z0rfB9+TzB5ZKoCftbe6kqXjFMMaFRYNUF9HicVldKAsBktgkWw3+yfqGkw/A== +"@sentry/core@6.19.6": + version "6.19.6" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.6.tgz#7d4649d0148b5d0be1358ab02e2f869bf7363e9a" + integrity sha512-biEotGRr44/vBCOegkTfC9rwqaqRKIpFljKGyYU6/NtzMRooktqOhjmjmItNCMRknArdeaQwA8lk2jcZDXX3Og== dependencies: - "@sentry/hub" "6.19.2" - "@sentry/minimal" "6.19.2" - "@sentry/types" "6.19.2" - "@sentry/utils" "6.19.2" + "@sentry/hub" "6.19.6" + "@sentry/minimal" "6.19.6" + "@sentry/types" "6.19.6" + "@sentry/utils" "6.19.6" tslib "^1.9.3" -"@sentry/hub@6.19.2": - version "6.19.2" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.2.tgz#0e9f9c507e55d8396002f644b43ef27cc9ff1289" - integrity sha512-W7KCgNBgdBIMagOxy5J5KQPe+maYxSqfE8a5ncQ3R8BcZDQEKnkW/1FplNbfRLZqA/tL/ndKb7pTPqVtzsbARw== +"@sentry/hub@6.19.6": + version "6.19.6" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.6.tgz#ada83ceca0827c49534edfaba018221bc1eb75e1" + integrity sha512-PuEOBZxvx3bjxcXmWWZfWXG+orojQiWzv9LQXjIgroVMKM/GG4QtZbnWl1hOckUj7WtKNl4hEGO2g/6PyCV/vA== dependencies: - "@sentry/types" "6.19.2" - "@sentry/utils" "6.19.2" + "@sentry/types" "6.19.6" + "@sentry/utils" "6.19.6" tslib "^1.9.3" -"@sentry/minimal@6.19.2": - version "6.19.2" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.2.tgz#e748541e4adbc7e80a3b6ccaf01b631c17fc44b4" - integrity sha512-ClwxKm77iDHET7kpzv1JvzDx1er5DoNu+EUjst0kQzARIrXvu9xuZuE2/CnBWycQWqw8o3HoGoKz65uIhsUCzQ== +"@sentry/minimal@6.19.6": + version "6.19.6" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.6.tgz#b6cced3708e25d322039e68ebdf8fadfa445bf7d" + integrity sha512-T1NKcv+HTlmd8EbzUgnGPl4ySQGHWMCyZ8a8kXVMZOPDzphN3fVIzkYzWmSftCWp0rpabXPt9aRF2mfBKU+mAQ== dependencies: - "@sentry/hub" "6.19.2" - "@sentry/types" "6.19.2" + "@sentry/hub" "6.19.6" + "@sentry/types" "6.19.6" tslib "^1.9.3" -"@sentry/types@6.19.2": - version "6.19.2" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.2.tgz#0219c9da21ed975951108b8541913b1966464435" - integrity sha512-XO5qmVBdTs+7PdCz7fAwn1afWxSnRE2KLBFg5/vOdKosPSSHsSHUURSkxiEZc2QsR+JpRB4AeQ26AkIRX38qTg== +"@sentry/types@6.19.6": + version "6.19.6" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.6.tgz#70513f9dca05d23d7ab9c2a6cb08d4db6763ca67" + integrity sha512-QH34LMJidEUPZK78l+Frt3AaVFJhEmIi05Zf8WHd9/iTt+OqvCHBgq49DDr1FWFqyYWm/QgW/3bIoikFpfsXyQ== -"@sentry/utils@6.19.2": - version "6.19.2" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.2.tgz#995efb896c5159369509f4896c27a2d2ea9191f2" - integrity sha512-2DQQ2OJaxjtyxGq5FmMlqb6hptsqMs2xoBiVRMkTS/rvyTrk1oQdKZ8ePwjtgX3nJ728ni3IXIyXV+vfGp4EBw== +"@sentry/utils@6.19.6": + version "6.19.6" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.6.tgz#2ddc9ef036c3847084c43d0e5a55e4646bdf9021" + integrity sha512-fAMWcsguL0632eWrROp/vhPgI7sBj/JROWVPzpabwVkm9z3m1rQm6iLFn4qfkZL8Ozy6NVZPXOQ7EXmeU24byg== dependencies: - "@sentry/types" "6.19.2" + "@sentry/types" "6.19.6" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1061,9 +1053,9 @@ "@types/node" "*" "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/minimatch@*": version "3.0.5" @@ -1859,9 +1851,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.30001317: - version "1.0.30001319" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001319.tgz#eb4da4eb3ecdd409f7ba1907820061d56096e88f" - integrity sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw== + version "1.0.30001328" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001328.tgz#0ed7a2ca65ec45872c613630201644237ba1e329" + integrity sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2433,9 +2425,9 @@ cyclist@^1.0.1: integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.1.1.tgz#7797eb53ead6b9083c75a45a681e93fc41bc468c" - integrity sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ== + version "3.1.6" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.1.6.tgz#0342c835925826f49b4d16eb7027aec334ffc97d" + integrity sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA== dependencies: internmap "1 - 2" @@ -2468,9 +2460,9 @@ d3-collection@^1.0.4: integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== "d3-color@1 - 3", d3-color@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a" - integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== d3-contour@3: version "3.0.1" @@ -2542,9 +2534,9 @@ d3-geo@3: d3-array "2.5.0 - 3" d3-hierarchy@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz#9cbb0ffd2375137a351e6cfeed344a06d4ff4597" - integrity sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: version "3.0.1" @@ -2870,9 +2862,9 @@ domelementtype@1: integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domutils@^1.7.0: version "1.7.0" @@ -2905,9 +2897,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.84: - version "1.4.91" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.91.tgz#842bbc97fd639abe7e46e7da530e3af5f6ca2831" - integrity sha512-Z7Jkc4+ouEg8F6RrrgLOs0kkJjI0cnyFQmnGVpln8pPifuKBNbUr37GMgJsCTSwy6Z9TK7oTwW33Oe+3aERYew== + version "1.4.107" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz#564257014ab14033b4403a309c813123c58a3fb9" + integrity sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg== elliptic@^6.5.3: version "6.5.4" @@ -2978,9 +2970,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.17.2, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + version "1.19.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.3.tgz#4dd9da55868192756c83c5c30c7878d04e77125d" + integrity sha512-4axXLNovnMYf0+csS5rVnS5hLmV1ek+ecx9MuCjByL1E5Nn54avf6CHQxIjgQIHBnfX9AMxTRIy0q+Yu5J/fXA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -2988,15 +2980,15 @@ es-abstract@^1.17.2, es-abstract@^1.19.1: get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" - has-symbols "^1.0.2" + has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" - is-negative-zero "^2.0.1" + is-negative-zero "^2.0.2" is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" + is-shared-array-buffer "^1.0.2" is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" + is-weakref "^1.0.2" + object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" @@ -3510,9 +3502,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== hammerjs@^2.0.8: version "2.0.8" @@ -3539,7 +3531,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -4056,15 +4048,15 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.1: +is-negative-zero@^2.0.2: 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" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" @@ -4129,10 +4121,12 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" is-stream@^1.1.0: version "1.1.0" @@ -4153,7 +4147,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-weakref@^1.0.1: +is-weakref@^1.0.2: 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== @@ -4263,7 +4257,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2: +json5@^2.1.2, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -4419,6 +4413,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^7.4.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.8.1.tgz#68ee3f4807a57d2ba185b7fd90827d5c21ce82bb" + integrity sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg== + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -4771,9 +4770,9 @@ node-libs-browser@^2.2.1: vm-browserify "^1.0.1" node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" + integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== normalize-path@^2.1.1: version "2.1.1" @@ -4840,7 +4839,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.11.0, object-inspect@^1.9.0: +object-inspect@^1.12.0, object-inspect@^1.9.0: 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== @@ -5809,9 +5808,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.9" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" - integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + version "6.0.10" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -6086,10 +6085,10 @@ regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" @@ -6295,9 +6294,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.49.9" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.49.9.tgz#b15a189ecb0ca9e24634bae5d1ebc191809712f9" - integrity sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A== + version "1.50.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.0.tgz#3e407e2ebc53b12f1e35ce45efb226ea6063c7c8" + integrity sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6363,11 +6362,11 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.2, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + version "7.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.6.tgz#5d73886fb9c0c6602e79440b97165c29581cbb2b" + integrity sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w== dependencies: - lru-cache "^6.0.0" + lru-cache "^7.4.0" send@0.17.2: version "0.17.2" From 5caace01b60794af305fa6ece96080423fcc7533 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 12 Apr 2022 12:47:16 +0200 Subject: [PATCH 117/329] Add comment to DockerContainerPool strategy regarding filtering --- lib/runner/strategy/docker_container_pool.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index dca17ad8..fa4ef574 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -264,7 +264,9 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy @stream = 'stdout' {'type' => @stream, 'data' => event_data} when /#{Regexp.quote(@strategy.command)}/ + # Hide command from output when /bash: cmd:canvasevent: command not found/ + # Hide errors from output when Python program exited before it consumed all canvas events else {'type' => @stream, 'data' => event_data} end From 66d4f90b4ae7a894613cd449052e55ce54fa9c11 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 13 Apr 2022 14:39:07 +0200 Subject: [PATCH 118/329] Send the WebSocket message immediately with EventMachine.next_tick --- lib/runner/connection.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/runner/connection.rb b/lib/runner/connection.rb index 36f9555d..5c6ebc1d 100644 --- a/lib/runner/connection.rb +++ b/lib/runner/connection.rb @@ -53,7 +53,12 @@ class Runner::Connection def send_data(raw_data) encoded_message = encode(raw_data) Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Sending to #{@socket.url}: #{encoded_message.inspect}" } - @socket.send(encoded_message) + # Send the message to the WebSocket connection _immediately_ + # by scheduling it for the next execution of the EventMachine reactor run. + # Otherwise, the message might be queued causing delays for users. + EventMachine.next_tick do + @socket.send(encoded_message) + end end # Close the WebSocket connection From 3cd2be01de15268bfd55c10ac3e2436438009f2f Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 13 Apr 2022 20:55:44 +0200 Subject: [PATCH 119/329] Include hidden exercises for other teachers of the same study group --- app/policies/exercise_policy.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/policies/exercise_policy.rb b/app/policies/exercise_policy.rb index 2c36b47e..993fe67c 100644 --- a/app/policies/exercise_policy.rb +++ b/app/policies/exercise_policy.rb @@ -38,7 +38,13 @@ class ExercisePolicy < AdminOrAuthorPolicy if @user.admin? @scope.all elsif @user.teacher? - @scope.where('user_id = ? OR public = TRUE', @user.id) + @scope.where( + 'user_id IN (SELECT user_id FROM study_group_memberships WHERE study_group_id IN (?)) + OR (user_id = ? AND user_type = ?) + OR public = TRUE', + @user.study_groups.pluck(:id), + @user.id, @user.class.name + ) else @scope.none end From c8ce7d793b2a90f5a0b2643663dd2e3318f1b4db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Apr 2022 03:01:06 +0000 Subject: [PATCH 120/329] Bump mnemosyne-ruby from 1.12.1 to 1.13.0 Bumps [mnemosyne-ruby](https://github.com/jgraichen/mnemosyne-ruby) from 1.12.1 to 1.13.0. - [Release notes](https://github.com/jgraichen/mnemosyne-ruby/releases) - [Changelog](https://github.com/mnemosyne-mon/mnemosyne-ruby/blob/main/CHANGELOG.md) - [Commits](https://github.com/jgraichen/mnemosyne-ruby/compare/v1.12.1...v1.13.0) --- updated-dependencies: - dependency-name: mnemosyne-ruby 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 c20d418b..cc41fb41 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -244,7 +244,7 @@ GEM path_expander (~> 1.0) minitest-server (1.0.6) minitest (~> 5.0) - mnemosyne-ruby (1.12.1) + mnemosyne-ruby (1.13.0) activesupport (>= 4) bunny msgpack (1.5.1) From 7eacffb0012d421180eec097cf61adca5b206b1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Apr 2022 12:21:06 +0000 Subject: [PATCH 121/329] Bump async from 2.6.3 to 2.6.4 Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4. - [Release notes](https://github.com/caolan/async/releases) - [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md) - [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4) --- updated-dependencies: - dependency-name: async dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 78850da4..9d420e4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1414,9 +1414,9 @@ async-limiter@~1.0.0: integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" From 9d9570b26bb5e3fcf296f6faf5f14995e28140d8 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Apr 2022 14:15:53 +0200 Subject: [PATCH 122/329] Update intervention locale and add explanation --- app/assets/javascripts/editor/editor.js.erb | 15 ++++++++++++--- .../_request_comment_dialogcontent.html.slim | 8 ++++---- .../_break_intervention_modal.html.slim | 2 +- .../_tips_intervention_modal.html.slim | 2 +- config/locales/de.yml | 10 ++++++---- config/locales/en.yml | 10 ++++++---- 6 files changed, 30 insertions(+), 17 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index f7c9e804..93e9702f 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -857,7 +857,9 @@ var CodeOceanEditor = { clearInterval(tid); // timeUntilIntervention passed if (editor.data('tips-interventions')) { - $('#tips-intervention-modal').modal('show'); + const modal = $('#tips-intervention-modal'); + modal.find('.modal-footer').text(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); + modal.modal('show'); $.ajax({ data: { intervention_type: 'TipsIntervention' @@ -867,7 +869,9 @@ var CodeOceanEditor = { url: interventionSaveUrl }); } else if (editor.data('break-interventions')) { - $('#break-intervention-modal').modal('show'); + const modal = $('#break-intervention-modal'); + modal.find('.modal-footer').text(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); + modal.modal('show'); $.ajax({ data: { intervention_type: 'BreakIntervention' @@ -881,7 +885,12 @@ var CodeOceanEditor = { // only show intervention if user did not requested for a comment already if (!button.prop('disabled')) { $('#rfc_intervention_text').show(); - $('#comment-modal').modal('show'); + modal = $('#comment-modal'); + modal.find('.modal-footer').text(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); + modal.on('hidden.bs.modal', function () { + modal.find('.modal-footer').text(''); + }); + modal.modal('show'); $.ajax({ data: { intervention_type: 'QuestionIntervention' diff --git a/app/views/exercises/_request_comment_dialogcontent.html.slim b/app/views/exercises/_request_comment_dialogcontent.html.slim index dd6c28fe..861c4f4b 100644 --- a/app/views/exercises/_request_comment_dialogcontent.html.slim +++ b/app/views/exercises/_request_comment_dialogcontent.html.slim @@ -1,10 +1,10 @@ -h5#rfc_intervention_text style='display: none;' = raw t('exercises.implement.rfc_intervention.text') -h5 = raw t('exercises.implement.comment.question') +#rfc_intervention_text style='display: none;' == t('exercises.implement.rfc_intervention.text') +== t('exercises.implement.comment.question') -textarea.form-control.flex-grow-1#question(style='resize:none;') +textarea.form-control.flex-grow-1#question(style='resize:none; height: 15vh;') p = '' -/ data-cause='requestComments' is not used here right now, we pass the button #requestComments (not askForCommentsButton) as initiator of the action. +/ data-cause='requestComments' is not used here right now, we pass the button #requestComments (not askForCommentsButton) as initiator of the action. / But if we use this button, it will work since the correct cause is supplied div button#askForCommentsButton.btn.btn-block.btn-primary(type='button' data-cause='requestComments' data-message-success=t('exercises.editor.request_for_comments_sent')) =t('exercises.implement.comment.request') diff --git a/app/views/interventions/_break_intervention_modal.html.slim b/app/views/interventions/_break_intervention_modal.html.slim index 12f0e314..3adf381e 100644 --- a/app/views/interventions/_break_intervention_modal.html.slim +++ b/app/views/interventions/_break_intervention_modal.html.slim @@ -1 +1 @@ -h5 = t('exercises.implement.break_intervention.text') +== t('exercises.implement.break_intervention.text') diff --git a/app/views/interventions/_tips_intervention_modal.html.slim b/app/views/interventions/_tips_intervention_modal.html.slim index 25ca1853..898794bb 100644 --- a/app/views/interventions/_tips_intervention_modal.html.slim +++ b/app/views/interventions/_tips_intervention_modal.html.slim @@ -1,3 +1,3 @@ -h5 == t('exercises.implement.tips_intervention.text') +== t('exercises.implement.tips_intervention.text') = render(partial: 'exercises/tips_content') diff --git a/config/locales/de.yml b/config/locales/de.yml index 44dbb20f..10dc62ab 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -450,14 +450,16 @@ de: removeAllOnLine: Meine Kommentare auf dieser Zeile löschen listing: Die neuesten Kommentaranfragen request: "Kommentaranfrage stellen" - question: "Bitte beschreiben Sie kurz Ihre Probleme oder nennen Sie den Programmteil, zu dem Sie Feedback wünschen.

Ihr Programmcode und eventuelle Fehlermeldungen werden automatisch zur Anfrage hinzugefügt." + question: "Bitte beschreiben Sie kurz Ihre Probleme oder nennen Sie den Programmteil, zu dem Sie Feedback wünschen. Ihr Programmcode und eventuelle Fehlermeldungen werden automatisch zur Anfrage hinzugefügt." + intervention: + explanation: "Diese Meldung erscheint, weil Sie %{duration} Minuten an dieser Aufgabe gearbeitet haben. 25% Ihrer Mitlernenden arbeiten länger daran, insofern ist das kein Problem, aber dies hat sich als effektiven Zeitpunkt für diese Meldung erwiesen." rfc_intervention: - text: "Es scheint so, als würden Sie bei dieser Aufgabe momentan nicht weiterkommen.
Wenn Sie nicht selbst weiter knobeln möchten, können Ihre Mitlernenden bestimmt helfen!

" + text: "Falls Sie bei dieser Aufgabe nicht weiterkommen und nicht selbst weiter knobeln möchten, können Ihre Mitlernenden bestimmt helfen!

" break_intervention: title: "Pause" - text: "Es scheint so, als würden Sie bei dieser Aufgabe momentan nicht weiterkommen.
Da Ihr Fortschritt in CodeOcean automatisch gespeichert wird, können Sie jederzeit eine Pause einlegen und später weiter knobeln." + text: "Falls Sie bei dieser Aufgabe momentan nicht weiterkommen, können Sie jederzeit eine Pause einlegen und später weiter knobeln. Ihr Fortschritt wird in CodeOcean automatisch gespeichert." tips_intervention: - text: "Es scheint so, als würden Sie bei dieser Aufgabe momentan nicht weiterkommen.

Sind Ihnen die Tipps in der linken Seitenleiste aufgefallen? Sie könnten einige Ihrer Fragen beantworten und werden auch direkt hier angezeigt." + text: "Falls Sie bei dieser Aufgabe momentan nicht weiterkommen, können Sie die verfügbaren Tipps vielleicht unterstützen. Diese finden Sie jederzeit in der linken Seitenleiste und werden auch direkt hier angezeigt." error_hints: heading: "Hinweise" tips: diff --git a/config/locales/en.yml b/config/locales/en.yml index 81a77075..e7123be7 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -450,14 +450,16 @@ en: removeAllOnLine: Remove my comments on this line listing: Listing the newest comment requests request: "Request Comments" - question: 'Please shortly describe your problem or the program part you would like to get feedback for.

Your program code and potential error messages are automatically appended to your request.' + question: 'Please shortly describe your problem or the program part you would like to get feedback for. Your program code and potential error messages are automatically appended to your request.' + intervention: + text: "This message appears because you have been working on this exercise for %{duration} minutes. 25% of your fellow learners took more time to solve the exercise, so in that sense it's not a problem, but this has proven to be an effective time for this message." rfc_intervention: - text: "It looks like you may struggle with this exercise.
If you like we can help you out!

" + text: "If you are struggling with this exercise and don't want to continue on your own, your fellow learners can help out!

" break_intervention: title: "Break" - text: "We recognized that you are already working quite a while on this exercise. We would like to encourage you to take a break and come back later." + text: "If you are struggling with this exercise, you may take a break at any time and continue later. Your progress in CodeOcean is automatically saved." tips_intervention: - text: "It looks like you may struggle with this exercise.

Did you notice the tips in the left sidebar? They might answer some of your questions and are also displayed below for your convenience." + text: "If you are struggling with this exercise, the available tips may help. You can find them at any time in the left sidebar and are also displayed below for your convenience." error_hints: heading: "Hints" tips: From 4887f4af027f35790465a33e66de6a1ce6cf7dc5 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Apr 2022 14:55:37 +0200 Subject: [PATCH 123/329] Implement A/B Test for using AWS as an executor for Java --- app/models/submission.rb | 3 ++- lib/aws_study.rb | 30 ++++++++++++++++++++++++++++++ lib/user_group_separator.rb | 12 ++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 lib/aws_study.rb diff --git a/app/models/submission.rb b/app/models/submission.rb index 6b8a4fd8..ead754cd 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -195,7 +195,8 @@ class Submission < ApplicationRecord def prepared_runner request_time = Time.zone.now begin - runner = Runner.for(user, exercise.execution_environment) + execution_environment = AwsStudy.get_execution_environment(user, exercise) + runner = Runner.for(user, execution_environment) files = collect_files files.reject!(&:teacher_defined_assessment?) if cause == 'run' Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Copying files to Runner #{runner.id} for #{user_type} #{user_id} and Submission #{id}." } diff --git a/lib/aws_study.rb b/lib/aws_study.rb new file mode 100644 index 00000000..48b732b1 --- /dev/null +++ b/lib/aws_study.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class AwsStudy + def self.get_for(exercise) + java20_collection = ExerciseCollection.find_by(name: 'java2020', id: 11) + java20_bonus_collection = ExerciseCollection.find_by(name: 'java2020-bonusexercise', id: 12) + + exercise.exercise_collections.any? {|ec| [java20_collection, java20_bonus_collection].include?(ec) } + end + + def self.get_execution_environment(user, exercise) + # Poseidon is disabled and thus no AWS support available + return exercise.execution_environment unless Runner::Strategy::Poseidon == Runner.strategy_class + + java20_exercise = get_for(exercise) + # Exercise is not part of the experiment + return exercise.execution_environment unless java20_exercise + + user_group = UserGroupSeparator.get_aws_group(user.id) + case user_group + when :use_aws + # AWS functions are currently identified with their name + aws_function = ExecutionEnvironment.find_by(docker_image: 'java11Exec') + # Fallback to the default execution environment if no AWS function is found + aws_function || exercise.execution_environment + else # :no_aws + exercise.execution_environment + end + end +end diff --git a/lib/user_group_separator.rb b/lib/user_group_separator.rb index c82dead0..32219ba6 100644 --- a/lib/user_group_separator.rb +++ b/lib/user_group_separator.rb @@ -32,4 +32,16 @@ class UserGroupSeparator :no_community_solution end end + + # Different user groups for using AWS lambda functions instead of Nomad based on the user_id + # This test is independent from any other A/B Test + def self.get_aws_group(user_id) + user_group = user_id % 2 # => 0, 1 + case user_group + when 0 + :no_aws + else # 1 + :use_aws + end + end end From d10735d0a832722f5ad297baaef7c694d4ecd450 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Apr 2022 15:16:57 +0200 Subject: [PATCH 124/329] Persist Execution Environment when running code --- app/controllers/submissions_controller.rb | 3 ++- app/models/execution_environment.rb | 1 + app/models/submission.rb | 7 +++++-- app/models/testrun.rb | 1 + app/models/testrun_execution_environment.rb | 6 ++++++ ...20415125948_add_testrun_execution_environment.rb | 12 ++++++++++++ db/schema.rb | 13 ++++++++++++- 7 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 app/models/testrun_execution_environment.rb create mode 100644 db/migrate/20220415125948_add_testrun_execution_environment.rb diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 83fefdb4..18997160 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -293,7 +293,7 @@ class SubmissionsController < ApplicationController # save the output of this "run" as a "testrun" (scoring runs are saved in submission.rb) def save_run_output - Testrun.create( + testrun = Testrun.create( file: @file, cause: 'run', submission: @submission, @@ -301,6 +301,7 @@ class SubmissionsController < ApplicationController container_execution_time: @container_execution_time, waiting_for_container_time: @waiting_for_container_time ) + TestrunExecutionEnvironment.create(testrun: testrun, execution_environment: @submission.used_execution_environment) end def send_hints(tubesock, errors) diff --git a/app/models/execution_environment.rb b/app/models/execution_environment.rb index 91c62898..a3bee8d6 100644 --- a/app/models/execution_environment.rb +++ b/app/models/execution_environment.rb @@ -16,6 +16,7 @@ class ExecutionEnvironment < ApplicationRecord has_many :exercises belongs_to :file_type has_many :error_templates + belongs_to :testrun_execution_environment, optional: true, dependent: :destroy scope :with_exercises, -> { where('id IN (SELECT execution_environment_id FROM exercises)') } diff --git a/app/models/submission.rb b/app/models/submission.rb index ead754cd..2150b0c5 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -46,6 +46,8 @@ class Submission < ApplicationRecord validates :cause, inclusion: {in: CAUSES} + attr_reader :used_execution_environment + # after_save :trigger_working_times_action_cable def build_files_hash(files, attribute) @@ -195,8 +197,8 @@ class Submission < ApplicationRecord def prepared_runner request_time = Time.zone.now begin - execution_environment = AwsStudy.get_execution_environment(user, exercise) - runner = Runner.for(user, execution_environment) + @used_execution_environment = AwsStudy.get_execution_environment(user, exercise) + runner = Runner.for(user, @used_execution_environment) files = collect_files files.reject!(&:teacher_defined_assessment?) if cause == 'run' Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Copying files to Runner #{runner.id} for #{user_type} #{user_id} and Submission #{id}." } @@ -254,6 +256,7 @@ class Submission < ApplicationRecord container_execution_time: output[:container_execution_time], waiting_for_container_time: output[:waiting_for_container_time] ) + TestrunExecutionEnvironment.create(testrun: testrun, execution_environment: @used_execution_environment) filename = file.filepath diff --git a/app/models/testrun.rb b/app/models/testrun.rb index e8903e61..126a1499 100644 --- a/app/models/testrun.rb +++ b/app/models/testrun.rb @@ -3,4 +3,5 @@ class Testrun < ApplicationRecord belongs_to :file, class_name: 'CodeOcean::File', optional: true belongs_to :submission + belongs_to :testrun_execution_environment, optional: true, dependent: :destroy end diff --git a/app/models/testrun_execution_environment.rb b/app/models/testrun_execution_environment.rb new file mode 100644 index 00000000..70270018 --- /dev/null +++ b/app/models/testrun_execution_environment.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +class TestrunExecutionEnvironment < ApplicationRecord + belongs_to :testrun + belongs_to :execution_environment +end diff --git a/db/migrate/20220415125948_add_testrun_execution_environment.rb b/db/migrate/20220415125948_add_testrun_execution_environment.rb new file mode 100644 index 00000000..b33de7a4 --- /dev/null +++ b/db/migrate/20220415125948_add_testrun_execution_environment.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class AddTestrunExecutionEnvironment < ActiveRecord::Migration[6.1] + def change + create_table :testrun_execution_environments do |t| + t.belongs_to :testrun, foreign_key: true, null: false, index: true + t.belongs_to :execution_environment, foreign_key: true, null: false, index: {name: 'index_testrun_execution_environments'} + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 8a1b089a..ea8791a6 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_11_18_185051) do +ActiveRecord::Schema.define(version: 2022_04_15_125948) do # These are extensions that must be enabled in order to support this database enable_extension "pg_trgm" @@ -461,6 +461,15 @@ ActiveRecord::Schema.define(version: 2021_11_18_185051) do t.datetime "updated_at" end + create_table "testrun_execution_environments", force: :cascade do |t| + t.bigint "testrun_id", null: false + t.bigint "execution_environment_id", null: false + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["execution_environment_id"], name: "index_testrun_execution_environments" + t.index ["testrun_id"], name: "index_testrun_execution_environments_on_testrun_id" + end + create_table "testruns", id: :serial, force: :cascade do |t| t.boolean "passed" t.text "output" @@ -536,6 +545,8 @@ ActiveRecord::Schema.define(version: 2021_11_18_185051) do add_foreign_key "exercise_tips", "tips" add_foreign_key "remote_evaluation_mappings", "study_groups" add_foreign_key "submissions", "study_groups" + add_foreign_key "testrun_execution_environments", "execution_environments" + add_foreign_key "testrun_execution_environments", "testruns" add_foreign_key "tips", "file_types" add_foreign_key "user_exercise_feedbacks", "submissions" end From 19bd742bc9434ea401964db30fa904c6c9c68bce Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Apr 2022 21:29:55 +0200 Subject: [PATCH 125/329] Show a localized message if the program was killed. * This will most likely happen by the OOM killer, thus we inform the user about the memory restriction. --- app/assets/javascripts/editor/editor.js.erb | 7 +++++++ app/assets/javascripts/editor/evaluation.js | 5 +++++ app/assets/javascripts/editor/execution.js | 1 + app/assets/javascripts/shell.js | 17 ++++++++++++++--- app/controllers/submissions_controller.rb | 1 + app/models/runner.rb | 7 +++++-- .../execution_environments/shell.html.slim | 2 +- app/views/exercises/_editor.html.slim | 2 +- config/locales/de.yml | 1 + config/locales/en.yml | 1 + 10 files changed, 37 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 93e9702f..d40badea 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -743,6 +743,13 @@ var CodeOceanEditor = { }); }, + showOutOfMemoryMessage: function () { + $.flash.info({ + icon: ['fa', 'fa-clock-o'], + text: $('#editor').data('message-out-of-memory') + }); + }, + showTimeoutMessage: function () { $.flash.info({ icon: ['fa', 'fa-clock-o'], diff --git a/app/assets/javascripts/editor/evaluation.js b/app/assets/javascripts/editor/evaluation.js index 0e511d78..922ba63d 100644 --- a/app/assets/javascripts/editor/evaluation.js +++ b/app/assets/javascripts/editor/evaluation.js @@ -102,6 +102,11 @@ CodeOceanEditorEvaluation = { })) { this.showTimeoutMessage(); } + if (_.some(response, function (result) { + return result.status === 'out_of_memory'; + })) { + this.showOutOfMemoryMessage(); + } if (_.some(response, function (result) { return result.status === 'container_depleted'; })) { diff --git a/app/assets/javascripts/editor/execution.js b/app/assets/javascripts/editor/execution.js index 8ac6df4d..6b2df68b 100644 --- a/app/assets/javascripts/editor/execution.js +++ b/app/assets/javascripts/editor/execution.js @@ -47,6 +47,7 @@ CodeOceanEditorWebsocket = { this.websocket.on('render', this.renderWebsocketOutput.bind(this)); this.websocket.on('exit', this.handleExitCommand.bind(this)); this.websocket.on('timeout', this.showTimeoutMessage.bind(this)); + this.websocket.on('out_of_memory', this.showOutOfMemoryMessage.bind(this)); this.websocket.on('status', this.showStatus.bind(this)); this.websocket.on('hint', this.showHint.bind(this)); }, diff --git a/app/assets/javascripts/shell.js b/app/assets/javascripts/shell.js index 6b875e18..73ba02ae 100644 --- a/app/assets/javascripts/shell.js +++ b/app/assets/javascripts/shell.js @@ -29,10 +29,14 @@ $(document).on('turbolinks:load', function () { }; const handleResponse = function (response) { + // Always print stdout and stderr + printOutput(response); + + // If an error occurred, print it too if (response.status === 'timeout') { printTimeout(response); - } else { - printOutput(response); + } else if (response.status === 'out_of_memory') { + printOutOfMemory(response); } }; @@ -71,12 +75,19 @@ $(document).on('turbolinks:load', function () { }; const printTimeout = function (output) { - const element = $.append('

'); + const element = $('

'); element.addClass('text-danger'); element.text($('#shell').data('message-timeout')); $('#output').append(element); }; + const printOutOfMemory = function (output) { + const element = $('

'); + element.addClass('text-danger'); + element.text($('#shell').data('message-out-of-memory')); + $('#output').append(element); + }; + if ($('#shell').isPresent()) { const command = $('#command') command.focus(); diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 83fefdb4..fa095e36 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -157,6 +157,7 @@ class SubmissionsController < ApplicationController "\n#{t('exercises.implement.exit_failure', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code)}" end client_socket.send_data JSON.dump({cmd: :write, stream: :stdout, data: "#{exit_statement}\n"}) + client_socket.send_data JSON.dump({cmd: :out_of_memory}) if exit_code == 137 close_client_connection(client_socket) end diff --git a/app/models/runner.rb b/app/models/runner.rb index 67edef2e..458ae144 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -78,13 +78,14 @@ class Runner < ApplicationRecord stdout = +'' stderr = +'' try = 0 + + exit_code = 1 # default to error begin if try.nonzero? request_new_id save end - exit_code = 1 # default to error execution_time = attach_to_execution(command) do |socket| socket.on :stderr do |data| stderr << data @@ -120,7 +121,9 @@ class Runner < ApplicationRecord # We forward the exception if requested raise e if raise_exception && defined?(e) && e.present? - output.merge!(stdout: stdout, stderr: stderr) + # If the process was killed with SIGKILL, it is most likely that the OOM killer was triggered. + output[:status] = :out_of_memory if exit_code == 137 + output.merge!(stdout: stdout, stderr: stderr, exit_code: exit_code) end end diff --git a/app/views/execution_environments/shell.html.slim b/app/views/execution_environments/shell.html.slim index ae35c7b8..95b4cf18 100644 --- a/app/views/execution_environments/shell.html.slim +++ b/app/views/execution_environments/shell.html.slim @@ -1,6 +1,6 @@ h1 = @execution_environment -#shell data-message-timeout=t('exercises.editor.timeout', permitted_execution_time: @execution_environment.permitted_execution_time) data-url=execute_command_execution_environment_path(@execution_environment) +#shell data-message-timeout=t('exercises.editor.timeout', permitted_execution_time: @execution_environment.permitted_execution_time) data-message-out-of-memory=t('exercises.editor.out_of_memory', memory_limit: @execution_environment.memory_limit) data-url=execute_command_execution_environment_path(@execution_environment) .form-group label for='command' = t('.command') input#command.form-control type='text' diff --git a/app/views/exercises/_editor.html.slim b/app/views/exercises/_editor.html.slim index aadcffa2..59132d26 100644 --- a/app/views/exercises/_editor.html.slim +++ b/app/views/exercises/_editor.html.slim @@ -5,7 +5,7 @@ - show_rfc_interventions = @show_rfc_interventions || "false" - show_tips_interventions = @show_tips_interventions || "false" - hide_rfc_button = @hide_rfc_button || false -#editor.row data-exercise-id=@exercise.id data-message-depleted=t('exercises.editor.depleted') data-message-timeout=t('exercises.editor.timeout', permitted_execution_time: @exercise.execution_environment.permitted_execution_time) data-submissions-url=submissions_path data-user-id=@current_user.id data-user-external-id=external_user_external_id data-working-times-url=working_times_exercise_path(@exercise) data-intervention-save-url=intervention_exercise_path(@exercise) data-rfc-interventions=show_rfc_interventions data-break-interventions=show_break_interventions data-tips-interventions=show_tips_interventions data-course_token=@course_token data-search-save-url=search_exercise_path(@exercise) +#editor.row data-exercise-id=@exercise.id data-message-depleted=t('exercises.editor.depleted') data-message-timeout=t('exercises.editor.timeout', permitted_execution_time: @exercise.execution_environment.permitted_execution_time) data-message-out-of-memory=t('exercises.editor.out_of_memory', memory_limit: @exercise.execution_environment.memory_limit) data-submissions-url=submissions_path data-user-id=@current_user.id data-user-external-id=external_user_external_id data-working-times-url=working_times_exercise_path(@exercise) data-intervention-save-url=intervention_exercise_path(@exercise) data-rfc-interventions=show_rfc_interventions data-break-interventions=show_break_interventions data-tips-interventions=show_tips_interventions data-course_token=@course_token data-search-save-url=search_exercise_path(@exercise) - unless @embed_options[:hide_sidebar] - additional_classes = 'sidebar-col' diff --git a/config/locales/de.yml b/config/locales/de.yml index 10dc62ab..8f5139de 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -360,6 +360,7 @@ de: submit_after_late_deadline: Code verspätet zur Bewertung abgeben test: Testen timeout: 'Ausführung gestoppt. Ihr Code hat die erlaubte Ausführungszeit von %{permitted_execution_time} Sekunden überschritten.' + out_of_memory: 'Ausführung gestoppt. Ihr Code hat den erlaubten Arbeitsspeicher von %{memory_limit} MB überschritten.' exercise_deadline_passed: 'Das Ergebnis kann nicht übertragen werden.' tooltips: save: Ihr Code wird automatisch gespeichert, wann immer Sie eine Datei herunterladen, ausführen oder testen. Explizites Speichern ist also selten notwendig. diff --git a/config/locales/en.yml b/config/locales/en.yml index e7123be7..2cf770cb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -360,6 +360,7 @@ en: submit_after_late_deadline: Submit Code for Assessment After Deadline Passed test: Test timeout: 'Execution stopped. Your code exceeded the permitted execution time of %{permitted_execution_time} seconds.' + out_of_memory: 'Execution stopped. Your code exceeded the permitted RAM usage of %{memory_limit} MB.' exercise_deadline_passed: 'The score cannot be submitted.' tooltips: save: Your code is automatically saved whenever you download, run, or test it. Therefore, explicitly saving is rarely necessary. From f38faa45b8ab5e8b4cc7f6831f6a56ba19b23e7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Apr 2022 03:01:15 +0000 Subject: [PATCH 126/329] Bump rubocop-rspec from 2.9.0 to 2.10.0 Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.9.0 to 2.10.0. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.9.0...v2.10.0) --- updated-dependencies: - dependency-name: rubocop-rspec dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cc41fb41..e74da633 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -271,7 +271,7 @@ GEM pagedown-bootstrap-rails (2.1.4) railties (> 3.1) parallel (1.22.1) - parser (3.1.1.0) + parser (3.1.2.0) ast (~> 2.4.1) path_expander (1.1.0) pg (1.3.5) @@ -410,7 +410,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.9.0) + rubocop-rspec (2.10.0) rubocop (~> 1.19) ruby-progressbar (1.11.0) ruby-vips (2.1.4) From 4d0c65d2a2f959ae790140260bbddd9025d38039 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Apr 2022 18:00:13 +0200 Subject: [PATCH 127/329] Use Ruby syntax instead of SQL snippets for Testrun queries --- app/controllers/flowr_controller.rb | 2 +- app/helpers/statistics_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/flowr_controller.rb b/app/controllers/flowr_controller.rb index e4c3c2ca..332e23cb 100644 --- a/app/controllers/flowr_controller.rb +++ b/app/controllers/flowr_controller.rb @@ -6,7 +6,7 @@ class FlowrController < ApplicationController # get the latest submission for this user that also has a test run (i.e. structured_errors if applicable) submission = Submission.joins(:testruns) .where(submissions: {user_id: current_user.id, user_type: current_user.class.name}) - .order('testruns.created_at DESC').first + .order(testruns: {created_at: :desc}).first # Return if no submission was found if submission.blank? || @embed_options[:disable_hints] || @embed_options[:hide_test_results] diff --git a/app/helpers/statistics_helper.rb b/app/helpers/statistics_helper.rb index 4472e538..f5b159dc 100644 --- a/app/helpers/statistics_helper.rb +++ b/app/helpers/statistics_helper.rb @@ -79,7 +79,7 @@ module StatisticsHelper { key: 'container_requests_per_minute', name: t('statistics.entries.exercises.container_requests_per_minute'), - data: (Testrun.where('created_at >= ?', DateTime.now - 1.hour).count.to_f / 60).round(2), + data: (Testrun.where(created_at: DateTime.now - 1.hour..).count.to_f / 60).round(2), unit: '/min', }, { From d9f40531fbab2540a7acd236766010c47083db68 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Apr 2022 18:09:15 +0200 Subject: [PATCH 128/329] Fix Rubocop offenses --- spec/concerns/lti_spec.rb | 2 +- .../execution_environments_controller_spec.rb | 6 +++--- spec/controllers/sessions_controller_spec.rb | 2 +- spec/helpers/admin/dashboard_helper_spec.rb | 2 +- spec/lib/runner/strategy/poseidon_spec.rb | 10 +++++----- spec/models/execution_environment_spec.rb | 2 +- spec/services/proforma_service/export_task_spec.rb | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spec/concerns/lti_spec.rb b/spec/concerns/lti_spec.rb index 9423a951..12abed30 100644 --- a/spec/concerns/lti_spec.rb +++ b/spec/concerns/lti_spec.rb @@ -33,7 +33,7 @@ describe Lti do let(:last_name) { 'Doe' } let(:full_name) { 'John Doe' } let(:provider) { double } - let(:provider_full) { instance_double('IMS::LTI::ToolProvider', lis_person_name_full: full_name) } + let(:provider_full) { instance_double(IMS::LTI::ToolProvider, lis_person_name_full: full_name) } context 'when a full name is provided' do it 'returns the full name' do diff --git a/spec/controllers/execution_environments_controller_spec.rb b/spec/controllers/execution_environments_controller_spec.rb index 9f34792c..8ab91cc6 100644 --- a/spec/controllers/execution_environments_controller_spec.rb +++ b/spec/controllers/execution_environments_controller_spec.rb @@ -18,7 +18,7 @@ describe ExecutionEnvironmentsController do before do allow(Rails.env).to receive(:test?).and_return(false, true) allow(Runner.strategy_class).to receive(:sync_environment).and_return(true) - runner = instance_double 'runner' + runner = instance_double Runner allow(Runner).to receive(:for).and_return(runner) allow(runner).to receive(:execute_command).and_return({}) perform_request.call @@ -90,7 +90,7 @@ describe ExecutionEnvironmentsController do let(:command) { 'which ruby' } before do - runner = instance_double 'runner' + runner = instance_double Runner allow(Runner).to receive(:for).with(user, execution_environment).and_return runner allow(runner).to receive(:execute_command).and_return({}) post :execute_command, params: {command: command, id: execution_environment.id} @@ -183,7 +183,7 @@ describe ExecutionEnvironmentsController do before do allow(Rails.env).to receive(:test?).and_return(false, true) allow(Runner.strategy_class).to receive(:sync_environment).and_return(true) - runner = instance_double 'runner' + 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: attributes_for(:ruby, pool_size: 1), id: execution_environment.id} diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 4b7b54c0..3cf9b490 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -86,7 +86,7 @@ describe SessionsController do it 'sets the specified locale' do expect(controller).to receive(:switch_locale).and_call_original - i18n = instance_double 'i18n', locale: locale.to_s + i18n = class_double I18n, locale: locale.to_s allow(I18n).to receive(:locale=).with(I18n.default_locale).and_call_original allow(I18n).to receive(:locale=).with(locale.to_s).and_return(i18n) perform_request diff --git a/spec/helpers/admin/dashboard_helper_spec.rb b/spec/helpers/admin/dashboard_helper_spec.rb index 64307b83..e82371f3 100644 --- a/spec/helpers/admin/dashboard_helper_spec.rb +++ b/spec/helpers/admin/dashboard_helper_spec.rb @@ -12,7 +12,7 @@ describe Admin::DashboardHelper do describe '#docker_data' do before do create(:ruby) - dcp = instance_double 'docker_container_pool' + dcp = class_double Runner::Strategy::DockerContainerPool allow(Runner).to receive(:strategy_class).and_return dcp allow(dcp).to receive(:pool_size).and_return({}) end diff --git a/spec/lib/runner/strategy/poseidon_spec.rb b/spec/lib/runner/strategy/poseidon_spec.rb index 92c1da28..c4806587 100644 --- a/spec/lib/runner/strategy/poseidon_spec.rb +++ b/spec/lib/runner/strategy/poseidon_spec.rb @@ -118,7 +118,7 @@ describe Runner::Strategy::Poseidon do let(:response_status) { -1 } it 'raises an error' do - faraday_connection = instance_double 'Faraday::Connection' + faraday_connection = instance_double Faraday::Connection allow(described_class).to receive(:http_connection).and_return(faraday_connection) %i[post patch delete].each {|message| allow(faraday_connection).to receive(message).and_raise(Faraday::TimeoutError) } expect { action.call }.to raise_error(Runner::Error::FaradayError) @@ -131,7 +131,7 @@ describe Runner::Strategy::Poseidon do let(:execution_environment) { create(:ruby) } it 'makes the correct request to Poseidon' do - faraday_connection = instance_double 'Faraday::Connection' + faraday_connection = instance_double Faraday::Connection allow(described_class).to receive(:http_connection).and_return(faraday_connection) allow(faraday_connection).to receive(:put).and_return(Faraday::Response.new(status: 201)) action.call @@ -143,7 +143,7 @@ describe Runner::Strategy::Poseidon do shared_examples 'returns true when the api request was successful' do |status| it "returns true on status #{status}" do - faraday_connection = instance_double 'Faraday::Connection' + faraday_connection = instance_double Faraday::Connection allow(described_class).to receive(:http_connection).and_return(faraday_connection) allow(faraday_connection).to receive(:put).and_return(Faraday::Response.new(status: status)) expect(action.call).to be_truthy @@ -152,7 +152,7 @@ describe Runner::Strategy::Poseidon do shared_examples 'returns false when the api request failed' do |status| it "raises an exception on status #{status}" do - faraday_connection = instance_double 'Faraday::Connection' + faraday_connection = instance_double Faraday::Connection allow(described_class).to receive(:http_connection).and_return(faraday_connection) allow(faraday_connection).to receive(:put).and_return(Faraday::Response.new(status: status)) expect { action.call }.to raise_exception Runner::Error::UnexpectedResponse @@ -168,7 +168,7 @@ describe Runner::Strategy::Poseidon do end it 'raises an exception if Faraday raises an error' do - faraday_connection = instance_double 'Faraday::Connection' + faraday_connection = instance_double Faraday::Connection allow(described_class).to receive(:http_connection).and_return(faraday_connection) allow(faraday_connection).to receive(:put).and_raise(Faraday::TimeoutError) expect { action.call }.to raise_exception Runner::Error::FaradayError diff --git a/spec/models/execution_environment_spec.rb b/spec/models/execution_environment_spec.rb index 05ef6666..dc11094d 100644 --- a/spec/models/execution_environment_spec.rb +++ b/spec/models/execution_environment_spec.rb @@ -153,7 +153,7 @@ describe ExecutionEnvironment do describe '#working_docker_image?' do let(:execution_environment) { create(:ruby) } let(:working_docker_image?) { execution_environment.send(:working_docker_image?) } - let(:runner) { instance_double 'runner' } + let(:runner) { instance_double Runner } before do allow(execution_environment).to receive(:sync_runner_environment).and_return(true) diff --git a/spec/services/proforma_service/export_task_spec.rb b/spec/services/proforma_service/export_task_spec.rb index 3937f08a..ed4b5fdf 100644 --- a/spec/services/proforma_service/export_task_spec.rb +++ b/spec/services/proforma_service/export_task_spec.rb @@ -26,7 +26,7 @@ describe ProformaService::ExportTask do let(:task) { Proforma::Task.new } let(:exercise) { build(:dummy) } - let(:exporter) { instance_double('Proforma::Exporter', perform: 'zip') } + let(:exporter) { instance_double(Proforma::Exporter, perform: 'zip') } before do allow(ProformaService::ConvertExerciseToTask).to receive(:call).with(exercise: exercise).and_return(task) From e7d35af4181059836a3c385fe745b35050ed35a2 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Apr 2022 18:28:44 +0200 Subject: [PATCH 129/329] Resolve Pundit deprecation warning --- app/controllers/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9db3ae0d..116fba60 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -2,7 +2,7 @@ class ApplicationController < ActionController::Base include ApplicationHelper - include Pundit + include Pundit::Authorization MEMBER_ACTIONS = %i[destroy edit show update].freeze From 492c7e9133d7887dfa555d5982755c3d24a02ee7 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Apr 2022 18:57:26 +0200 Subject: [PATCH 130/329] Fix CookieOverflow when adding a new user --- app/controllers/internal_users_controller.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/internal_users_controller.rb b/app/controllers/internal_users_controller.rb index 8f38092d..053699c8 100644 --- a/app/controllers/internal_users_controller.rb +++ b/app/controllers/internal_users_controller.rb @@ -35,7 +35,12 @@ class InternalUsersController < ApplicationController @user = InternalUser.new(internal_user_params) authorize! @user.send(:setup_activation) - create_and_respond(object: @user) { @user.send(:send_activation_needed_email!) } + create_and_respond(object: @user) do + @user.send(:send_activation_needed_email!) + # The return value is used as a flash message. If this block does not + # have any specific return value, a default success message is shown. + nil + end end def deliver_reset_password_instructions From 5191e70462df5a2e52f4df8ecb4a02338bc46a43 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Apr 2022 19:12:44 +0200 Subject: [PATCH 131/329] Fix SQL for FlowrController --- app/controllers/flowr_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/flowr_controller.rb b/app/controllers/flowr_controller.rb index 332e23cb..8378385b 100644 --- a/app/controllers/flowr_controller.rb +++ b/app/controllers/flowr_controller.rb @@ -6,7 +6,7 @@ class FlowrController < ApplicationController # get the latest submission for this user that also has a test run (i.e. structured_errors if applicable) submission = Submission.joins(:testruns) .where(submissions: {user_id: current_user.id, user_type: current_user.class.name}) - .order(testruns: {created_at: :desc}).first + .merge(Testrun.order(created_at: :desc)).first # Return if no submission was found if submission.blank? || @embed_options[:disable_hints] || @embed_options[:hide_test_results] From b79005889b3953bd09786d3359c57e49b915dd3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Apr 2022 03:01:49 +0000 Subject: [PATCH 132/329] Bump ransack from 3.0.1 to 3.1.0 Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/activerecord-hackery/ransack/releases) - [Changelog](https://github.com/activerecord-hackery/ransack/blob/main/CHANGELOG.md) - [Commits](https://github.com/activerecord-hackery/ransack/compare/v3.0.1...v3.1.0) --- updated-dependencies: - dependency-name: ransack 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 e74da633..aa04d8b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -351,7 +351,7 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - ransack (3.0.1) + ransack (3.1.0) activerecord (>= 6.0.4) activesupport (>= 6.0.4) i18n From 9994ebdb723be4225306c787dc94c0b73ff1cb35 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 18:14:59 +0200 Subject: [PATCH 133/329] Update bundle --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index aa04d8b2..dee31da5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -359,7 +359,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree (0.4.5) - regexp_parser (2.3.0) + regexp_parser (2.3.1) remotipart (1.4.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -383,7 +383,7 @@ GEM rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) - rspec-rails (5.1.1) + rspec-rails (5.1.2) actionpack (>= 5.2) activesupport (>= 5.2) railties (>= 5.2) @@ -392,13 +392,13 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.27.0) + rubocop (1.28.1) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.16.0, < 2.0) + rubocop-ast (>= 1.17.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.17.0) @@ -600,4 +600,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.3.4 + 2.3.12 From 038864e4b4c6e79519866c8d4765887e0370fef9 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 18:18:16 +0200 Subject: [PATCH 134/329] Fix Rubocop offenses --- Vagrantfile | 2 +- config/environments/development.rb | 2 +- config/initializers/sentry_javascript.rb | 2 +- config/schedule.rb | 2 +- spec/support/selenium.rb | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index b4b9999b..96a53270 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -10,7 +10,7 @@ Vagrant.configure(2) do |config| v.cpus = 4 end config.vm.network 'forwarded_port', - host_ip: ENV['LISTEN_ADDRESS'] || '127.0.0.1', + host_ip: ENV.fetch('LISTEN_ADDRESS', '127.0.0.1'), host: 7000, guest: 7000 config.vm.synced_folder '.', '/home/vagrant/codeocean' diff --git a/config/environments/development.rb b/config/environments/development.rb index a67669de..0ba4b549 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -76,7 +76,7 @@ Rails.application.configure do # Raises helpful error messages. config.assets.raise_runtime_errors = true - BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP'] + BetterErrors::Middleware.allow_ip! ENV.fetch('TRUSTED_IP', nil) if ENV['TRUSTED_IP'] # Use an evented file watcher to asynchronously detect changes in source code, # routes, locales, etc. This feature depends on the listen gem. diff --git a/config/initializers/sentry_javascript.rb b/config/initializers/sentry_javascript.rb index 6a941da7..584f39da 100644 --- a/config/initializers/sentry_javascript.rb +++ b/config/initializers/sentry_javascript.rb @@ -6,7 +6,7 @@ class SentryJavascript end def self.dsn - ENV['SENTRY_JAVASCRIPT_DSN'] + ENV.fetch('SENTRY_JAVASCRIPT_DSN', nil) end def self.release diff --git a/config/schedule.rb b/config/schedule.rb index 597ca71c..26bed0e8 100644 --- a/config/schedule.rb +++ b/config/schedule.rb @@ -22,7 +22,7 @@ # Learn more: http://github.com/javan/whenever set :output, "#{Whenever.path}/log/whenever/whenever_$(date +%Y%m%d%H%M%S).log" -set :environment, ENV['RAILS_ENV'] if ENV['RAILS_ENV'] +set :environment, ENV.fetch('RAILS_ENV', nil) if ENV['RAILS_ENV'] every 1.day, at: '3:00 am' do rake 'detect_exercise_anomalies:with_at_least[10,50]' diff --git a/spec/support/selenium.rb b/spec/support/selenium.rb index 120881c2..a73755eb 100644 --- a/spec/support/selenium.rb +++ b/spec/support/selenium.rb @@ -3,7 +3,7 @@ require 'capybara/rspec' require 'selenium/webdriver' -if ENV['HEADLESS_TEST'] == 'true' || ENV['USER'] == 'vagrant' +if ENV.fetch('HEADLESS_TEST', nil) == 'true' || ENV.fetch('USER', nil) == 'vagrant' require 'headless' headless = Headless.new @@ -14,7 +14,7 @@ Capybara.register_driver :selenium do |app| profile = Selenium::WebDriver::Firefox::Profile.new profile['intl.accept_languages'] = 'en' options = Selenium::WebDriver::Firefox::Options.new - options.headless! if ENV['CI'] == 'true' + options.headless! if ENV.fetch('CI', nil) == 'true' options.profile = profile driver = Capybara::Selenium::Driver.new(app, browser: :firefox, capabilities: options) driver.browser.manage.window.resize_to(1280, 960) From 35454836c87feee22d7899111f7e1fa76c8c5de4 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 18:26:05 +0200 Subject: [PATCH 135/329] Allow \r\n and \n line breaks for Connection::Buffer * Nomad sends CRLF-separated lines * AWS sends LF-separated lines --- lib/runner/connection/buffer.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/runner/connection/buffer.rb b/lib/runner/connection/buffer.rb index b3421df8..12e99aa3 100644 --- a/lib/runner/connection/buffer.rb +++ b/lib/runner/connection/buffer.rb @@ -71,8 +71,8 @@ class Runner::Connection::Buffer @buffering = false @global_buffer = +'' # For our buffering, we identified line breaks with the `\n` and removed those temporarily. - # Thus, we now re-add the `\n` at the end of the string and remove the `\r` at the same time. - message = message.gsub(/\r$/, "\n") + # Thus, we now re-add the `\n` at the end of the string and (optionally) remove a trailing `\r` at the same time. + message = message.gsub(/\r?$/, "\n") @line_buffer.push message end From c5f018985976642683dcd5acaeaa7f17ae988a92 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 18:47:04 +0200 Subject: [PATCH 136/329] Connection::Buffer: Remove duplicated new line character "a\r".gsub(/\r?$/, "\n") ==> "a\n\n" --- lib/runner/connection/buffer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/runner/connection/buffer.rb b/lib/runner/connection/buffer.rb index 12e99aa3..022b9299 100644 --- a/lib/runner/connection/buffer.rb +++ b/lib/runner/connection/buffer.rb @@ -72,7 +72,7 @@ class Runner::Connection::Buffer @global_buffer = +'' # For our buffering, we identified line breaks with the `\n` and removed those temporarily. # Thus, we now re-add the `\n` at the end of the string and (optionally) remove a trailing `\r` at the same time. - message = message.gsub(/\r?$/, "\n") + message = "#{message.delete_suffix("\r")}\n" @line_buffer.push message end From 591d520e26d5b891a4b2aa3efcac6c64e2ed3447 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 19:00:02 +0200 Subject: [PATCH 137/329] Connection::Buffer: Improve performance for deleting \r suffix --- lib/runner/connection/buffer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/runner/connection/buffer.rb b/lib/runner/connection/buffer.rb index 022b9299..79ff4e6c 100644 --- a/lib/runner/connection/buffer.rb +++ b/lib/runner/connection/buffer.rb @@ -72,7 +72,8 @@ class Runner::Connection::Buffer @global_buffer = +'' # For our buffering, we identified line breaks with the `\n` and removed those temporarily. # Thus, we now re-add the `\n` at the end of the string and (optionally) remove a trailing `\r` at the same time. - message = "#{message.delete_suffix("\r")}\n" + message.delete_suffix!("\r") + message += "\n" @line_buffer.push message end From 902d09b3fa18876bed23441e8528a773d179071c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 19:34:53 +0200 Subject: [PATCH 138/329] Connection::Buffer: Allow additional, single new lines for AWS --- lib/runner/connection/buffer.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/runner/connection/buffer.rb b/lib/runner/connection/buffer.rb index 79ff4e6c..17afbfac 100644 --- a/lib/runner/connection/buffer.rb +++ b/lib/runner/connection/buffer.rb @@ -5,8 +5,9 @@ class Runner::Connection::Buffer # to be processed separately. Therefore, we split the lines by each newline character not part of an enclosed # substring either in single or double quotes (e.g., within a JSON). Originally, each line break consists of `\r\n`. # We keep the `\r` at the end of the line (keeping "empty" lines) and replace it after buffering. + # For AWS lambda functions, we also allow "empty" lines without any `\r` terminator (using the `^$` alternative). # Inspired by https://stackoverflow.com/questions/13040585/split-string-by-spaces-properly-accounting-for-quotes-and-backslashes-ruby - SPLIT_INDIVIDUAL_LINES = Regexp.compile(/(?:"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^\n])+/) + SPLIT_INDIVIDUAL_LINES = Regexp.compile(/(?:"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^\n])+|^$/) def initialize @global_buffer = +'' From dfa36f541674bf3054e37ef9358d2804811ea665 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 03:19:26 +0000 Subject: [PATCH 139/329] Bump underscore from 1.13.2 to 1.13.3 Bumps [underscore](https://github.com/jashkenas/underscore) from 1.13.2 to 1.13.3. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](https://github.com/jashkenas/underscore/compare/1.13.2...1.13.3) --- 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 e98d72e5..6faf6477 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "popper.js": "^1.16.1", "rails-erb-loader": "^5.5.2", "sortablejs": "^1.15.0", - "underscore": "^1.13.2", + "underscore": "^1.13.3", "vis": "^4.21.0", "webpack-merge": "^5.8.0" }, diff --git a/yarn.lock b/yarn.lock index 9d420e4c..0bf4dff2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7013,10 +7013,10 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" -underscore@^1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" - integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== +underscore@^1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.3.tgz#54bc95f7648c5557897e5e968d0f76bc062c34ee" + integrity sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" From 8d8bf5ef297b5dd7a2948927fb92a2144ebb4373 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 25 Apr 2022 17:53:08 +0200 Subject: [PATCH 140/329] Connection::Buffer: Fix bug for incomplete lines * Introduce (temporary) conversion to CRLF-line endings before processing and splitting the output * (Partially) revert previous changes --- lib/runner/connection/buffer.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/runner/connection/buffer.rb b/lib/runner/connection/buffer.rb index 17afbfac..2a5dd838 100644 --- a/lib/runner/connection/buffer.rb +++ b/lib/runner/connection/buffer.rb @@ -5,9 +5,8 @@ class Runner::Connection::Buffer # to be processed separately. Therefore, we split the lines by each newline character not part of an enclosed # substring either in single or double quotes (e.g., within a JSON). Originally, each line break consists of `\r\n`. # We keep the `\r` at the end of the line (keeping "empty" lines) and replace it after buffering. - # For AWS lambda functions, we also allow "empty" lines without any `\r` terminator (using the `^$` alternative). # Inspired by https://stackoverflow.com/questions/13040585/split-string-by-spaces-properly-accounting-for-quotes-and-backslashes-ruby - SPLIT_INDIVIDUAL_LINES = Regexp.compile(/(?:"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^\n])+|^$/) + SPLIT_INDIVIDUAL_LINES = Regexp.compile(/(?:"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^\n])+/) def initialize @global_buffer = +'' @@ -49,7 +48,10 @@ class Runner::Connection::Buffer def process_and_split(message_parts, stop: false) # We need a temporary buffer to operate on buffer = +'' - message_parts.scan(SPLIT_INDIVIDUAL_LINES).each do |line| + # We split lines by `\n` and want to normalize them to be separated by `\r\n`. + # This allows us to identify a former line end with `\r` (as the `\n` is not matched) + # All results returned from this buffer are normalized to feature `\n` line endings. + message_parts.encode(crlf_newline: true).scan(SPLIT_INDIVIDUAL_LINES).each do |line| # Same argumentation as above: We can always append (previous empty or invalid) buffer += line @@ -72,9 +74,8 @@ class Runner::Connection::Buffer @buffering = false @global_buffer = +'' # For our buffering, we identified line breaks with the `\n` and removed those temporarily. - # Thus, we now re-add the `\n` at the end of the string and (optionally) remove a trailing `\r` at the same time. - message.delete_suffix!("\r") - message += "\n" + # Thus, we now re-add the `\n` at the end of the string and remove the `\r` at the same time. + message = message.gsub(/\r$/, "\n") @line_buffer.push message end From e8f7688ba34983934fd1ec7b32fbb2cd3e00d4f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 03:01:08 +0000 Subject: [PATCH 141/329] Bump rubocop from 1.28.1 to 1.28.2 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.28.1 to 1.28.2. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.28.1...v1.28.2) --- updated-dependencies: - dependency-name: rubocop 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 dee31da5..592a2d9d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -392,7 +392,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.28.1) + rubocop (1.28.2) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) From d3a38b3c85ce920b309a573a2404c4af65485850 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 03:01:29 +0000 Subject: [PATCH 142/329] Bump kramdown from 2.3.2 to 2.4.0 Bumps [kramdown](https://github.com/gettalong/kramdown) from 2.3.2 to 2.4.0. - [Release notes](https://github.com/gettalong/kramdown/releases) - [Changelog](https://github.com/gettalong/kramdown/blob/master/doc/news.page) - [Commits](https://github.com/gettalong/kramdown/commits) --- updated-dependencies: - dependency-name: kramdown 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 dee31da5..06fc404f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -216,7 +216,7 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) - kramdown (2.3.2) + kramdown (2.4.0) rexml listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) From 305ee0ea0c1c542a3ebac8f3d97d33b404c73328 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 26 Apr 2022 16:23:34 +0200 Subject: [PATCH 143/329] Update Vagrant provision setup --- provision/code_ocean.vagrant.yml | 73 ++++++++++++++++++++++++++++++++ provision/provision.vagrant.sh | 10 ++++- 2 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 provision/code_ocean.vagrant.yml diff --git a/provision/code_ocean.vagrant.yml b/provision/code_ocean.vagrant.yml new file mode 100644 index 00000000..8b840614 --- /dev/null +++ b/provision/code_ocean.vagrant.yml @@ -0,0 +1,73 @@ +default: &default + flowr: + # When enabled, flowr can assist learners with related search results from + # StackOverflow.com regarding exceptions that occurred during code execution. + # The search is initiated through the learners' browser and displayed in the output pane. + enabled: false + # The number of search results to be displayed + answers_per_query: 3 + + code_pilot: + # When enabled, CodePilot can be used by learners to request individual help by a tutor + # through a video conferencing system. Optionally, it also provides access to recordings + # of previous sessions. Support for CodePilot is currently in beta. + enabled: false + # The root URL of CodePilot + url: //localhost:3000 + + codeharbor: + # When enabled, CodeHarbor is integrated in the teachers' view and allows importing + # and exporting exercises from CodeOcean using the ProFormA XML format to CodeHarbor. + enabled: false + # The root URL of CodeHarbor + url: https://codeharbor.openhpi.de + + codeocean_events: + # When enabled, learner-specific events within the editor are stored and can be used + # as part of learning analytics. This setting enables the JavaScript event handlers. + enabled: false + + prometheus_exporter: + # When enabled, a dedicated endpoint using the Prometheus format is offered and might + # be used by a Prometheus-compatible monitoring system. Exported metrics include absolute + # counters of all relations with specific support for Request-for-Comments. + enabled: false + + runner_management: + # When enabled, CodeOcean delegates the handling and management of (containerized) runners + # to a dedicated runner management. Otherwise, code executions are performed locally using + # Docker and without pre-warming support (one container per execution). + enabled: true + # The strategy to use. Possible values are: poseidon, docker_container_pool + strategy: docker_container_pool + # The root URL of the runner management to use + # If a hostname is specified and the target host is reachable via IPv6, the WebSocket + # connection might not use the IPv6-to-IPv4 fallback but rather fail unexpectedly. + url: http://127.0.0.1:7100 + # The root certificate authority to trust for TLS connections to the runner management (Poseidon only) + # ca_file: /example/certificates/ca.crt + # The authorization token for connections to the runner management (Poseidon only) + # If TLS support is not enabled, this token is transmitted in clear text! + # token: SECRET + # The maximum time in seconds a runner may idle at the runner management before it is removed. + # Each begin of an interaction with the runner resets this time. Thus, this value should + # be truly greater than any permitted execution time of an execution environment. + unused_runner_expiration_time: 180 + + +development: + <<: *default + flowr: + enabled: true + codeharbor: + enabled: true + + +production: + <<: *default + prometheus_exporter: + enabled: true + + +test: + <<: *default diff --git a/provision/provision.vagrant.sh b/provision/provision.vagrant.sh index ef8d9d14..30f55971 100644 --- a/provision/provision.vagrant.sh +++ b/provision/provision.vagrant.sh @@ -4,7 +4,7 @@ postgres_version=14 node_version=14 -ruby_version=2.7.5 +ruby_version=2.7.6 ########## INSTALL SCRIPT ########### @@ -92,7 +92,7 @@ gem install bundler cd /home/vagrant/codeocean # config -for f in action_mailer.yml database.yml secrets.yml code_ocean.yml docker.yml.erb mnemosyne.yml +for f in action_mailer.yml database.yml secrets.yml docker.yml.erb mnemosyne.yml do if [ ! -f config/$f ] then @@ -100,6 +100,12 @@ do fi done +# We want to use a preconfigured code_ocean.yml file which is using the DockerContainerPool +if [ ! -f config/code_ocean.yml ] +then + cp provision/code_ocean.vagrant.yml config/code_ocean.yml +fi + # install dependencies bundle install yarn install From 0f378ce15111f5829bcbf80f82a177486fa91ab4 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 26 Apr 2022 19:00:55 +0200 Subject: [PATCH 144/329] Limit RfC display to the last three months --- app/models/submission.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/submission.rb b/app/models/submission.rb index 2150b0c5..89649e97 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -9,7 +9,7 @@ class Submission < ApplicationRecord remoteSubmit].freeze FILENAME_URL_PLACEHOLDER = '{filename}' MAX_COMMENTS_ON_RECOMMENDED_RFC = 5 - OLDEST_RFC_TO_SHOW = 6.months + OLDEST_RFC_TO_SHOW = 3.months belongs_to :exercise belongs_to :study_group, optional: true From 7fd2d4f4e2efe075a49bdca20a81eecac367b353 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Apr 2022 03:01:06 +0000 Subject: [PATCH 145/329] Bump rails from 6.1.5 to 6.1.5.1 Bumps [rails](https://github.com/rails/rails) from 6.1.5 to 6.1.5.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.5...v6.1.5.1) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 106 +++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3cabb68e..bc3cb876 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,64 +13,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.1) - actioncable (6.1.5) - actionpack (= 6.1.5) - activesupport (= 6.1.5) + actioncable (6.1.5.1) + actionpack (= 6.1.5.1) + activesupport (= 6.1.5.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.5) - actionpack (= 6.1.5) - activejob (= 6.1.5) - activerecord (= 6.1.5) - activestorage (= 6.1.5) - activesupport (= 6.1.5) + actionmailbox (6.1.5.1) + actionpack (= 6.1.5.1) + activejob (= 6.1.5.1) + activerecord (= 6.1.5.1) + activestorage (= 6.1.5.1) + activesupport (= 6.1.5.1) mail (>= 2.7.1) - actionmailer (6.1.5) - actionpack (= 6.1.5) - actionview (= 6.1.5) - activejob (= 6.1.5) - activesupport (= 6.1.5) + actionmailer (6.1.5.1) + actionpack (= 6.1.5.1) + actionview (= 6.1.5.1) + activejob (= 6.1.5.1) + activesupport (= 6.1.5.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.5) - actionview (= 6.1.5) - activesupport (= 6.1.5) + actionpack (6.1.5.1) + actionview (= 6.1.5.1) + activesupport (= 6.1.5.1) 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.5) - actionpack (= 6.1.5) - activerecord (= 6.1.5) - activestorage (= 6.1.5) - activesupport (= 6.1.5) + actiontext (6.1.5.1) + actionpack (= 6.1.5.1) + activerecord (= 6.1.5.1) + activestorage (= 6.1.5.1) + activesupport (= 6.1.5.1) nokogiri (>= 1.8.5) - actionview (6.1.5) - activesupport (= 6.1.5) + actionview (6.1.5.1) + activesupport (= 6.1.5.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.5) - activesupport (= 6.1.5) + activejob (6.1.5.1) + activesupport (= 6.1.5.1) globalid (>= 0.3.6) - activemodel (6.1.5) - activesupport (= 6.1.5) + activemodel (6.1.5.1) + activesupport (= 6.1.5.1) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.5) - activemodel (= 6.1.5) - activesupport (= 6.1.5) - activestorage (6.1.5) - actionpack (= 6.1.5) - activejob (= 6.1.5) - activerecord (= 6.1.5) - activesupport (= 6.1.5) + activerecord (6.1.5.1) + activemodel (= 6.1.5.1) + activesupport (= 6.1.5.1) + activestorage (6.1.5.1) + actionpack (= 6.1.5.1) + activejob (= 6.1.5.1) + activerecord (= 6.1.5.1) + activesupport (= 6.1.5.1) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.5) + activesupport (6.1.5.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -301,20 +301,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.5) - actioncable (= 6.1.5) - actionmailbox (= 6.1.5) - actionmailer (= 6.1.5) - actionpack (= 6.1.5) - actiontext (= 6.1.5) - actionview (= 6.1.5) - activejob (= 6.1.5) - activemodel (= 6.1.5) - activerecord (= 6.1.5) - activestorage (= 6.1.5) - activesupport (= 6.1.5) + rails (6.1.5.1) + actioncable (= 6.1.5.1) + actionmailbox (= 6.1.5.1) + actionmailer (= 6.1.5.1) + actionpack (= 6.1.5.1) + actiontext (= 6.1.5.1) + actionview (= 6.1.5.1) + activejob (= 6.1.5.1) + activemodel (= 6.1.5.1) + activerecord (= 6.1.5.1) + activestorage (= 6.1.5.1) + activesupport (= 6.1.5.1) bundler (>= 1.15.0) - railties (= 6.1.5) + railties (= 6.1.5.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -343,9 +343,9 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.5) - actionpack (= 6.1.5) - activesupport (= 6.1.5) + railties (6.1.5.1) + actionpack (= 6.1.5.1) + activesupport (= 6.1.5.1) method_source rake (>= 12.2) thor (~> 1.0) From e9efb5bc2bc4f35805e906f883c69cc0525e4dbf Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 18:09:37 +0200 Subject: [PATCH 146/329] Add exit_code and status to Testruns, create model for TestrunMessages * This is the first step to migrate the `output` column from Testruns to a dedicated table TestrunMessages --- app/controllers/submissions_controller.rb | 69 +++++++++++++------ app/models/runner.rb | 2 +- app/models/submission.rb | 4 +- app/models/testrun.rb | 12 ++++ app/models/testrun_message.rb | 40 +++++++++++ .../20220415215111_add_details_to_testruns.rb | 24 +++++++ db/schema.rb | 20 +++++- 7 files changed, 146 insertions(+), 25 deletions(-) create mode 100644 app/models/testrun_message.rb create mode 100644 db/migrate/20220415215111_add_details_to_testruns.rb diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 31a3ff9c..3018e4de 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -146,18 +146,26 @@ class SubmissionsController < ApplicationController end runner_socket.on :exit do |exit_code| + @exit_code = exit_code exit_statement = if @output.empty? && exit_code.zero? + @status = :ok t('exercises.implement.no_output_exit_successful', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code) elsif @output.empty? + @status = :failed t('exercises.implement.no_output_exit_failure', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code) elsif exit_code.zero? + @status = :ok "\n#{t('exercises.implement.exit_successful', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code)}" else + @status = :failed "\n#{t('exercises.implement.exit_failure', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code)}" end client_socket.send_data JSON.dump({cmd: :write, stream: :stdout, data: "#{exit_statement}\n"}) - client_socket.send_data JSON.dump({cmd: :out_of_memory}) if exit_code == 137 + if exit_code == 137 + client_socket.send_data JSON.dump({cmd: :out_of_memory}) + @status = :out_of_memory + end close_client_connection(client_socket) end @@ -169,30 +177,38 @@ class SubmissionsController < ApplicationController close_client_connection(client_socket) Rails.logger.debug { "Running a submission timed out: #{e.message}" } @output = "timeout: #{@output}" + @status = :timeout extract_durations(e) rescue Runner::Error => e client_socket.send_data JSON.dump({cmd: :status, status: :container_depleted}) close_client_connection(client_socket) Rails.logger.debug { "Runner error while running a submission: #{e.message}" } + @status = :container_depleted extract_durations(e) ensure - save_run_output + save_testrun_output 'run' end def score hijack do |tubesock| tubesock.onopen do |_event| - kill_client_socket(tubesock) if @embed_options[:disable_score] + switch_locale do + kill_client_socket(tubesock) if @embed_options[:disable_score] - tubesock.send_data(JSON.dump(@submission.calculate_score)) - # To enable hints when scoring a submission, uncomment the next line: - # send_hints(tubesock, StructuredError.where(submission: @submission)) - kill_client_socket(tubesock) + tubesock.send_data(JSON.dump(@submission.calculate_score)) + # To enable hints when scoring a submission, uncomment the next line: + # send_hints(tubesock, StructuredError.where(submission: @submission)) + kill_client_socket(tubesock) + rescue Runner::Error => e + tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) + kill_client_socket(tubesock) + Rails.logger.debug { "Runner error while scoring submission #{@submission.id}: #{e.message}" } + @passed = false + @status = :container_depleted + extract_durations(e) + save_testrun_output 'assess' + end end - rescue Runner::Error => e - tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) - kill_client_socket(tubesock) - Rails.logger.debug { "Runner error while scoring submission #{@submission.id}: #{e.message}" } end end @@ -203,15 +219,21 @@ class SubmissionsController < ApplicationController def test hijack do |tubesock| tubesock.onopen do |_event| - kill_client_socket(tubesock) if @embed_options[:disable_run] + switch_locale do + kill_client_socket(tubesock) if @embed_options[:disable_run] - tubesock.send_data(JSON.dump(@submission.test(@file))) - kill_client_socket(tubesock) + tubesock.send_data(JSON.dump(@submission.test(@file))) + kill_client_socket(tubesock) + rescue Runner::Error => e + tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) + kill_client_socket(tubesock) + Rails.logger.debug { "Runner error while testing submission #{@submission.id}: #{e.message}" } + @passed = false + @status = :container_depleted + extract_durations(e) + save_testrun_output 'assess' + end end - rescue Runner::Error => e - tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) - kill_client_socket(tubesock) - Rails.logger.debug { "Runner error while testing submission #{@submission.id}: #{e.message}" } end end @@ -293,12 +315,15 @@ class SubmissionsController < ApplicationController end # save the output of this "run" as a "testrun" (scoring runs are saved in submission.rb) - def save_run_output - testrun = Testrun.create( + def save_testrun_output(cause) + testrun = Testrun.create!( file: @file, - cause: 'run', + passed: @passed, + cause: cause, submission: @submission, - output: @output, + exit_code: @exit_code, # might be nil, e.g., when the run did not finish + status: @status, + output: @output.presence, # TODO: Remove duplicated saving of the output after creating TestrunMessages container_execution_time: @container_execution_time, waiting_for_container_time: @waiting_for_container_time ) diff --git a/app/models/runner.rb b/app/models/runner.rb index 458ae144..88e36ae5 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -116,7 +116,7 @@ class Runner < ApplicationRecord output.merge!(status: :failed, container_execution_time: e.execution_duration) rescue Runner::Error => e Rails.logger.debug { "Running command `#{command}` failed: #{e.message}" } - output.merge!(status: :failed, container_execution_time: e.execution_duration) + output.merge!(status: :container_depleted, container_execution_time: e.execution_duration) ensure # We forward the exception if requested raise e if raise_exception && defined?(e) && e.present? diff --git a/app/models/submission.rb b/app/models/submission.rb index 89649e97..3f3852f0 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -252,7 +252,9 @@ class Submission < ApplicationRecord cause: 'assess', # Required to differ run and assess for RfC show file: file, # Test file that was executed passed: passed, - output: testrun_output, + exit_code: output[:exit_code], + status: output[:status], + output: testrun_output.presence, container_execution_time: output[:container_execution_time], waiting_for_container_time: output[:waiting_for_container_time] ) diff --git a/app/models/testrun.rb b/app/models/testrun.rb index 126a1499..feea7a09 100644 --- a/app/models/testrun.rb +++ b/app/models/testrun.rb @@ -4,4 +4,16 @@ class Testrun < ApplicationRecord belongs_to :file, class_name: 'CodeOcean::File', optional: true belongs_to :submission belongs_to :testrun_execution_environment, optional: true, dependent: :destroy + has_many :testrun_messages, dependent: :destroy + + enum status: { + ok: 0, + failed: 1, + container_depleted: 2, + timeout: 3, + out_of_memory: 4, + }, _default: :ok, _prefix: true + + validates :exit_code, numericality: {only_integer: true, min: 0, max: 255}, allow_nil: true + validates :status, presence: true end diff --git a/app/models/testrun_message.rb b/app/models/testrun_message.rb new file mode 100644 index 00000000..db30717a --- /dev/null +++ b/app/models/testrun_message.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +class TestrunMessage < ApplicationRecord + belongs_to :testrun + + enum cmd: { + input: 0, + write: 1, + clear: 2, + turtle: 3, + turtlebatch: 4, + render: 5, + exit: 6, + timeout: 7, + out_of_memory: 8, + status: 9, + hint: 10, + client_kill: 11, + exception: 12, + result: 13, + }, _default: :write, _prefix: true + + enum stream: { + stdin: 0, + stdout: 1, + stderr: 2, + }, _prefix: true + + validates :cmd, presence: true + validates :timestamp, presence: true + + validate :either_data_or_log + + def either_data_or_log + if [data, log].count(&:present?) > 1 + errors.add(log, "can't be present if data is also present") + end + end + private :either_data_or_log +end diff --git a/db/migrate/20220415215111_add_details_to_testruns.rb b/db/migrate/20220415215111_add_details_to_testruns.rb new file mode 100644 index 00000000..4988f601 --- /dev/null +++ b/db/migrate/20220415215111_add_details_to_testruns.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class AddDetailsToTestruns < ActiveRecord::Migration[6.1] + def change + change_table :testruns do |t| + t.integer :exit_code, limit: 2, null: true, comment: 'No exit code is available in case of a timeout' + t.check_constraint 'exit_code >= 0 AND exit_code <= 255', name: 'exit_code_constraint' + t.integer :status, limit: 1, null: false, default: 0, comment: 'Used as enum in Rails' + end + + enable_extension 'pgcrypto' unless extensions.include?('pgcrypto') + + create_table :testrun_messages, id: :uuid do |t| + t.belongs_to :testrun, foreign_key: true, null: false, index: true + t.interval :timestamp, null: false, default: '00:00:00' + t.integer :cmd, limit: 1, null: false, default: 1, comment: 'Used as enum in Rails' + t.integer :stream, limit: 1, null: true, comment: 'Used as enum in Rails' + t.text :log, null: true + t.jsonb :data, null: true + t.check_constraint 'log IS NULL OR data IS NULL', name: 'either_data_or_log' + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index ea8791a6..549b2029 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,10 +10,11 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_04_15_125948) do +ActiveRecord::Schema.define(version: 2022_04_15_215111) do # These are extensions that must be enabled in order to support this database enable_extension "pg_trgm" + enable_extension "pgcrypto" enable_extension "plpgsql" create_table "anomaly_notifications", id: :serial, force: :cascade do |t| @@ -470,6 +471,19 @@ ActiveRecord::Schema.define(version: 2022_04_15_125948) do t.index ["testrun_id"], name: "index_testrun_execution_environments_on_testrun_id" end + create_table "testrun_messages", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.bigint "testrun_id", null: false + t.interval "timestamp", default: "PT0S", null: false + t.integer "cmd", limit: 2, default: 0, null: false, comment: "Used as enum in Rails" + t.integer "stream", limit: 2, comment: "Used as enum in Rails" + t.text "log" + t.jsonb "data" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["testrun_id"], name: "index_testrun_messages_on_testrun_id" + t.check_constraint "(log IS NULL) OR (data IS NULL)", name: "either_data_or_log" + end + create_table "testruns", id: :serial, force: :cascade do |t| t.boolean "passed" t.text "output" @@ -480,7 +494,10 @@ ActiveRecord::Schema.define(version: 2022_04_15_125948) do t.string "cause" t.interval "container_execution_time" t.interval "waiting_for_container_time" + t.integer "exit_code", limit: 2, comment: "No exit code is available in case of a timeout" + t.integer "status", limit: 2, default: 0, null: false, comment: "Used as enum in Rails" t.index ["submission_id"], name: "index_testruns_on_submission_id" + t.check_constraint "(exit_code >= 0) AND (exit_code <= 255)", name: "exit_code_constraint" end create_table "tips", force: :cascade do |t| @@ -547,6 +564,7 @@ ActiveRecord::Schema.define(version: 2022_04_15_125948) do add_foreign_key "submissions", "study_groups" add_foreign_key "testrun_execution_environments", "execution_environments" add_foreign_key "testrun_execution_environments", "testruns" + add_foreign_key "testrun_messages", "testruns" add_foreign_key "tips", "file_types" add_foreign_key "user_exercise_feedbacks", "submissions" end From 9a0f26a84fcd405bb720117ab9ad63450d6229ae Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 28 Apr 2022 15:31:58 +0200 Subject: [PATCH 147/329] Allow admins and teachers to remove explicit RfC text --- app/controllers/request_for_comments_controller.rb | 9 ++++++++- app/policies/request_for_comment_policy.rb | 4 ++++ app/views/request_for_comments/_admin_menu.html.slim | 1 + config/routes.rb | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/controllers/request_for_comments_controller.rb b/app/controllers/request_for_comments_controller.rb index 1c245814..435ad2d6 100644 --- a/app/controllers/request_for_comments_controller.rb +++ b/app/controllers/request_for_comments_controller.rb @@ -1,8 +1,9 @@ # frozen_string_literal: true class RequestForCommentsController < ApplicationController + include CommonBehavior before_action :require_user! - before_action :set_request_for_comment, only: %i[show mark_as_solved set_thank_you_note] + before_action :set_request_for_comment, only: %i[show mark_as_solved set_thank_you_note clear_question] before_action :set_study_group_grouping, only: %i[index my_comment_requests rfcs_with_my_comments rfcs_for_exercise] @@ -101,6 +102,12 @@ class RequestForCommentsController < ApplicationController end end + # POST /request_for_comments/1/clear_question + def clear_question + authorize! + update_and_respond(object: @request_for_comment, params: {question: nil}) + end + # GET /request_for_comments/1 # GET /request_for_comments/1.json def show diff --git a/app/policies/request_for_comment_policy.rb b/app/policies/request_for_comment_policy.rb index d69e0cc6..55c01b4d 100644 --- a/app/policies/request_for_comment_policy.rb +++ b/app/policies/request_for_comment_policy.rb @@ -25,6 +25,10 @@ class RequestForCommentPolicy < ApplicationPolicy admin? || author? end + def clear_question? + admin? || teacher_in_study_group? + end + def edit? admin? end diff --git a/app/views/request_for_comments/_admin_menu.html.slim b/app/views/request_for_comments/_admin_menu.html.slim index 64580229..030e3276 100644 --- a/app/views/request_for_comments/_admin_menu.html.slim +++ b/app/views/request_for_comments/_admin_menu.html.slim @@ -1,6 +1,7 @@ hr h5.mt-4 Admin Menu ul.text + li = link_to "Clear question text (in case of explicit text)", clear_question_request_for_comment_path(id: @request_for_comment.id), method: :post if policy(@request_for_comment).clear_question? li = link_to "User's current status of this exercise", statistics_external_user_exercise_path(id: @request_for_comment.exercise_id, external_user_id: @request_for_comment.user_id) if policy(@request_for_comment.exercise).statistics? li = link_to "All exercises of this user", statistics_external_user_path(id: @request_for_comment.user_id) if policy(@request_for_comment.user).statistics? ul.text diff --git a/config/routes.rb b/config/routes.rb index 19e70cc4..3890129c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -21,6 +21,7 @@ Rails.application.routes.draw do member do get :mark_as_solved, defaults: {format: :json} post :set_thank_you_note, defaults: {format: :json} + post :clear_question end end resources :comments, defaults: {format: :json} From 32b818a07a5e7ce9c8a73e4b03fc6e2f2f6fe76f Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 28 Apr 2022 15:33:33 +0200 Subject: [PATCH 148/329] Update bundle --- Gemfile.lock | 14 +- yarn.lock | 466 +++++++++++++++++++++++++++++---------------------- 2 files changed, 273 insertions(+), 207 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bc3cb876..74934fe9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -145,7 +145,7 @@ GEM regexp_parser (~> 2.2) erubi (1.10.0) eventmachine (1.2.7) - excon (0.92.2) + excon (0.92.3) factory_bot (6.2.1) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -182,7 +182,7 @@ GEM image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - ims-lti (1.2.4) + ims-lti (1.2.6) builder (>= 1.0, < 4.0) oauth (>= 0.4.5, < 0.6) influxdb (0.8.1) @@ -435,13 +435,13 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.2.1) + sentry-rails (5.3.0) railties (>= 5.0) - sentry-ruby-core (~> 5.2.1) - sentry-ruby (5.2.1) + sentry-ruby-core (~> 5.3.0) + sentry-ruby (5.3.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.2.1) - sentry-ruby-core (5.2.1) + sentry-ruby-core (= 5.3.0) + sentry-ruby-core (5.3.0) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) diff --git a/yarn.lock b/yarn.lock index 0bf4dff2..41aa7d8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,11 +3,12 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": version "7.16.7" @@ -914,20 +915,33 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" + integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== + +"@jridgewell/set-array@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" + integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.11" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -993,55 +1007,55 @@ webpack-sources "^1.4.3" "@sentry/browser@^6.11.0": - version "6.19.6" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.6.tgz#75be467667fffa1f4745382fc7a695568609c634" - integrity sha512-V5QyY1cO1iuFCI78dOFbHV7vckbeQEPPq3a5dGSXlBQNYnd9Ec5xoxp5nRNpWQPOZ8/Ixt9IgRxdqVTkWib51g== + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.7.tgz#a40b6b72d911b5f1ed70ed3b4e7d4d4e625c0b5f" + integrity sha512-oDbklp4O3MtAM4mtuwyZLrgO1qDVYIujzNJQzXmi9YzymJCuzMLSRDvhY83NNDCRxf0pds4DShgYeZdbSyKraA== dependencies: - "@sentry/core" "6.19.6" - "@sentry/types" "6.19.6" - "@sentry/utils" "6.19.6" + "@sentry/core" "6.19.7" + "@sentry/types" "6.19.7" + "@sentry/utils" "6.19.7" tslib "^1.9.3" -"@sentry/core@6.19.6": - version "6.19.6" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.6.tgz#7d4649d0148b5d0be1358ab02e2f869bf7363e9a" - integrity sha512-biEotGRr44/vBCOegkTfC9rwqaqRKIpFljKGyYU6/NtzMRooktqOhjmjmItNCMRknArdeaQwA8lk2jcZDXX3Og== +"@sentry/core@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.7.tgz#156aaa56dd7fad8c89c145be6ad7a4f7209f9785" + integrity sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw== dependencies: - "@sentry/hub" "6.19.6" - "@sentry/minimal" "6.19.6" - "@sentry/types" "6.19.6" - "@sentry/utils" "6.19.6" + "@sentry/hub" "6.19.7" + "@sentry/minimal" "6.19.7" + "@sentry/types" "6.19.7" + "@sentry/utils" "6.19.7" tslib "^1.9.3" -"@sentry/hub@6.19.6": - version "6.19.6" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.6.tgz#ada83ceca0827c49534edfaba018221bc1eb75e1" - integrity sha512-PuEOBZxvx3bjxcXmWWZfWXG+orojQiWzv9LQXjIgroVMKM/GG4QtZbnWl1hOckUj7WtKNl4hEGO2g/6PyCV/vA== +"@sentry/hub@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.7.tgz#58ad7776bbd31e9596a8ec46365b45cd8b9cfd11" + integrity sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA== dependencies: - "@sentry/types" "6.19.6" - "@sentry/utils" "6.19.6" + "@sentry/types" "6.19.7" + "@sentry/utils" "6.19.7" tslib "^1.9.3" -"@sentry/minimal@6.19.6": - version "6.19.6" - resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.6.tgz#b6cced3708e25d322039e68ebdf8fadfa445bf7d" - integrity sha512-T1NKcv+HTlmd8EbzUgnGPl4ySQGHWMCyZ8a8kXVMZOPDzphN3fVIzkYzWmSftCWp0rpabXPt9aRF2mfBKU+mAQ== +"@sentry/minimal@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.7.tgz#b3ee46d6abef9ef3dd4837ebcb6bdfd01b9aa7b4" + integrity sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ== dependencies: - "@sentry/hub" "6.19.6" - "@sentry/types" "6.19.6" + "@sentry/hub" "6.19.7" + "@sentry/types" "6.19.7" tslib "^1.9.3" -"@sentry/types@6.19.6": - version "6.19.6" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.6.tgz#70513f9dca05d23d7ab9c2a6cb08d4db6763ca67" - integrity sha512-QH34LMJidEUPZK78l+Frt3AaVFJhEmIi05Zf8WHd9/iTt+OqvCHBgq49DDr1FWFqyYWm/QgW/3bIoikFpfsXyQ== +"@sentry/types@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.7.tgz#c6b337912e588083fc2896eb012526cf7cfec7c7" + integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg== -"@sentry/utils@6.19.6": - version "6.19.6" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.6.tgz#2ddc9ef036c3847084c43d0e5a55e4646bdf9021" - integrity sha512-fAMWcsguL0632eWrROp/vhPgI7sBj/JROWVPzpabwVkm9z3m1rQm6iLFn4qfkZL8Ozy6NVZPXOQ7EXmeU24byg== +"@sentry/utils@6.19.7": + version "6.19.7" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.7.tgz#6edd739f8185fd71afe49cbe351c1bbf5e7b7c79" + integrity sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA== dependencies: - "@sentry/types" "6.19.6" + "@sentry/types" "6.19.7" tslib "^1.9.3" "@types/glob@^7.1.1": @@ -1063,9 +1077,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" - integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== + version "17.0.29" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.29.tgz#7f2e1159231d4a077bb660edab0fde373e375a3d" + integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1246,9 +1260,9 @@ acorn@^6.4.1: integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== aggregate-error@^3.0.0: version "3.1.0" @@ -1439,9 +1453,9 @@ autoprefixer@^9.6.1: postcss-value-parser "^4.1.0" babel-loader@^8.2.2: - version "8.2.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b" - integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A== + version "8.2.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" loader-utils "^2.0.0" @@ -1553,21 +1567,23 @@ 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.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" - integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== +body-parser@1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== dependencies: bytes "3.1.2" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.2" - http-errors "1.8.1" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.9.7" - raw-body "2.4.3" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" type-is "~1.6.18" + unpipe "1.0.0" bonjour@^3.5.0: version "3.5.0" @@ -1693,15 +1709,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.19.1, browserslist@^4.6.4: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.17.5, browserslist@^4.20.3, browserslist@^4.6.4: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" escalade "^3.1.1" - node-releases "^2.0.2" + node-releases "^2.0.3" picocolors "^1.0.0" buffer-from@^1.0.0: @@ -1850,10 +1866,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.30001317: - version "1.0.30001328" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001328.tgz#0ed7a2ca65ec45872c613630201644237ba1e329" - integrity sha512-Ue55jHkR/s4r00FLNiX+hGMMuwml/QGqqzVeMQ5thUewznU2EdULFvI3JR7JJid6OrjJNfFvHY2G2dIjmRaDDQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001332: + version "1.0.30001334" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz#892e9965b35285033fc2b8a8eff499fe02f13d8b" + integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -1999,9 +2015,9 @@ color-name@^1.0.0: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: - 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== + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -2119,10 +2135,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.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== copy-concurrently@^1.0.0: version "1.0.5" @@ -2142,17 +2158,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.20.2, core-js-compat@^3.21.0: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" - integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== + version "3.22.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.3.tgz#9b10d786052d042bc97ee8df9c0d1fb6a49c2005" + integrity sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw== dependencies: - browserslist "^4.19.1" + browserslist "^4.20.3" semver "7.0.0" core-js@^3.16.2: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94" - integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig== + version "3.22.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.3.tgz#498c41d997654cb00e81c7a54b44f0ab21ab01d5" + integrity sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg== core-util-is@~1.0.0: version "1.0.3" @@ -2738,11 +2754,12 @@ default-gateway@^4.2.0: ip-regex "^2.1.0" define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== dependencies: - object-keys "^1.0.12" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" define-property@^0.2.5: version "0.2.5" @@ -2786,6 +2803,11 @@ delaunator@5: dependencies: robust-predicates "^3.0.0" +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -2799,10 +2821,10 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-file@^1.0.0: version "1.0.0" @@ -2896,10 +2918,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.4.84: - version "1.4.107" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.107.tgz#564257014ab14033b4403a309c813123c58a3fb9" - integrity sha512-Huen6taaVrUrSy8o7mGStByba8PfOWWluHNxSHGBrCgEdFVLtvdQDBr9LBCF9Uci8SYxh28QNNMO0oC17wbGAg== +electron-to-chromium@^1.4.118: + version "1.4.124" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.124.tgz#e9015e234d8632920dcdf5480351da9e845ed220" + integrity sha512-VhaE9VUYU6d2eIb+4xf83CATD+T+3bTzvxvlADkQE+c2hisiw3sZmvEDtsW704+Zky9WZGhBuQXijDVqSriQLA== elliptic@^6.5.3: version "6.5.4" @@ -2970,9 +2992,9 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.17.2, es-abstract@^1.19.1: - version "1.19.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.3.tgz#4dd9da55868192756c83c5c30c7878d04e77125d" - integrity sha512-4axXLNovnMYf0+csS5rVnS5hLmV1ek+ecx9MuCjByL1E5Nn54avf6CHQxIjgQIHBnfX9AMxTRIy0q+Yu5J/fXA== + version "1.19.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" + integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -3118,37 +3140,38 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: homedir-polyfill "^1.0.1" express@^4.17.1: - version "4.17.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" - integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + version "4.18.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" + integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.19.2" + body-parser "1.20.0" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.4.2" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.2" + depd "2.0.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "~1.1.2" + finalhandler "1.2.0" fresh "0.5.2" + http-errors "2.0.0" merge-descriptors "1.0.1" methods "~1.1.2" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.9.7" + qs "6.10.3" range-parser "~1.2.1" safe-buffer "5.2.1" - send "0.17.2" - serve-static "1.14.2" + send "0.18.0" + serve-static "1.15.0" setprototypeof "1.2.0" - statuses "~1.5.0" + statuses "2.0.1" type-is "~1.6.18" utils-merge "1.0.1" vary "~1.1.2" @@ -3234,17 +3257,17 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" - on-finished "~2.3.0" + on-finished "2.4.1" parseurl "~1.3.3" - statuses "~1.5.0" + statuses "2.0.1" unpipe "~1.0.0" find-cache-dir@^2.1.0: @@ -3383,6 +3406,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -3516,10 +3544,10 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" @@ -3531,6 +3559,13 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" @@ -3654,15 +3689,15 @@ 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.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== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" http-errors@~1.6.2: @@ -3962,9 +3997,9 @@ is-color-stop@^1.0.0: rgba-regex "^1.0.0" is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" @@ -4384,6 +4419,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -4413,11 +4453,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.4.0: - version "7.8.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.8.1.tgz#68ee3f4807a57d2ba185b7fd90827d5c21ce82bb" - integrity sha512-E1v547OCgJvbvevfjgK9sNKIVXO96NnsTsFPBlg4ZxjhsJSODoH9lk8Bm0OxvHNm6Vm5Yqkl/1fErDxhYL8Skg== - make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -4654,9 +4689,9 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@^2.18.1: - version "2.29.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" - integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== + version "2.29.3" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.3.tgz#edd47411c322413999f7a5940d526de183c031f3" + integrity sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw== move-concurrently@^1.0.1: version "1.0.1" @@ -4769,10 +4804,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" - integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== +node-releases@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" + integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== normalize-path@^2.1.1: version "2.1.1" @@ -4852,7 +4887,7 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -4904,10 +4939,10 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" @@ -5957,10 +5992,12 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.9.7: - version "6.9.7" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" - integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== +qs@6.10.3: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" query-string@^4.1.0: version "4.3.4" @@ -6013,13 +6050,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.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" - integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== dependencies: bytes "3.1.2" - http-errors "1.8.1" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" @@ -6101,12 +6138,13 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" - integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" + functions-have-names "^1.2.2" regexpu-core@^5.0.1: version "5.0.1" @@ -6294,9 +6332,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.50.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.50.0.tgz#3e407e2ebc53b12f1e35ce45efb226ea6063c7c8" - integrity sha512-cLsD6MEZ5URXHStxApajEh7gW189kkjn4Rc8DQweMyF+o5HF5nfEz8QYLMlPsTOD88DknatTmBWkOcw5/LnJLQ== + version "1.51.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.51.0.tgz#25ea36cf819581fe1fe8329e8c3a4eaaf70d2845" + integrity sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6362,30 +6400,30 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.2, semver@^7.3.5: - version "7.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.6.tgz#5d73886fb9c0c6602e79440b97165c29581cbb2b" - integrity sha512-HZWqcgwLsjaX1HBD31msI/rXktuIhS+lWvdE4kN9z+8IVT4Itc7vqU2WvYsyD6/sjYCt4dEKH/m1M3dwI9CC5w== + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: - lru-cache "^7.4.0" + lru-cache "^6.0.0" -send@0.17.2: - version "0.17.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" - integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== dependencies: debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" + depd "2.0.0" + destroy "1.2.0" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" - http-errors "1.8.1" + http-errors "2.0.0" mime "1.6.0" ms "2.1.3" - on-finished "~2.3.0" + on-finished "2.4.1" range-parser "~1.2.1" - statuses "~1.5.0" + statuses "2.0.1" serialize-javascript@^4.0.0: version "4.0.0" @@ -6414,15 +6452,15 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -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== +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" - send "0.17.2" + send "0.18.0" set-blocking@^2.0.0: version "2.0.0" @@ -6608,10 +6646,12 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.7.2: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@~0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" spdy-transport@^3.0.0: version "3.0.0" @@ -6675,7 +6715,12 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +"statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -6894,13 +6939,13 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.12.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.1.tgz#4cf2ebed1f5bceef5c83b9f60104ac4a78b49e9c" - integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== + version "5.13.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.0.tgz#d43fd71861df1b4df743980caa257c6fa03acc44" + integrity sha512-sgQ99P+fRBM1jAYzN9RTnD/xEWx/7LZgYTCRgmYriSq1wxxqiQPJgXkkLBBuwySDWJ2PP0PnVQyuf4xLUuH4Ng== dependencies: acorn "^8.5.0" commander "^2.20.0" - source-map "~0.7.2" + source-map "~0.8.0-beta.0" source-map-support "~0.5.20" through2@^2.0.0: @@ -6975,6 +7020,13 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -7004,13 +7056,13 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" underscore@^1.13.3: @@ -7231,6 +7283,11 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webpack-assets-manifest@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" @@ -7378,6 +7435,15 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" From 5ecba6ef70c2e33b51a5dc6407adb00e0d46cad7 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 29 Apr 2022 00:39:11 +0200 Subject: [PATCH 149/329] Persist TestrunMessages and store timestamp So far, the Testrun messages are in addition to the Tesstrun.output column --- .../execution_environments_controller.rb | 2 +- app/controllers/submissions_controller.rb | 102 ++++++++++-------- app/models/application_record.rb | 3 +- app/models/runner.rb | 27 ++--- app/models/submission.rb | 1 + app/models/testrun.rb | 1 + app/models/testrun_message.rb | 22 +++- lib/runner/strategy.rb | 2 +- lib/runner/strategy/docker_container_pool.rb | 4 +- lib/runner/strategy/null.rb | 4 +- lib/runner/strategy/poseidon.rb | 4 +- 11 files changed, 108 insertions(+), 64 deletions(-) diff --git a/app/controllers/execution_environments_controller.rb b/app/controllers/execution_environments_controller.rb index ae640521..4a665fe8 100644 --- a/app/controllers/execution_environments_controller.rb +++ b/app/controllers/execution_environments_controller.rb @@ -30,7 +30,7 @@ class ExecutionEnvironmentsController < ApplicationController def execute_command runner = Runner.for(current_user, @execution_environment) output = runner.execute_command(params[:command], raise_exception: false) - render json: output + render json: output.except(:messages) end def working_time_query diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 3018e4de..74eec3a6 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -9,6 +9,7 @@ class SubmissionsController < ApplicationController before_action :require_user! before_action :set_submission, only: %i[download download_file render_file run score show statistics test] + before_action :set_testrun, only: %i[run score test] before_action :set_files, only: %i[download show] before_action :set_files_and_specific_file, only: %i[download_file render_file run test] before_action :set_mime_type, only: %i[download_file render_file] @@ -103,6 +104,7 @@ class SubmissionsController < ApplicationController case event[:cmd].to_sym when :client_kill + @testrun[:status] = :client_kill close_client_connection(client_socket) Rails.logger.debug('Client exited container.') when :result, :canvasevent, :exception @@ -128,62 +130,62 @@ class SubmissionsController < ApplicationController end end - @output = +'' - durations = @submission.run(@file) do |socket| + @testrun[:output] = +'' + durations = @submission.run(@file) do |socket, starting_time| runner_socket = socket client_socket.send_data JSON.dump({cmd: :status, status: :container_running}) runner_socket.on :stdout do |data| - json_data = prepare data, :stdout - @output << json_data[0, max_output_buffer_size - @output.size] + json_data = prepare data, :stdout, starting_time + @testrun[:output] << json_data[0, max_output_buffer_size - @testrun[:output].size] client_socket.send_data(json_data) end runner_socket.on :stderr do |data| - json_data = prepare data, :stderr - @output << json_data[0, max_output_buffer_size - @output.size] + json_data = prepare data, :stderr, starting_time + @testrun[:output] << json_data[0, max_output_buffer_size - @testrun[:output].size] client_socket.send_data(json_data) end runner_socket.on :exit do |exit_code| - @exit_code = exit_code + @testrun[:exit_code] = exit_code exit_statement = - if @output.empty? && exit_code.zero? - @status = :ok + if @testrun[:output].empty? && exit_code.zero? + @testrun[:status] = :ok t('exercises.implement.no_output_exit_successful', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code) - elsif @output.empty? - @status = :failed + elsif @testrun[:output].empty? + @testrun[:status] = :failed t('exercises.implement.no_output_exit_failure', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code) elsif exit_code.zero? - @status = :ok + @testrun[:status] = :ok "\n#{t('exercises.implement.exit_successful', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code)}" else - @status = :failed + @testrun[:status] = :failed "\n#{t('exercises.implement.exit_failure', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code)}" end client_socket.send_data JSON.dump({cmd: :write, stream: :stdout, data: "#{exit_statement}\n"}) if exit_code == 137 client_socket.send_data JSON.dump({cmd: :out_of_memory}) - @status = :out_of_memory + @testrun[:status] = :out_of_memory end close_client_connection(client_socket) end end - @container_execution_time = durations[:execution_duration] - @waiting_for_container_time = durations[:waiting_duration] + @testrun[:container_execution_time] = durations[:execution_duration] + @testrun[:waiting_for_container_time] = durations[:waiting_duration] rescue Runner::Error::ExecutionTimeout => e client_socket.send_data JSON.dump({cmd: :status, status: :timeout}) close_client_connection(client_socket) Rails.logger.debug { "Running a submission timed out: #{e.message}" } - @output = "timeout: #{@output}" - @status = :timeout + @testrun[:output] = "timeout: #{@testrun[:output]}" + @testrun[:status] = :timeout extract_durations(e) rescue Runner::Error => e client_socket.send_data JSON.dump({cmd: :status, status: :container_depleted}) close_client_connection(client_socket) Rails.logger.debug { "Runner error while running a submission: #{e.message}" } - @status = :container_depleted + @testrun[:status] = :container_depleted extract_durations(e) ensure save_testrun_output 'run' @@ -203,8 +205,8 @@ class SubmissionsController < ApplicationController tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) kill_client_socket(tubesock) Rails.logger.debug { "Runner error while scoring submission #{@submission.id}: #{e.message}" } - @passed = false - @status = :container_depleted + @testrun[:passed] = false + @testrun[:status] = :container_depleted extract_durations(e) save_testrun_output 'assess' end @@ -228,8 +230,8 @@ class SubmissionsController < ApplicationController tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) kill_client_socket(tubesock) Rails.logger.debug { "Runner error while testing submission #{@submission.id}: #{e.message}" } - @passed = false - @status = :container_depleted + @testrun[:passed] = false + @testrun[:status] = :container_depleted extract_durations(e) save_testrun_output 'assess' end @@ -279,16 +281,16 @@ class SubmissionsController < ApplicationController end def extract_durations(error) - @container_execution_time = error.execution_duration - @waiting_for_container_time = error.waiting_duration + @testrun[:container_execution_time] = error.execution_duration + @testrun[:waiting_for_container_time] = error.waiting_duration end def extract_errors results = [] - if @output.present? + if @testrun[:output].present? @submission.exercise.execution_environment.error_templates.each do |template| pattern = Regexp.new(template.signature).freeze - results << StructuredError.create_from_template(template, @output, @submission) if pattern.match(@output) + results << StructuredError.create_from_template(template, @testrun[:output], @submission) if pattern.match(@testrun[:output]) end end results @@ -302,12 +304,11 @@ class SubmissionsController < ApplicationController end end - def prepare(data, stream) - if valid_command? data - data - else - JSON.dump({cmd: :write, stream: stream, data: data}) - end + def prepare(data, stream, starting_time) + message = retrieve_message_from_output data, stream + message[:timestamp] = ActiveSupport::Duration.build(Time.zone.now - starting_time) + @testrun[:messages].push message + JSON.dump(message) end def sanitize_filename @@ -318,15 +319,16 @@ class SubmissionsController < ApplicationController def save_testrun_output(cause) testrun = Testrun.create!( file: @file, - passed: @passed, + passed: @testrun[:passed], cause: cause, submission: @submission, - exit_code: @exit_code, # might be nil, e.g., when the run did not finish - status: @status, - output: @output.presence, # TODO: Remove duplicated saving of the output after creating TestrunMessages - container_execution_time: @container_execution_time, - waiting_for_container_time: @waiting_for_container_time + exit_code: @testrun[:exit_code], # might be nil, e.g., when the run did not finish + status: @testrun[:status], + output: @testrun[:output].presence, # TODO: Remove duplicated saving of the output after creating TestrunMessages + container_execution_time: @testrun[:container_execution_time], + waiting_for_container_time: @testrun[:waiting_for_container_time] ) + TestrunMessage.create_for(testrun, @testrun[:messages]) TestrunExecutionEnvironment.create(testrun: testrun, execution_environment: @submission.used_execution_environment) end @@ -361,10 +363,26 @@ class SubmissionsController < ApplicationController authorize! end - def valid_command?(data) + def set_testrun + @testrun = { + messages: [], + exit_code: nil, + status: nil, + } + end + + def retrieve_message_from_output(data, stream) parsed = JSON.parse(data) - parsed.instance_of?(Hash) && parsed.key?('cmd') + if parsed.instance_of?(Hash) && parsed.key?('cmd') + parsed.symbolize_keys! + # Symbolize two values if present + parsed[:cmd] = parsed[:cmd].to_sym + parsed[:stream] = parsed[:stream].to_sym if parsed.key? :stream + parsed + else + {cmd: :write, stream: stream, data: data} + end rescue JSON::ParserError - false + {cmd: :write, stream: stream, data: data} end end diff --git a/app/models/application_record.rb b/app/models/application_record.rb index a851eca6..2e96397b 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -8,7 +8,8 @@ class ApplicationRecord < ActiveRecord::Base def strip_strings # trim whitespace from beginning and end of string attributes # except for the `content` of CodeOcean::Files - attribute_names.without('content').each do |name| + # and except the `log` of TestrunMessages or the `output` of Testruns + attribute_names.without('content', 'log', 'output').each do |name| if send(name.to_sym).respond_to?(:strip) send("#{name}=".to_sym, send(name).strip) end diff --git a/app/models/runner.rb b/app/models/runner.rb index 88e36ae5..6da8d657 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -62,7 +62,7 @@ class Runner < ApplicationRecord # initializing its Runner::Connection with the given event loop. The Runner::Connection class ensures that # this event loop is stopped after the socket was closed. event_loop = Runner::EventLoop.new - socket = @strategy.attach_to_execution(command, event_loop, &block) + socket = @strategy.attach_to_execution(command, event_loop, starting_time, &block) event_loop.wait raise socket.error if socket.error.present? rescue Runner::Error => e @@ -74,30 +74,34 @@ class Runner < ApplicationRecord end def execute_command(command, raise_exception: true) - output = {} - stdout = +'' - stderr = +'' + output = { + stdout: +'', + stderr: +'', + messages: [], + exit_code: 1, # default to error + } try = 0 - exit_code = 1 # default to error begin if try.nonzero? request_new_id save end - execution_time = attach_to_execution(command) do |socket| + execution_time = attach_to_execution(command) do |socket, starting_time| socket.on :stderr do |data| - stderr << data + output[:stderr] << data + output[:messages].push({cmd: :write, stream: :stderr, log: data, timestamp: Time.zone.now - starting_time}) end socket.on :stdout do |data| - stdout << data + output[:stdout] << data + output[:messages].push({cmd: :write, stream: :stdout, log: data, timestamp: Time.zone.now - starting_time}) end socket.on :exit do |received_exit_code| - exit_code = received_exit_code + output[:exit_code] = received_exit_code end end - output.merge!(container_execution_time: execution_time, status: exit_code.zero? ? :ok : :failed) + output.merge!(container_execution_time: execution_time, status: output[:exit_code].zero? ? :ok : :failed) rescue Runner::Error::ExecutionTimeout => e Rails.logger.debug { "Running command `#{command}` timed out: #{e.message}" } output.merge!(status: :timeout, container_execution_time: e.execution_duration) @@ -122,8 +126,7 @@ class Runner < ApplicationRecord raise e if raise_exception && defined?(e) && e.present? # If the process was killed with SIGKILL, it is most likely that the OOM killer was triggered. - output[:status] = :out_of_memory if exit_code == 137 - output.merge!(stdout: stdout, stderr: stderr, exit_code: exit_code) + output[:status] = :out_of_memory if output[:exit_code] == 137 end end diff --git a/app/models/submission.rb b/app/models/submission.rb index 3f3852f0..3aa1ef3d 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -258,6 +258,7 @@ class Submission < ApplicationRecord container_execution_time: output[:container_execution_time], waiting_for_container_time: output[:waiting_for_container_time] ) + TestrunMessage.create_for(testrun, output[:messages]) TestrunExecutionEnvironment.create(testrun: testrun, execution_environment: @used_execution_environment) filename = file.filepath diff --git a/app/models/testrun.rb b/app/models/testrun.rb index feea7a09..44464c7d 100644 --- a/app/models/testrun.rb +++ b/app/models/testrun.rb @@ -12,6 +12,7 @@ class Testrun < ApplicationRecord container_depleted: 2, timeout: 3, out_of_memory: 4, + client_kill: 5, }, _default: :ok, _prefix: true validates :exit_code, numericality: {only_integer: true, min: 0, max: 255}, allow_nil: true diff --git a/app/models/testrun_message.rb b/app/models/testrun_message.rb index db30717a..67299e2a 100644 --- a/app/models/testrun_message.rb +++ b/app/models/testrun_message.rb @@ -18,6 +18,7 @@ class TestrunMessage < ApplicationRecord client_kill: 11, exception: 12, result: 13, + canvasevent: 14, }, _default: :write, _prefix: true enum stream: { @@ -28,9 +29,28 @@ class TestrunMessage < ApplicationRecord validates :cmd, presence: true validates :timestamp, presence: true - + validates :stream, length: {minimum: 0, allow_nil: false}, if: -> { cmd_write? } + validates :log, length: {minimum: 0, allow_nil: false}, if: -> { cmd_write? } validate :either_data_or_log + def self.create_for(testrun, messages) + messages.map! do |message| + # We create a new hash and move all known keys + result = {} + result[:testrun] = testrun + result[:log] = message.delete(:log) || (message.delete(:data) if message[:cmd] == :write) + result[:timestamp] = message.delete :timestamp + result[:stream] = message.delete :stream + result[:cmd] = message.delete :cmd + # The remaining keys will be stored in the `data` column + result[:data] = message.presence + result + end + + # An array with hashes is passed, all are stored + TestrunMessage.create!(messages) + end + def either_data_or_log if [data, log].count(&:present?) > 1 errors.add(log, "can't be present if data is also present") diff --git a/lib/runner/strategy.rb b/lib/runner/strategy.rb index 313d35fa..6b2093c6 100644 --- a/lib/runner/strategy.rb +++ b/lib/runner/strategy.rb @@ -33,7 +33,7 @@ class Runner::Strategy raise NotImplementedError end - def attach_to_execution(_command, _event_loop) + def attach_to_execution(_command, _event_loop, _starting_time) raise NotImplementedError end diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index fa4ef574..cf328244 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -108,7 +108,7 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Finished copying files" } end - def attach_to_execution(command, event_loop) + def attach_to_execution(command, event_loop, starting_time) reset_inactivity_timer @command = command @@ -119,7 +119,7 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy begin Timeout.timeout(@execution_environment.permitted_execution_time) do socket.send_data(command) - yield(socket) + yield(socket, starting_time) event_loop.wait event_loop.stop end diff --git a/lib/runner/strategy/null.rb b/lib/runner/strategy/null.rb index 4702e6f4..a47ac51c 100644 --- a/lib/runner/strategy/null.rb +++ b/lib/runner/strategy/null.rb @@ -25,11 +25,11 @@ class Runner::Strategy::Null < Runner::Strategy def copy_files(_files); end - def attach_to_execution(command, event_loop) + def attach_to_execution(command, event_loop, starting_time) socket = Connection.new(nil, self, event_loop) # We don't want to return an error if the execution environment is changed socket.status = :terminated_by_codeocean if command == ExecutionEnvironment::VALIDATION_COMMAND - yield(socket) + yield(socket, starting_time) socket end diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index b0bb6607..477ae0f1 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -133,10 +133,10 @@ class Runner::Strategy::Poseidon < Runner::Strategy Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Finished copying files" } end - def attach_to_execution(command, event_loop) + def attach_to_execution(command, event_loop, starting_time) websocket_url = execute_command(command) socket = Connection.new(websocket_url, self, event_loop) - yield(socket) + yield(socket, starting_time) socket end From ea02dff0e5d38e066a7e6d61bf9790c0498ca00d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 29 Apr 2022 16:03:36 +0200 Subject: [PATCH 150/329] Extend storage of Testrun Messages and truncate long output --- app/assets/javascripts/editor/editor.js.erb | 2 + app/assets/javascripts/editor/execution.js | 2 - app/controllers/submissions_controller.rb | 65 ++++++++++++--------- app/errors/runner/error.rb | 2 +- app/models/runner.rb | 1 + app/models/submission.rb | 1 + app/models/testrun.rb | 2 +- app/models/testrun_message.rb | 55 +++++++++++++---- spec/models/runner_spec.rb | 6 +- 9 files changed, 90 insertions(+), 46 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index d40badea..233e6b5a 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -703,6 +703,8 @@ var CodeOceanEditor = { this.showTimeoutMessage(); } else if (output.status === 'container_depleted') { this.showContainerDepletedMessage(); + } else if (output.status === 'out_of_memory') { + this.showOutOfMemoryMessage(); } else if (output.stderr) { $.flash.danger({ icon: ['fa', 'fa-bug'], diff --git a/app/assets/javascripts/editor/execution.js b/app/assets/javascripts/editor/execution.js index 6b2df68b..ec1784c9 100644 --- a/app/assets/javascripts/editor/execution.js +++ b/app/assets/javascripts/editor/execution.js @@ -46,8 +46,6 @@ CodeOceanEditorWebsocket = { this.websocket.on('turtlebatch', this.handleTurtlebatchCommand.bind(this)); this.websocket.on('render', this.renderWebsocketOutput.bind(this)); this.websocket.on('exit', this.handleExitCommand.bind(this)); - this.websocket.on('timeout', this.showTimeoutMessage.bind(this)); - this.websocket.on('out_of_memory', this.showOutOfMemoryMessage.bind(this)); this.websocket.on('status', this.showStatus.bind(this)); this.websocket.on('hint', this.showHint.bind(this)); }, diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 74eec3a6..0ef7fa11 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -93,6 +93,7 @@ class SubmissionsController < ApplicationController client_socket.onclose do |_event| runner_socket&.close(:terminated_by_client) + # We do not update the @testrun[:status] by design, it would be missleading end client_socket.onmessage do |raw_event| @@ -101,10 +102,17 @@ class SubmissionsController < ApplicationController # Otherwise, we expect to receive a JSON: Parsing. event = JSON.parse(raw_event).deep_symbolize_keys + event[:cmd] = event[:cmd].to_sym + event[:stream] = event[:stream].to_sym if event.key? :stream - case event[:cmd].to_sym + # We could store the received event. However, it is also echoed by the container + # and correctly identified as the original input. Therefore, we don't store + # it here to prevent duplicated events. + # @testrun[:messages].push(event) + + case event[:cmd] when :client_kill - @testrun[:status] = :client_kill + @testrun[:status] = :terminated_by_client close_client_connection(client_socket) Rails.logger.debug('Client exited container.') when :result, :canvasevent, :exception @@ -133,18 +141,19 @@ class SubmissionsController < ApplicationController @testrun[:output] = +'' durations = @submission.run(@file) do |socket, starting_time| runner_socket = socket + @testrun[:starting_time] = starting_time client_socket.send_data JSON.dump({cmd: :status, status: :container_running}) runner_socket.on :stdout do |data| - json_data = prepare data, :stdout, starting_time - @testrun[:output] << json_data[0, max_output_buffer_size - @testrun[:output].size] - client_socket.send_data(json_data) + message = retrieve_message_from_output data, :stdout + @testrun[:output] << message[:data][0, max_output_buffer_size - @testrun[:output].size] if message[:data] + send_and_store client_socket, message end runner_socket.on :stderr do |data| - json_data = prepare data, :stderr, starting_time - @testrun[:output] << json_data[0, max_output_buffer_size - @testrun[:output].size] - client_socket.send_data(json_data) + message = retrieve_message_from_output data, :stderr + @testrun[:output] << message[:data][0, max_output_buffer_size - @testrun[:output].size] if message[:data] + send_and_store client_socket, message end runner_socket.on :exit do |exit_code| @@ -163,9 +172,9 @@ class SubmissionsController < ApplicationController @testrun[:status] = :failed "\n#{t('exercises.implement.exit_failure', timestamp: l(Time.zone.now, format: :short), exit_code: exit_code)}" end - client_socket.send_data JSON.dump({cmd: :write, stream: :stdout, data: "#{exit_statement}\n"}) + send_and_store client_socket, {cmd: :write, stream: :stdout, data: "#{exit_statement}\n"} if exit_code == 137 - client_socket.send_data JSON.dump({cmd: :out_of_memory}) + send_and_store client_socket, {cmd: :status, status: :out_of_memory} @testrun[:status] = :out_of_memory end @@ -175,17 +184,15 @@ class SubmissionsController < ApplicationController @testrun[:container_execution_time] = durations[:execution_duration] @testrun[:waiting_for_container_time] = durations[:waiting_duration] rescue Runner::Error::ExecutionTimeout => e - client_socket.send_data JSON.dump({cmd: :status, status: :timeout}) + send_and_store client_socket, {cmd: :status, status: :timeout} close_client_connection(client_socket) Rails.logger.debug { "Running a submission timed out: #{e.message}" } @testrun[:output] = "timeout: #{@testrun[:output]}" - @testrun[:status] = :timeout extract_durations(e) rescue Runner::Error => e - client_socket.send_data JSON.dump({cmd: :status, status: :container_depleted}) + send_and_store client_socket, {cmd: :status, status: :container_depleted} close_client_connection(client_socket) Rails.logger.debug { "Runner error while running a submission: #{e.message}" } - @testrun[:status] = :container_depleted extract_durations(e) ensure save_testrun_output 'run' @@ -197,17 +204,17 @@ class SubmissionsController < ApplicationController switch_locale do kill_client_socket(tubesock) if @embed_options[:disable_score] + # The score is stored separately, we can forward it to the client immediately tubesock.send_data(JSON.dump(@submission.calculate_score)) # To enable hints when scoring a submission, uncomment the next line: # send_hints(tubesock, StructuredError.where(submission: @submission)) kill_client_socket(tubesock) rescue Runner::Error => e - tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) + extract_durations(e) + send_and_store tubesock, {cmd: :status, status: :container_depleted} kill_client_socket(tubesock) Rails.logger.debug { "Runner error while scoring submission #{@submission.id}: #{e.message}" } @testrun[:passed] = false - @testrun[:status] = :container_depleted - extract_durations(e) save_testrun_output 'assess' end end @@ -224,15 +231,15 @@ class SubmissionsController < ApplicationController switch_locale do kill_client_socket(tubesock) if @embed_options[:disable_run] + # The score is stored separately, we can forward it to the client immediately tubesock.send_data(JSON.dump(@submission.test(@file))) kill_client_socket(tubesock) rescue Runner::Error => e - tubesock.send_data JSON.dump({cmd: :status, status: :container_depleted}) + extract_durations(e) + send_and_store tubesock, {cmd: :status, status: :container_depleted} kill_client_socket(tubesock) Rails.logger.debug { "Runner error while testing submission #{@submission.id}: #{e.message}" } @testrun[:passed] = false - @testrun[:status] = :container_depleted - extract_durations(e) save_testrun_output 'assess' end end @@ -253,6 +260,7 @@ class SubmissionsController < ApplicationController end def kill_client_socket(client_socket) + # We don't want to store this (arbitrary) exit command and redirect it ourselves client_socket.send_data JSON.dump({cmd: :exit}) client_socket.close end @@ -281,6 +289,7 @@ class SubmissionsController < ApplicationController end def extract_durations(error) + @testrun[:starting_time] = error.starting_time @testrun[:container_execution_time] = error.execution_duration @testrun[:waiting_for_container_time] = error.waiting_duration end @@ -296,6 +305,13 @@ class SubmissionsController < ApplicationController results end + def send_and_store(client_socket, message) + message[:timestamp] = ActiveSupport::Duration.build(Time.zone.now - @testrun[:starting_time]) + @testrun[:messages].push message + @testrun[:status] = message[:status] if message[:status] + client_socket.send_data JSON.dump(message) + end + def max_output_buffer_size if @submission.cause == 'requestComments' 5000 @@ -304,13 +320,6 @@ class SubmissionsController < ApplicationController end end - def prepare(data, stream, starting_time) - message = retrieve_message_from_output data, stream - message[:timestamp] = ActiveSupport::Duration.build(Time.zone.now - starting_time) - @testrun[:messages].push message - JSON.dump(message) - end - def sanitize_filename params[:filename].gsub(/\.json$/, '') end @@ -337,7 +346,7 @@ class SubmissionsController < ApplicationController errors = errors.to_a.uniq(&:hint) errors.each do |error| - tubesock.send_data JSON.dump({cmd: 'hint', hint: error.hint, description: error.error_template.description}) + send_and_store tubesock, {cmd: :hint, hint: error.hint, description: error.error_template.description} end end diff --git a/app/errors/runner/error.rb b/app/errors/runner/error.rb index e943db73..139045d1 100644 --- a/app/errors/runner/error.rb +++ b/app/errors/runner/error.rb @@ -2,7 +2,7 @@ class Runner class Error < ApplicationError - attr_accessor :waiting_duration, :execution_duration + attr_accessor :waiting_duration, :execution_duration, :starting_time class BadRequest < Error; end diff --git a/app/models/runner.rb b/app/models/runner.rb index 6da8d657..20909927 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -66,6 +66,7 @@ class Runner < ApplicationRecord event_loop.wait raise socket.error if socket.error.present? rescue Runner::Error => e + e.starting_time = starting_time e.execution_duration = Time.zone.now - starting_time raise end diff --git a/app/models/submission.rb b/app/models/submission.rb index 3aa1ef3d..a269de17 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -273,6 +273,7 @@ class Submission < ApplicationRecord output.merge!(assessment) output.merge!(filename: filename, message: feedback_message(file, output), weight: file.weight) + output.except!(:messages) end def feedback_message(file, output) diff --git a/app/models/testrun.rb b/app/models/testrun.rb index 44464c7d..18a9b393 100644 --- a/app/models/testrun.rb +++ b/app/models/testrun.rb @@ -12,7 +12,7 @@ class Testrun < ApplicationRecord container_depleted: 2, timeout: 3, out_of_memory: 4, - client_kill: 5, + terminated_by_client: 5, }, _default: :ok, _prefix: true validates :exit_code, numericality: {only_integer: true, min: 0, max: 255}, allow_nil: true diff --git a/app/models/testrun_message.rb b/app/models/testrun_message.rb index 67299e2a..eff0b68c 100644 --- a/app/models/testrun_message.rb +++ b/app/models/testrun_message.rb @@ -11,14 +11,14 @@ class TestrunMessage < ApplicationRecord turtlebatch: 4, render: 5, exit: 6, - timeout: 7, - out_of_memory: 8, - status: 9, - hint: 10, - client_kill: 11, - exception: 12, - result: 13, - canvasevent: 14, + status: 7, + hint: 8, + client_kill: 9, + exception: 10, + result: 11, + canvasevent: 12, + timeout: 13, # TODO: Shouldn't be in the data, this is a status and can be removed after the migration finished + out_of_memory: 14, # TODO: Shouldn't be in the data, this is a status and can be removed after the migration finished }, _default: :write, _prefix: true enum stream: { @@ -34,21 +34,52 @@ class TestrunMessage < ApplicationRecord validate :either_data_or_log def self.create_for(testrun, messages) + # We don't want to store anything if the testrun passed + return if testrun.passed? + messages.map! do |message| # We create a new hash and move all known keys result = {} result[:testrun] = testrun - result[:log] = message.delete(:log) || (message.delete(:data) if message[:cmd] == :write) + result[:log] = (message.delete(:log) || message.delete(:data)) if message[:cmd] == :write || message.key?(:log) result[:timestamp] = message.delete :timestamp - result[:stream] = message.delete :stream + result[:stream] = message.delete :stream if message.key?(:stream) result[:cmd] = message.delete :cmd # The remaining keys will be stored in the `data` column - result[:data] = message.presence + result[:data] = message.presence if message.present? result end + # Before storing all messages, we truncate some to save storage + filtered_messages = filter_messages_by_size testrun, messages + # An array with hashes is passed, all are stored - TestrunMessage.create!(messages) + TestrunMessage.create!(filtered_messages) + end + + def self.filter_messages_by_size(testrun, messages) + limits = if testrun.submission.cause == 'requestComments' + {data: {limit: 25, size: 0}, log: {limit: 5000, size: 0}} + else + {data: {limit: 10, size: 0}, log: {limit: 500, size: 0}} + end + + filtered_messages = messages.map do |message| + if message.key?(:log) && limits[:log][:size] < limits[:log][:limit] + message[:log] = message[:log][0, limits[:log][:limit] - limits[:log][:size]] + limits[:log][:size] += message[:log].size + elsif message[:data] && limits[:data][:size] < limits[:data][:limit] + limits[:data][:size] += 1 + elsif !message.key?(:log) && limits[:data][:size] < limits[:data][:limit] + # Accept short TestrunMessages (e.g. just transporting a status information) + # without increasing the `limits[:data][:limit]` before the limit is reached + else + # Clear all remaining messages + message = nil + end + message + end + filtered_messages.select(&:present?) end def either_data_or_log diff --git a/spec/models/runner_spec.rb b/spec/models/runner_spec.rb index 5f23e775..5639263a 100644 --- a/spec/models/runner_spec.rb +++ b/spec/models/runner_spec.rb @@ -115,10 +115,12 @@ describe Runner do end it 'attaches the execution time to the error' do - starting_time = Time.zone.now + test_starting_time = Time.zone.now expect { runner.attach_to_execution(command) }.to raise_error do |raised_error| - test_time = Time.zone.now - starting_time + test_time = Time.zone.now - test_starting_time expect(raised_error.execution_duration).to be_between(0.0, test_time).exclusive + # The `starting_time` is shortly after the `test_starting_time`` + expect(raised_error.starting_time).to be > test_starting_time end end end From db62686b753c50c35cac36252bf8dcc25dfa92a6 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sun, 24 Apr 2022 18:14:19 +0200 Subject: [PATCH 151/329] Migrate existing Testruns to use TestrunMessages --- db/migrate/20220415215112_migrate_testruns.rb | 317 ++++++++++++++++++ db/schema.rb | 2 +- 2 files changed, 318 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20220415215112_migrate_testruns.rb diff --git a/db/migrate/20220415215112_migrate_testruns.rb b/db/migrate/20220415215112_migrate_testruns.rb new file mode 100644 index 00000000..52622e4d --- /dev/null +++ b/db/migrate/20220415215112_migrate_testruns.rb @@ -0,0 +1,317 @@ +# frozen_string_literal: true + +class MigrateTestruns < ActiveRecord::Migration[6.1] + # We are not changing any tables but only backfilling data. + disable_ddl_transaction! + + SPLIT_OUTPUT = Regexp.compile(/(?message: (?.*)\n|status: (?.*)\n)? stdout: (?.*)\n stderr: ?(?.*)/m) + PYTHON_BYTE_OUTPUT = Regexp.compile(/^b'(?.*)'$/) + PYTHON_JSON_OUTPUT = Regexp.compile(/{"cmd":"write","stream":"(?.*)","data":"(?.*)"}/) + RUN_OUTPUT = Regexp.compile(%r{(?timeout:)? ?(?>make run\r\n)?(?>python3 /usr/lib/[^\r\n]*\r\n|/usr/bin/python3[^\r\n]*\r\n|ruby [^\r\n]*\r\n)?(?[^ "\e][^\e]*?[^#\e])?(?\r\e.*?)?#?(?exit|timeout)?\r?\Z}m) + REAL_EXIT = Regexp.compile(/\A(?>(?(?{".*?)?(?>{"cmd":(?> |"write","stream":"stdout","data":)?"#?exit(?>\\[nr])?"})+(?.*))|(?.*?)(?>#?exit\s*)+(?.*))\z/m) + STDERR_WRITTEN = Regexp.compile(/^(?:(?\r*[^\n\r]*\.rb:\d+:.*)|(?\r*[^\n\r]*\.java:\d+: error.*|\r*Exception in thread.*|\r*There was .*|\r*[^\n\r]*java\.lang\..*|\r*make: \*\*\* \[.*))\z/m) + FIND_JSON = Regexp.compile(/{(?:(?:"(?:\\.|[^\\"])+?"\s*:\s*(?:"(?:\\.|[^\\"])*?"|-?\d++(?:\.\d++)?|\[.*?\]|{.*?}|null))+?\s*,?\s*)+}/) + REPLACE_INCOMPLETE_UNICODE = Regexp.compile(/(?:\\?\\u[\da-f]{0,3}|\\?\\u\{[\da-f]{0,4})"}\z/) + + # NOTE: `update_columns` won't run validations nor update the `updated_at` timestamp. + # This is what we want here, thus we disable Rubocop for this migration. + # rubocop:disable Rails/SkipsModelValidations + def up + ActiveRecord::Base.transaction do + migrate_cause + migrate_messages + end + end + + private + + def migrate_cause + Rails.logger.info 'Unifying `cause` for multiple Testruns and Submissions. This might take a while...' + + # Our database contains various causes: "assess, "remoteAssess", "run", "submit" + # As of 2022, we only differentiate between a "run" and a "assess" execution + # Other values were never stored programmatically but added + # with the `20170830083601_add_cause_to_testruns.rb` migration. + cause_migration = { + # old_value => new _value + 'remoteAssess' => 'assess', + 'submit' => 'assess', + } + + Testrun.where(cause: cause_migration.keys).find_each do |testrun| + # Ensure that the submission has the correct cause + testrun.submission.update_columns(cause: testrun.cause) + + # Update the testrun with the new cause + testrun.update_columns(cause: cause_migration[testrun.cause]) + end + end + + def migrate_messages + Rails.logger.info 'Migrating Testrun to TestrunMessages using RegEx. This will take a very long time...' + + Testrun.find_each do |testrun| + result = case testrun.passed + when true + migrate_successful_score_run(testrun) + when false + migrate_failed_score_run(testrun) + else + # The "testrun" is actually a "run" (as stored in `cause`) + migrate_code_execution(testrun) + end + + testrun.update_columns(result.slice(:exit_code, :status)) + end + end + + def migrate_successful_score_run(testrun) + # If the testrun passed, we (typically) won't have any output. + # Thus, we assume that the assessment exited with 0 successfully + result = {exit_code: 0, status: :ok} + stdout, stderr = nil + + if testrun.output&.match(PYTHON_BYTE_OUTPUT) + # Some runs until 2016-04-13 have (useless) output. We could remove them but keep them for now + # + # The output is manually converted in a dumped ruby string (from Python) and undumped. + # All Python test output is printed on STDERR, even for successful code runs. + dumped_raw_output = Regexp.last_match(:raw_output)&.gsub(/"/, '\\"') + stderr = "\"#{dumped_raw_output}\"".undump + # There is no other output format present in the database (checked manually), so nothing for `else` + end + + store_stdout_stderr(testrun, stdout, stderr) + result + end + + def migrate_failed_score_run(testrun) + # This score run was not successful. We set some defaults and search for more details + result = {exit_code: 1, status: :failed} + stdout, stderr = nil + + case testrun.output + when SPLIT_OUTPUT + # Output has well-known format. Let's split it and store it in dedicated fields + + # `status` is one of :ok, :failed, :container_depleted, :timeout, :out_of_memory + # `message` (see RegEx) was prefixed for some time and always contained no value (checked manually) + result[:status] = Regexp.last_match(:status)&.to_sym || result[:status] + stdout = Regexp.last_match(:stdout)&.presence + stderr = Regexp.last_match(:stderr)&.presence + when PYTHON_BYTE_OUTPUT + # The output is manually converted in a dumped ruby string (from Python) and undumped + dumped_raw_output = Regexp.last_match(:raw_output)&.gsub(/"/, '\\"') + stderr = "\"#{dumped_raw_output}\"".undump + when PYTHON_JSON_OUTPUT + # A very few (N=2) assess runs contain a single raw JSON message. + # To be sure, we grep the stream and data here to store it later again. + if Regexp.last_match(:stream) == 'stdout' + stdout = Regexp.last_match(:data_output) + else + stderr = Regexp.last_match(:data_output) + end + else + stderr = testrun.output.presence + end + + # If possible, we try to infer whether this run used make (exit code 2) or not (exit code 1) + get_exit_code_from_stderr(stderr&.match(STDERR_WRITTEN), result) + + store_stdout_stderr(testrun, stdout, stderr) + result + end + + def migrate_code_execution(testrun) + # The `output` variable is modified several times throughout this script. + # Thus, we make a copy and modify it to remove control information, shell command lines, + # and any other unwanted strings that are not part of the program execution. + output = testrun.output + + # A reference to the `result` variable is passed to each processing method and modified there + # Order of `status` interpretation: `Failure` before `Exit` before `timeout` before `ok` + result = {status: :ok, exit_code: 0} + + output = code_execution_trim(output, result) + output = code_execution_search_for_exit(output, result) + # Now, we either know that + # - the program terminated (status = :ok) or + # - the execution timed-out (status = :timeout) or + # - that the information is not present in the data (e.g., because it was truncated). In this case, we need + # to assume successful termination. Further "guessing" is performed below based on the output. + + code_execution_process_json(testrun, output, result) + + # If we found JSON input, we're done and can continue with saving our changes. + # Otherwise, we need to continue here... + code_execution_process_raw(testrun, output, result) unless result[:json_output] + + result + end + + def code_execution_trim(output, result) + # First, we apply some pre-processing: + # - Identify `timeout: ` and `timeout:` prefixes + # - Identify `#exit`, `#timeout` suffixes (with optional # and \n) + # - Clean remaining output and remove trailing "make run", "python3 /usr/lib/...", "/usr/bin/python3 ...", and "ruby ..." lines. + # - Additionally, (multiple) trailing " (from Python) are removed so that these start with {" (a usual JSON) + # - Also, remove any shell output by identifying \e (ESC) - filter checked manually + pre_processing = output&.match(RUN_OUTPUT) + + if pre_processing.present? + # The `prefix` might only be `timeout:`. We use that. + result[:status] = :timeout if pre_processing[:prefix] == 'timeout:' + + # The `suffix` might be `timeout` or `exit`. + # As sometimes the execution was not identified as `exited`, a `timeout` was reached. + # Here, we want to "restore" the original status: If the execution `exited`, we ignore the `timeout`. + result[:status] = :timeout if pre_processing[:suffix] == 'timeout' + result[:status] = :ok if pre_processing[:suffix] == 'exit' + + # For further processing, we continue using our cleaned_output + output = pre_processing[:cleaned_output] + + # Other shell output is ignored by design. + # pre_processing[:shell] + end + + output + end + + def code_execution_search_for_exit(output, result) + # Second, we check for (another) presence of an `exit`. + # This time, we consider the following variances: + # - {"cmd": "exit"} + # - {"cmd":"exit"} + # - #exit + # - exit + # The text until the first `exit` is recognized will be treated as the original output + # Any text that is included after the last `exit` is considered as further shell output (and thus ignored). + search_for_exit = output&.match(REAL_EXIT) + + # If we find an `exit` identifier, we also know whether JSON was processed or not. + # That information is stored for further processing. If not found, we don't assume JSON. + result[:json_output] = false + + if search_for_exit.present? # Nothing matched, we don't have any exit code + output = search_for_exit[:json_output] || search_for_exit[:program_output] + result[:status] = :ok + + # Check whether the first group with JSON data matched. + result[:json_output] = search_for_exit[:json] + + # Other shell output is ignored by design. + # search_for_exit[:more_shell_output_after_json] || search_for_exit[:more_shell_output_after_program] + end + + output + end + + def code_execution_process_json(testrun, output, result) + # Third, we parse JSON messages and split those into their streams + # Before doing so, we try to close the last JSON message (which was probably cut off hard) + # Either, we need to end the current string with " and close the object with } or just close the object. + if output.present? && output.count('{') != output.count('}') + # Remove single trailing escape character + output.delete_suffix!('\\') if (output.ends_with?('\\') && !output.ends_with?('\\\\')) || (output.ends_with?('\\\\\\') && !output.ends_with?('\\\\\\\\')) + if (output.ends_with?('"') || output.ends_with?('{')) && !output.ends_with?('\"') + output += '}' + else + output += '"}' + end + # Remove incomplete unicode characters (usually \u0061) at the end of the JSON + output = output.gsub(REPLACE_INCOMPLETE_UNICODE, '"}') + end + # Then, we look for valid JSON parts and parse them. + unparsed_json_messages = output&.scan(FIND_JSON) || [] + parsed_json_messages = unparsed_json_messages.map {|message| JSON.parse(message) } + + parsed_json_messages.each_with_index do |json, index| + create_testrun_message(testrun, json, index + 1) # Index is starting with 0. + + # It is very likely that any presence of stderr indicates an unsuccessful execution. + next unless json['stream'] == 'stderr' + + result[:status] = :failed + result[:exit_code] = 1 + # If possible, we try to infer whether this run used make (exit code 2) or not (exit code 1) + get_exit_code_from_stderr(json['data']&.match(STDERR_WRITTEN), result) + end + + result[:json_output] = parsed_json_messages.present? + end + + def code_execution_process_raw(testrun, output, result) + # Forth, we want to separate the remaining `output` into STDOUT and STDERR. + # In this step, we also infer whether the program exited normally or unexpectedly. + errors = output&.match(STDERR_WRITTEN) || {} + # Probably, only one of `rb_error` or `other_error` is filled. We want to be sure and concatenate both + stderr = "#{errors[:rb_error]}#{errors[:rb_error]}" + stdout = output&.delete_suffix(stderr) || output # Fallback to full output in case nothing matched + + get_exit_code_from_stderr(errors, result) + + store_stdout_stderr(testrun, stdout, stderr) + result + end + + def get_exit_code_from_stderr(stderr_match, result) + # As the exit code is not recorded yet, we define some rules + # - An output containing ".java:: error" had a syntax error (Java) + # - An output containing "Exception in thread " or "java.lang." had a runtime exception (Java) + # - An output containing ".rb::" also had some error (Ruby) + # - An output containing "make: *** [] Error " failed (somewhere) + # - (No dedicated search for R, JS, required [e.g., because of using make]) + # In our use case, `make` either returns `0` for success or `2` for any error (regardless of the shown). + # For others, we set the exit code to `1` (as done by Ruby or other interpreters) + + return if stderr_match.nil? + + if stderr_match[:rb_error].present? + # Ruby is used without make and normally exists with `1` in case of an error + result[:exit_code] = 1 + result[:status] = :failed + elsif stderr_match[:other_error].present? + # `make` was used and the exit code was `2` (according to `man` page) + result[:exit_code] = 2 + result[:status] = :failed + end + end + + def store_stdout_stderr(testrun, stdout, stderr) + # Create two messages based on our split messages. + # We assume that (most likely) STDOUT was written before STDERR + order = 0 # Incremented before storing any value + create_testrun_message(testrun, {'cmd' => 'write', 'stream' => 'stdout', 'data' => stdout}, order += 1) if stdout.present? + create_testrun_message(testrun, {'cmd' => 'write', 'stream' => 'stderr', 'data' => stderr}, order + 1) if stderr.present? + end + + def create_testrun_message(testrun, json, order) + # Using the string keys by design. Otherwise, we would need to call #symbolize_keys! + + message = { + testrun: testrun, + cmd: json['cmd'], + # We cannot infer any timestamp and thus use arbitrary, distinct millisecond values (1s = 1000ms) + timestamp: ActiveSupport::Duration.build(order / 1000.0), + created_at: testrun.created_at, + updated_at: testrun.updated_at, + } + + if json.key?('stream') && json.key?('data') + message[:stream] = json['stream'] + message[:log] = json['data'] + else + message[:data] = json.except('cmd').presence + end + + begin + TestrunMessage.create(message) + rescue StandardError + # We ignore any error here. This probably indicates that the JSON recovered from the output was invalid + # An invalid JSON might be caused by our arbitrary truncation... + end + end + + # rubocop:enable Rails/SkipsModelValidations +end diff --git a/db/schema.rb b/db/schema.rb index 549b2029..c042354f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_04_15_215111) do +ActiveRecord::Schema.define(version: 2022_04_15_215112) do # These are extensions that must be enabled in order to support this database enable_extension "pg_trgm" From 4ef7da839d2b60e68fad5bb5352492c2d6a7bc14 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 28 Apr 2022 22:40:11 +0200 Subject: [PATCH 152/329] Use TestrunMessages instead of Testrun.output when displaying output --- app/models/testrun.rb | 4 ++++ app/models/testrun_message.rb | 3 +++ .../external_users/statistics.html.slim | 4 ++-- app/views/request_for_comments/show.html.slim | 17 ++--------------- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/app/models/testrun.rb b/app/models/testrun.rb index 18a9b393..be3df12d 100644 --- a/app/models/testrun.rb +++ b/app/models/testrun.rb @@ -17,4 +17,8 @@ class Testrun < ApplicationRecord validates :exit_code, numericality: {only_integer: true, min: 0, max: 255}, allow_nil: true validates :status, presence: true + + def log + testrun_messages.output.select(:log).map(&:log).join.presence + end end diff --git a/app/models/testrun_message.rb b/app/models/testrun_message.rb index eff0b68c..831d9fd2 100644 --- a/app/models/testrun_message.rb +++ b/app/models/testrun_message.rb @@ -33,6 +33,9 @@ class TestrunMessage < ApplicationRecord validates :log, length: {minimum: 0, allow_nil: false}, if: -> { cmd_write? } validate :either_data_or_log + default_scope { order(timestamp: :asc) } + scope :output, -> { where(cmd: 1, stream: %i[stdout stderr]) } + def self.create_for(testrun, messages) # We don't want to store anything if the testrun passed return if testrun.passed? diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index dc603ab3..e37622fd 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&.filepath, run.output].join("\n").strip + .unit-test-result.positive-result title=[run.file&.filepath, run.log].join.strip - else - .unit-test-result.unknown-result title=[run.file&.filepath, run.output].join("\n").strip + .unit-test-result.unknown-result title=[run.file&.filepath, run.log].join.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/request_for_comments/show.html.slim b/app/views/request_for_comments/show.html.slim index 8ab242f9..d6ae99f4 100644 --- a/app/views/request_for_comments/show.html.slim +++ b/app/views/request_for_comments/show.html.slim @@ -38,20 +38,7 @@ .collapsed.testrun-output.text span.fa.fa-chevron-down.collapse-button - output_runs.each do |testrun| - - output = testrun.try(:output) - - if output - - Sentry.set_extras(output: output) - - begin - - Timeout::timeout(2) do - // (?:\\"|.) is required to correctly identify " within the output. - // The outer (?: |\d+?) is used to correctly identify integers within the JSON - - messages = output.scan(/{(?:(?:"(?:\\"|.)+?":(?:"(?:\\"|.)*?"|-?\d+?|\[.*?\]|null))+?,?)+}/) - - messages.map! {|el| JSON.parse(el)} - - messages.keep_if {|message| message['cmd'] == 'write'} - - messages.map! {|message| message['data']} - - output = messages.join '' - - rescue Timeout::Error - pre= output or t('request_for_comments.no_output') + pre= testrun.log or t('request_for_comments.no_output') - assess_runs = testruns.select {|run| run.cause == 'assess' } - unless @current_user.admin? @@ -64,7 +51,7 @@ div class=("result #{testrun.passed ? 'passed' : 'failed'}") .collapsed.testrun-output.text span.fa.fa-chevron-down.collapse-button - pre= testrun.output or t('request_for_comments.no_output') + pre= testrun.log or t('request_for_comments.no_output') - if @current_user.admin? && user.is_a?(ExternalUser) = render('admin_menu') From 2ce9c4258a4bbdf4dde2877ebcec681b437b3da2 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 29 Apr 2022 22:53:12 +0200 Subject: [PATCH 153/329] Remove New Relic --- Gemfile | 1 - Gemfile.lock | 2 - app/controllers/application_controller.rb | 2 - app/controllers/concerns/lti.rb | 1 - app/controllers/exercises_controller.rb | 2 - app/models/submission.rb | 1 - config/newrelic.yml.example | 220 ---------------------- 7 files changed, 229 deletions(-) delete mode 100644 config/newrelic.yml.example diff --git a/Gemfile b/Gemfile index 3a9bceb8..a3ea8b16 100644 --- a/Gemfile +++ b/Gemfile @@ -49,7 +49,6 @@ gem 'whenever', require: false # Error Tracing gem 'mnemosyne-ruby' -gem 'newrelic_rpm' gem 'sentry-rails' gem 'sentry-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index 74934fe9..d73967d9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -254,7 +254,6 @@ GEM net-http-persistent (4.0.1) connection_pool (~> 2.2) netrc (0.11.0) - newrelic_rpm (8.6.0) nio4r (2.5.8) nokogiri (1.13.4) mini_portile2 (~> 2.8.0) @@ -554,7 +553,6 @@ DEPENDENCIES mimemagic mnemosyne-ruby net-http-persistent - newrelic_rpm nokogiri nyan-cat-formatter pagedown-bootstrap-rails diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 116fba60..dd5882f5 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -15,8 +15,6 @@ class ApplicationController < ActionController::Base rescue_from ActionController::InvalidAuthenticityToken, with: :render_csrf_error def current_user - ::NewRelic::Agent.add_custom_attributes(external_user_id: session[:external_user_id], - session_user_id: session[:user_id]) @current_user ||= ExternalUser.find_by(id: session[:external_user_id]) || login_from_session || login_from_other_sources || nil end diff --git a/app/controllers/concerns/lti.rb b/app/controllers/concerns/lti.rb index 8d3b727f..6c931763 100644 --- a/app/controllers/concerns/lti.rb +++ b/app/controllers/concerns/lti.rb @@ -138,7 +138,6 @@ module Lti private :return_to_consumer def send_score(submission) - ::NewRelic::Agent.add_custom_attributes({score: submission.normalized_score, session: session}) unless (0..MAXIMUM_SCORE).cover?(submission.normalized_score) raise Error.new("Score #{submission.normalized_score} must be between 0 and #{MAXIMUM_SCORE}!") end diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index e052e230..29310ac4 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -534,8 +534,6 @@ working_time_accumulated: working_time_accumulated}) end def transmit_lti_score - ::NewRelic::Agent.add_custom_attributes({submission: @submission.id, - normalized_score: @submission.normalized_score}) response = send_score(@submission) if response[:status] == 'success' diff --git a/app/models/submission.rb b/app/models/submission.rb index 3f3852f0..1af804fc 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -76,7 +76,6 @@ class Submission < ApplicationRecord end def normalized_score - ::NewRelic::Agent.add_custom_attributes({unnormalized_score: score}) if !score.nil? && !exercise.maximum_score.nil? && exercise.maximum_score.positive? score / exercise.maximum_score else diff --git a/config/newrelic.yml.example b/config/newrelic.yml.example deleted file mode 100644 index bcff3c2a..00000000 --- a/config/newrelic.yml.example +++ /dev/null @@ -1,220 +0,0 @@ -# -# This file configures the New Relic Agent. New Relic monitors Ruby, Java, -# .NET, PHP, Python and Node applications with deep visibility and low -# overhead. For more information, visit www.newrelic.com. - - -# Here are the settings that are common to all environments -common: &default_settings - # ============================== LICENSE KEY =============================== - - # You must specify the license key associated with your New Relic - # account. This key binds your Agent's data to your account in the - # New Relic service. - license_key: 'CHANGE_ME' - - # Agent Enabled (Ruby/Rails Only) - # Use this setting to force the agent to run or not run. - # Default is 'auto' which means the agent will install and run only - # if a valid dispatcher such as Mongrel is running. This prevents - # it from running with Rake or the console. Set to false to - # completely turn the agent off regardless of the other settings. - # Valid values are true, false and auto. - # - # agent_enabled: auto - - # Application Name Set this to be the name of your application as - # you'd like it show up in New Relic. The service will then auto-map - # instances of your application into an "application" on your - # dashboard page. If you want to map this instance into multiple - # apps, like "AJAX Requests" and "All UI" then specify a semicolon - # separated list of up to three distinct names, or a yaml list. - # Defaults to the capitalized RAILS_ENV or RACK_ENV (i.e., - # Production, Staging, etc) - # - # Example: - # - # app_name: - # - Ajax Service - # - All Services - # - # Caution: If you change this name, a new application will appear in the New - # Relic user interface with the new name, and data will stop reporting to the - # app with the old name. - # - # See https://newrelic.com/docs/site/renaming-applications for more details - # on renaming your New Relic applications. - # - app_name: Code Ocean - - # When "true", the agent collects performance data about your - # application and reports this data to the New Relic service at - # newrelic.com. This global switch is normally overridden for each - # environment below. (formerly called 'enabled') - monitor_mode: true - - # Developer mode should be off in every environment but - # development as it has very high overhead in memory. - developer_mode: false - - # The newrelic agent generates its own log file to keep its logging - # information separate from that of your application. Specify its - # log level here. - log_level: info - - # Optionally set the path to the log file This is expanded from the - # root directory (may be relative or absolute, e.g. 'log/' or - # '/var/log/') The agent will attempt to create this directory if it - # does not exist. - # log_file_path: 'log' - - # Optionally set the name of the log file, defaults to 'newrelic_agent.log' - # log_file_name: 'newrelic_agent.log' - - # The newrelic agent communicates with the service via https by default. This - # prevents eavesdropping on the performance metrics transmitted by the agent. - # The encryption required by SSL introduces a nominal amount of CPU overhead, - # which is performed asynchronously in a background thread. If you'd prefer - # to send your metrics over http uncomment the following line. - # ssl: false - - #============================== Browser Monitoring =============================== - # New Relic Real User Monitoring gives you insight into the performance real users are - # experiencing with your website. This is accomplished by measuring the time it takes for - # your users' browsers to download and render your web pages by injecting a small amount - # of JavaScript code into the header and footer of each page. - browser_monitoring: - # By default the agent automatically injects the monitoring JavaScript - # into web pages. Set this attribute to false to turn off this behavior. - auto_instrument: true - - # Proxy settings for connecting to the New Relic server. - # - # If a proxy is used, the host setting is required. Other settings - # are optional. Default port is 8080. - # - # proxy_host: hostname - # proxy_port: 8080 - # proxy_user: - # proxy_pass: - - # The agent can optionally log all data it sends to New Relic servers to a - # separate log file for human inspection and auditing purposes. To enable this - # feature, change 'enabled' below to true. - # See: https://newrelic.com/docs/ruby/audit-log - audit_log: - enabled: false - - # Tells transaction tracer and error collector (when enabled) - # whether or not to capture HTTP params. When true, frameworks can - # exclude HTTP parameters from being captured. - # Rails: the RoR filter_parameter_logging excludes parameters - # Java: create a config setting called "ignored_params" and set it to - # a comma separated list of HTTP parameter names. - # ex: ignored_params: credit_card, ssn, password - capture_params: false - - # Transaction tracer captures deep information about slow - # transactions and sends this to the New Relic service once a - # minute. Included in the transaction is the exact call sequence of - # the transactions including any SQL statements issued. - transaction_tracer: - - # Transaction tracer is enabled by default. Set this to false to - # turn it off. This feature is only available at the Professional - # and above product levels. - enabled: true - - # Threshold in seconds for when to collect a transaction - # trace. When the response time of a controller action exceeds - # this threshold, a transaction trace will be recorded and sent to - # New Relic. Valid values are any float value, or (default) "apdex_f", - # which will use the threshold for an dissatisfying Apdex - # controller action - four times the Apdex T value. - transaction_threshold: apdex_f - - # When transaction tracer is on, SQL statements can optionally be - # recorded. The recorder has three modes, "off" which sends no - # SQL, "raw" which sends the SQL statement in its original form, - # and "obfuscated", which strips out numeric and string literals. - record_sql: obfuscated - - # Threshold in seconds for when to collect stack trace for a SQL - # call. In other words, when SQL statements exceed this threshold, - # then capture and send to New Relic the current stack trace. This is - # helpful for pinpointing where long SQL calls originate from. - stack_trace_threshold: 0.500 - - # Determines whether the agent will capture query plans for slow - # SQL queries. Only supported in mysql and postgres. Should be - # set to false when using other adapters. - # explain_enabled: true - - # Threshold for query execution time below which query plans will - # not be captured. Relevant only when `explain_enabled` is true. - # explain_threshold: 0.5 - - # Error collector captures information about uncaught exceptions and - # sends them to New Relic for viewing - error_collector: - - # Error collector is enabled by default. Set this to false to turn - # it off. This feature is only available at the Professional and above - # product levels. - enabled: true - - # To stop specific errors from reporting to New Relic, set this property - # to comma-separated values. Default is to ignore routing errors, - # which are how 404's get triggered. - ignore_errors: "ActionController::RoutingError,Sinatra::NotFound" - - # If you're interested in capturing memcache keys as though they - # were SQL uncomment this flag. Note that this does increase - # overhead slightly on every memcached call, and can have security - # implications if your memcached keys are sensitive - # capture_memcache_keys: true - -# Application Environments -# ------------------------------------------ -# Environment-specific settings are in this section. -# For Rails applications, RAILS_ENV is used to determine the environment. -# For Java applications, pass -Dnewrelic.environment to set -# the environment. - -# NOTE if your application has other named environments, you should -# provide newrelic configuration settings for these environments here. - -development: - <<: *default_settings - # Turn on communication to New Relic service in development mode - monitor_mode: true - app_name: Code Ocean (Development) - - # Rails Only - when running in Developer Mode, the New Relic Agent will - # present performance information on the last 100 transactions you have - # executed since starting the mongrel. - # NOTE: There is substantial overhead when running in developer mode. - # Do not use for production or load testing. - developer_mode: true - -test: - <<: *default_settings - # It almost never makes sense to turn on the agent when running - # unit, functional or integration tests or the like. - monitor_mode: false - -# Turn on the agent in production for 24x7 monitoring. NewRelic -# testing shows an average performance impact of < 5 ms per -# transaction, you can leave this on all the time without -# incurring any user-visible performance degradation. -production: - <<: *default_settings - monitor_mode: true - -# Many applications have a staging environment which behaves -# identically to production. Support for that environment is provided -# here. By default, the staging environment has the agent turned on. -staging: - <<: *default_settings - monitor_mode: true - app_name: Code Ocean (Staging) From 4b5e9ff13653aea0688c15e8464bea0eb33844ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 May 2022 03:01:16 +0000 Subject: [PATCH 154/329] Bump nokogiri from 1.13.4 to 1.13.5 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.4 to 1.13.5. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.4...v1.13.5) --- updated-dependencies: - dependency-name: nokogiri 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 d73967d9..2ecedc80 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -255,7 +255,7 @@ GEM connection_pool (~> 2.2) netrc (0.11.0) nio4r (2.5.8) - nokogiri (1.13.4) + nokogiri (1.13.5) mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) From 309900c6f3851916f608016fd046ba16988ca164 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 May 2022 03:01:05 +0000 Subject: [PATCH 155/329] Bump json_schemer from 0.2.20 to 0.2.21 Bumps [json_schemer](https://github.com/davishmcclurg/json_schemer) from 0.2.20 to 0.2.21. - [Release notes](https://github.com/davishmcclurg/json_schemer/releases) - [Commits](https://github.com/davishmcclurg/json_schemer/compare/v0.2.20...v0.2.21) --- updated-dependencies: - dependency-name: json_schemer 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 2ecedc80..0cd11b8a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -198,7 +198,7 @@ GEM js-routes (2.2.3) railties (>= 4) json (2.6.1) - json_schemer (0.2.20) + json_schemer (0.2.21) ecma-re-validator (~> 0.3) hana (~> 1.3) regexp_parser (~> 2.0) From d9a2470a894c2230cbdd7561cf2cbb9c12942a98 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 6 May 2022 15:36:03 +0200 Subject: [PATCH 156/329] Allow tables for Markdown rendering --- config/application.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/application.rb b/config/application.rb index c481b600..8903479a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -53,5 +53,8 @@ module CodeOcean # Initialize the runner environment Runner.strategy_class.initialize_environment end + + # Allow tables in addition to existing default tags + config.action_view.sanitized_allowed_tags = ActionView::Base.sanitized_allowed_tags + %w[table thead tbody tfoot td tr] end end From 6d95b921f08c407b8f5ddeff6bcf11ddf6ad2fe0 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 6 May 2022 16:29:52 +0200 Subject: [PATCH 157/329] Limit RfC display to the last months --- app/models/submission.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/submission.rb b/app/models/submission.rb index e0bf3de8..3d0c40c9 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -9,7 +9,7 @@ class Submission < ApplicationRecord remoteSubmit].freeze FILENAME_URL_PLACEHOLDER = '{filename}' MAX_COMMENTS_ON_RECOMMENDED_RFC = 5 - OLDEST_RFC_TO_SHOW = 3.months + OLDEST_RFC_TO_SHOW = 1.months belongs_to :exercise belongs_to :study_group, optional: true From f0b89d846126d2a194ac7049812bd8793b109673 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 6 May 2022 16:42:30 +0200 Subject: [PATCH 158/329] Fix Rubocop offense --- app/models/submission.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/submission.rb b/app/models/submission.rb index 3d0c40c9..6136c09c 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -9,7 +9,7 @@ class Submission < ApplicationRecord remoteSubmit].freeze FILENAME_URL_PLACEHOLDER = '{filename}' MAX_COMMENTS_ON_RECOMMENDED_RFC = 5 - OLDEST_RFC_TO_SHOW = 1.months + OLDEST_RFC_TO_SHOW = 1.month belongs_to :exercise belongs_to :study_group, optional: true From 557d4c013a4bee485767511bed20b63102bd15cb Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 6 May 2022 16:45:21 +0200 Subject: [PATCH 159/329] Bundle update --- Gemfile.lock | 4 +- yarn.lock | 269 +++++++++++++++++++++++++++------------------------ 2 files changed, 144 insertions(+), 129 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0cd11b8a..a1ec11ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -221,7 +221,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.16.0) + loofah (2.17.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -260,7 +260,7 @@ GEM racc (~> 1.4) nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) - oauth (0.5.8) + oauth (0.5.10) oauth2 (1.4.9) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) diff --git a/yarn.lock b/yarn.lock index 41aa7d8a..1a03c9d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,40 +17,40 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.8", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== "@babel/core@^7.15.0": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" + integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" + "@babel/generator" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" "@babel/helper-module-transforms" "^7.17.7" "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" + "@babel/parser" "^7.17.10" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.17.10" + "@babel/types" "^7.17.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" + integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.17.10" + "@jridgewell/gen-mapping" "^0.1.0" jsesc "^2.5.1" - source-map "^0.5.0" "@babel/helper-annotate-as-pure@^7.16.7": version "7.16.7" @@ -67,14 +67,14 @@ "@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.7", "@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" + integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== dependencies: - "@babel/compat-data" "^7.17.7" + "@babel/compat-data" "^7.17.10" "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" + browserslist "^4.20.2" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": @@ -90,7 +90,7 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.16.7": +"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.0": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== @@ -260,10 +260,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== +"@babel/parser@^7.16.7", "@babel/parser@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" + integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": version "7.16.7" @@ -298,7 +298,7 @@ "@babel/helper-create-class-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-proposal-class-static-block@^7.16.7": +"@babel/plugin-proposal-class-static-block@^7.17.6": version "7.17.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== @@ -355,7 +355,7 @@ "@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.7": +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.17.3": version "7.17.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== @@ -558,7 +558,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.16.7": +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.17.7": version "7.17.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== @@ -627,7 +627,7 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.16.8": +"@babel/plugin-transform-modules-commonjs@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== @@ -637,7 +637,7 @@ "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.16.7": +"@babel/plugin-transform-modules-systemjs@^7.17.8": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== @@ -656,12 +656,12 @@ "@babel/helper-module-transforms" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" - integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz#715dbcfafdb54ce8bccd3d12e8917296a4ba66a4" + integrity sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.17.0" "@babel/plugin-transform-new-target@^7.16.7": version "7.16.7" @@ -692,7 +692,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.16.7": +"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== @@ -707,9 +707,9 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-runtime@^7.15.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz#0a2e08b5e2b2d95c4b1d3b3371a2180617455b70" - integrity sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz#b89d821c55d61b5e3d3c3d1d636d8d5a81040ae1" + integrity sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -770,26 +770,26 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.15.0": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" - integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.10.tgz#a81b093669e3eb6541bb81a23173c5963c5de69c" + integrity sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g== dependencies: - "@babel/compat-data" "^7.16.8" - "@babel/helper-compilation-targets" "^7.16.7" + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" "@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.8" "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.16.7" + "@babel/plugin-proposal-class-static-block" "^7.17.6" "@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-object-rest-spread" "^7.17.3" "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" "@babel/plugin-proposal-optional-chaining" "^7.16.7" "@babel/plugin-proposal-private-methods" "^7.16.11" @@ -815,7 +815,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-destructuring" "^7.17.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" @@ -824,15 +824,15 @@ "@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.8" - "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-commonjs" "^7.17.9" + "@babel/plugin-transform-modules-systemjs" "^7.17.8" "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.10" "@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-regenerator" "^7.17.9" "@babel/plugin-transform-reserved-words" "^7.16.7" "@babel/plugin-transform-shorthand-properties" "^7.16.7" "@babel/plugin-transform-spread" "^7.16.7" @@ -842,11 +842,11 @@ "@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.8" + "@babel/types" "^7.17.10" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" - core-js-compat "^3.20.2" + core-js-compat "^3.22.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -876,26 +876,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" + integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" + "@babel/generator" "^7.17.10" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/parser" "^7.17.10" + "@babel/types" "^7.17.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.4.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.4.4": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" + integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -924,24 +924,24 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz#4ac237f4dabc8dd93330386907b97591801f7352" - integrity sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw== + version "3.0.7" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== "@jridgewell/set-array@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" - integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + version "1.4.13" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + version "0.3.10" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz#db436f0917d655393851bc258918c00226c9b183" + integrity sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1077,9 +1077,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.29.tgz#7f2e1159231d4a077bb660edab0fde373e375a3d" - integrity sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA== + version "17.0.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d" + integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1709,7 +1709,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.20.3, browserslist@^4.6.4: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.6.4: version "4.20.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== @@ -1867,9 +1867,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.30001332: - version "1.0.30001334" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001334.tgz#892e9965b35285033fc2b8a8eff499fe02f13d8b" - integrity sha512-kbaCEBRRVSoeNs74sCuq92MJyGrMtjWVfhltoHUCW4t4pXFvGjUBrfo47weBRViHkiV3eBYyIsfl956NtHGazw== + version "1.0.30001338" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz#b5dd7a7941a51a16480bdf6ff82bded1628eec0d" + integrity sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2157,18 +2157,18 @@ 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.20.2, core-js-compat@^3.21.0: - version "3.22.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.3.tgz#9b10d786052d042bc97ee8df9c0d1fb6a49c2005" - integrity sha512-wliMbvPI2idgFWpFe7UEyHMvu6HWgW8WA+HnDRtgzoSDYvXFMpoGX1H3tPDDXrcfUSyXafCLDd7hOeMQHEZxGw== +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.22.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579" + integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA== dependencies: browserslist "^4.20.3" semver "7.0.0" core-js@^3.16.2: - version "3.22.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.3.tgz#498c41d997654cb00e81c7a54b44f0ab21ab01d5" - integrity sha512-1t+2a/d2lppW1gkLXx3pKPVGbBdxXAkqztvWb1EJ8oF8O2gIGiytzflNiFEehYwVK/t2ryUsGBoOFFvNx95mbg== + version "3.22.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.4.tgz#f4b3f108d45736935aa028444a69397e40d8c531" + integrity sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w== core-util-is@~1.0.0: version "1.0.3" @@ -2753,7 +2753,7 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" -define-properties@^1.1.3: +define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== @@ -2919,9 +2919,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.118: - version "1.4.124" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.124.tgz#e9015e234d8632920dcdf5480351da9e845ed220" - integrity sha512-VhaE9VUYU6d2eIb+4xf83CATD+T+3bTzvxvlADkQE+c2hisiw3sZmvEDtsW704+Zky9WZGhBuQXijDVqSriQLA== + version "1.4.136" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.136.tgz#b6a3595a9c29d6d8f60e092d40ac24f997e4e7ef" + integrity sha512-GnITX8rHnUrIVnTxU9UlsTnSemHUA2iF+6QrRqxFbp/mf0vfuSc/goEyyQhUX3TUUCE3mv/4BNuXOtaJ4ur0eA== elliptic@^6.5.3: version "6.5.4" @@ -2991,17 +2991,19 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.1: - version "1.19.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5: + version "1.20.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.0.tgz#b2d526489cceca004588296334726329e0a6bfb6" + integrity sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + function.prototype.name "^1.1.5" get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" + has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" @@ -3013,9 +3015,10 @@ es-abstract@^1.17.2, es-abstract@^1.19.1: object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + regexp.prototype.flags "^1.4.1" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" es-to-primitive@^1.2.1: version "1.2.1" @@ -3140,9 +3143,9 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: homedir-polyfill "^1.0.1" express@^4.17.1: - version "4.18.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.0.tgz#7a426773325d0dd5406395220614c0db10b6e8e2" - integrity sha512-EJEXxiTQJS3lIPrU1AE2vRuT7X7E+0KBbpm5GSoK524yl0K8X+er8zS2P14E64eqsVNoWbMCT7MpmQ+ErAhgRg== + version "4.18.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" @@ -3332,9 +3335,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== + version "1.15.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" + integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== for-in@^1.0.2: version "1.0.2" @@ -3406,6 +3409,16 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -6137,7 +6150,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.1: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -6636,7 +6649,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== -source-map@^0.5.0, source-map@^0.5.6: +source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -6771,21 +6784,23 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.1.4" + es-abstract "^1.19.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -6939,9 +6954,9 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.13.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.0.tgz#d43fd71861df1b4df743980caa257c6fa03acc44" - integrity sha512-sgQ99P+fRBM1jAYzN9RTnD/xEWx/7LZgYTCRgmYriSq1wxxqiQPJgXkkLBBuwySDWJ2PP0PnVQyuf4xLUuH4Ng== + version "5.13.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799" + integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA== dependencies: acorn "^8.5.0" commander "^2.20.0" @@ -7055,7 +7070,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -unbox-primitive@^1.0.1: +unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== From 3819dc07a38f6e30792844fd5bfed8e85314c7b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 May 2022 03:09:19 +0000 Subject: [PATCH 160/329] Bump rubocop from 1.28.2 to 1.29.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.28.2 to 1.29.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.28.2...v1.29.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a1ec11ad..3dd612f6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -391,12 +391,12 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.28.2) + rubocop (1.29.0) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) - rexml + rexml (>= 3.2.5, < 4.0) rubocop-ast (>= 1.17.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) From caef0af7a170f58fd3ce3b188302df32c2aaf3a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 May 2022 03:09:41 +0000 Subject: [PATCH 161/329] Bump capybara from 3.36.0 to 3.37.0 Bumps [capybara](https://github.com/teamcapybara/capybara) from 3.36.0 to 3.37.0. - [Release notes](https://github.com/teamcapybara/capybara/releases) - [Changelog](https://github.com/teamcapybara/capybara/blob/master/History.md) - [Commits](https://github.com/teamcapybara/capybara/compare/3.36.0...3.37.0) --- updated-dependencies: - dependency-name: capybara 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 a1ec11ad..b138ff38 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -101,7 +101,7 @@ GEM amq-protocol (~> 2.3, >= 2.3.1) sorted_set (~> 1, >= 1.0.2) byebug (11.1.3) - capybara (3.36.0) + capybara (3.37.0) addressable matrix mini_mime (>= 0.1.3) From 7b25f6e4195298c23ed3cc3faa292ba4344da0ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 May 2022 03:10:08 +0000 Subject: [PATCH 162/329] Bump faraday from 2.2.0 to 2.3.0 Bumps [faraday](https://github.com/lostisland/faraday) from 2.2.0 to 2.3.0. - [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/v2.2.0...v2.3.0) --- updated-dependencies: - dependency-name: faraday 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 a1ec11ad..26f18aea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -151,7 +151,7 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (2.2.0) + faraday (2.3.0) faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) faraday-net_http (2.0.2) From 61878a68013a5c41c7e2090547f33a75cdbb114e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 May 2022 03:10:28 +0000 Subject: [PATCH 163/329] Bump nokogiri from 1.13.5 to 1.13.6 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.5 to 1.13.6. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.6/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.5...v1.13.6) --- updated-dependencies: - dependency-name: nokogiri 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 a1ec11ad..b249642a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -255,7 +255,7 @@ GEM connection_pool (~> 2.2) netrc (0.11.0) nio4r (2.5.8) - nokogiri (1.13.5) + nokogiri (1.13.6) mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) From 10b12079e3b3339b1753e5feead13cbc887f7097 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 03:01:09 +0000 Subject: [PATCH 164/329] Bump ransack from 3.1.0 to 3.2.0 Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/activerecord-hackery/ransack/releases) - [Changelog](https://github.com/activerecord-hackery/ransack/blob/main/CHANGELOG.md) - [Commits](https://github.com/activerecord-hackery/ransack/compare/v3.1.0...v3.2.0) --- updated-dependencies: - dependency-name: ransack dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 98c925dd..0207c475 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -350,9 +350,9 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - ransack (3.1.0) - activerecord (>= 6.0.4) - activesupport (>= 6.0.4) + ransack (3.2.0) + activerecord (>= 6.1.5) + activesupport (>= 6.1.5) i18n rb-fsevent (0.11.1) rb-inotify (0.10.1) From a620ca6232a5431fa7be305ee66c63d60829f316 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 03:01:24 +0000 Subject: [PATCH 165/329] Bump capybara from 3.37.0 to 3.37.1 Bumps [capybara](https://github.com/teamcapybara/capybara) from 3.37.0 to 3.37.1. - [Release notes](https://github.com/teamcapybara/capybara/releases) - [Changelog](https://github.com/teamcapybara/capybara/blob/master/History.md) - [Commits](https://github.com/teamcapybara/capybara/compare/3.37.0...3.37.1) --- updated-dependencies: - dependency-name: capybara dependency-type: direct:development 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 98c925dd..b2383037 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -101,7 +101,7 @@ GEM amq-protocol (~> 2.3, >= 2.3.1) sorted_set (~> 1, >= 1.0.2) byebug (11.1.3) - capybara (3.37.0) + capybara (3.37.1) addressable matrix mini_mime (>= 0.1.3) @@ -358,7 +358,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree (0.4.5) - regexp_parser (2.3.1) + regexp_parser (2.4.0) remotipart (1.4.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) From 3916bbd74391c475acd7135fb48c784ff4af44f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 03:02:05 +0000 Subject: [PATCH 166/329] Bump rails from 6.1.5.1 to 6.1.6 Bumps [rails](https://github.com/rails/rails) from 6.1.5.1 to 6.1.6. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.5.1...v6.1.6) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 2 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Gemfile b/Gemfile index a3ea8b16..8f88211b 100644 --- a/Gemfile +++ b/Gemfile @@ -30,7 +30,7 @@ gem 'prometheus_exporter' gem 'pry-byebug' gem 'puma' gem 'pundit' -gem 'rails', '~> 6.1.5' +gem 'rails', '~> 6.1.6' gem 'rails_admin', '< 3.0.0' # Blocked by https://github.com/railsadminteam/rails_admin/issues/3490 gem 'rails-i18n' gem 'rails-timeago' diff --git a/Gemfile.lock b/Gemfile.lock index 98c925dd..f23c43fc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,64 +13,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.1) - actioncable (6.1.5.1) - actionpack (= 6.1.5.1) - activesupport (= 6.1.5.1) + actioncable (6.1.6) + actionpack (= 6.1.6) + activesupport (= 6.1.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.5.1) - actionpack (= 6.1.5.1) - activejob (= 6.1.5.1) - activerecord (= 6.1.5.1) - activestorage (= 6.1.5.1) - activesupport (= 6.1.5.1) + actionmailbox (6.1.6) + actionpack (= 6.1.6) + activejob (= 6.1.6) + activerecord (= 6.1.6) + activestorage (= 6.1.6) + activesupport (= 6.1.6) mail (>= 2.7.1) - actionmailer (6.1.5.1) - actionpack (= 6.1.5.1) - actionview (= 6.1.5.1) - activejob (= 6.1.5.1) - activesupport (= 6.1.5.1) + actionmailer (6.1.6) + actionpack (= 6.1.6) + actionview (= 6.1.6) + activejob (= 6.1.6) + activesupport (= 6.1.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.5.1) - actionview (= 6.1.5.1) - activesupport (= 6.1.5.1) + actionpack (6.1.6) + actionview (= 6.1.6) + activesupport (= 6.1.6) 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.5.1) - actionpack (= 6.1.5.1) - activerecord (= 6.1.5.1) - activestorage (= 6.1.5.1) - activesupport (= 6.1.5.1) + actiontext (6.1.6) + actionpack (= 6.1.6) + activerecord (= 6.1.6) + activestorage (= 6.1.6) + activesupport (= 6.1.6) nokogiri (>= 1.8.5) - actionview (6.1.5.1) - activesupport (= 6.1.5.1) + actionview (6.1.6) + activesupport (= 6.1.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.5.1) - activesupport (= 6.1.5.1) + activejob (6.1.6) + activesupport (= 6.1.6) globalid (>= 0.3.6) - activemodel (6.1.5.1) - activesupport (= 6.1.5.1) + activemodel (6.1.6) + activesupport (= 6.1.6) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.5.1) - activemodel (= 6.1.5.1) - activesupport (= 6.1.5.1) - activestorage (6.1.5.1) - actionpack (= 6.1.5.1) - activejob (= 6.1.5.1) - activerecord (= 6.1.5.1) - activesupport (= 6.1.5.1) + activerecord (6.1.6) + activemodel (= 6.1.6) + activesupport (= 6.1.6) + activestorage (6.1.6) + actionpack (= 6.1.6) + activejob (= 6.1.6) + activerecord (= 6.1.6) + activesupport (= 6.1.6) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.5.1) + activesupport (6.1.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -300,20 +300,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.5.1) - actioncable (= 6.1.5.1) - actionmailbox (= 6.1.5.1) - actionmailer (= 6.1.5.1) - actionpack (= 6.1.5.1) - actiontext (= 6.1.5.1) - actionview (= 6.1.5.1) - activejob (= 6.1.5.1) - activemodel (= 6.1.5.1) - activerecord (= 6.1.5.1) - activestorage (= 6.1.5.1) - activesupport (= 6.1.5.1) + rails (6.1.6) + actioncable (= 6.1.6) + actionmailbox (= 6.1.6) + actionmailer (= 6.1.6) + actionpack (= 6.1.6) + actiontext (= 6.1.6) + actionview (= 6.1.6) + activejob (= 6.1.6) + activemodel (= 6.1.6) + activerecord (= 6.1.6) + activestorage (= 6.1.6) + activesupport (= 6.1.6) bundler (>= 1.15.0) - railties (= 6.1.5.1) + railties (= 6.1.6) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -342,9 +342,9 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.5.1) - actionpack (= 6.1.5.1) - activesupport (= 6.1.5.1) + railties (6.1.6) + actionpack (= 6.1.6) + activesupport (= 6.1.6) method_source rake (>= 12.2) thor (~> 1.0) @@ -564,7 +564,7 @@ DEPENDENCIES puma pundit rack-mini-profiler - rails (~> 6.1.5) + rails (~> 6.1.6) rails-controller-testing rails-i18n rails-timeago From 59af0a9242aa69b42f1acc2c47c90de3980e9b0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 03:01:09 +0000 Subject: [PATCH 167/329] Bump slim-rails from 3.4.0 to 3.5.1 Bumps [slim-rails](https://github.com/slim-template/slim-rails) from 3.4.0 to 3.5.1. - [Release notes](https://github.com/slim-template/slim-rails/releases) - [Changelog](https://github.com/slim-template/slim-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/slim-template/slim-rails/compare/v3.4.0...v3.5.1) --- updated-dependencies: - dependency-name: slim-rails 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 666a93d4..0650bdc8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -454,7 +454,7 @@ GEM slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) - slim-rails (3.4.0) + slim-rails (3.5.1) actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 5.0) From 38ae3a38af8ca495721749d9c6931e1a58daad05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 May 2022 03:00:43 +0000 Subject: [PATCH 168/329] Bump rubocop from 1.29.0 to 1.29.1 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.29.0 to 1.29.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.29.0...v1.29.1) --- updated-dependencies: - dependency-name: rubocop 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 666a93d4..7ee83264 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -391,7 +391,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.29.0) + rubocop (1.29.1) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) From ea728f54ecedcf57298d7ad5fc14ae4e1bddafca Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sat, 14 May 2022 19:01:54 -0400 Subject: [PATCH 169/329] Fix remote evaluations URL when using subdirectory for CO --- app/controllers/submissions_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 0ef7fa11..c9899149 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -280,7 +280,7 @@ class SubmissionsController < ApplicationController # parse validation token content = "#{remote_evaluation_mapping.validation_token}\n" # parse remote request url - content += "#{request.base_url}/evaluate\n" + content += "#{evaluate_url}\n" @submission.files.each do |file| content += "#{file.filepath}=#{file.file_id}\n" end From 7e5e4110c4291c32652a558bb86c7c63980ef10c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Sat, 14 May 2022 19:02:12 -0400 Subject: [PATCH 170/329] Fix JUnit 5 for ArrayComparisonFailure --- lib/junit5_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/junit5_adapter.rb b/lib/junit5_adapter.rb index 0d615ae6..f5f637e3 100644 --- a/lib/junit5_adapter.rb +++ b/lib/junit5_adapter.rb @@ -3,7 +3,7 @@ class Junit5Adapter < TestingFrameworkAdapter COUNT_REGEXP = /(\d+) tests found/.freeze FAILURES_REGEXP = /(\d+) tests failed/.freeze - ASSERTION_ERROR_REGEXP = /=> java\.lang\.AssertionError:?\s(.*?)\s*org.junit|=> org\.junit\.ComparisonFailure:\s(.*?)\s*org.junit/m.freeze + ASSERTION_ERROR_REGEXP = /=> java\.lang\.AssertionError:?\s(.*?)\s*org\.junit|=> org\.junit\.ComparisonFailure:\s(.*?)\s*org\.junit|=>\s(.*?)\s*org\.junit\.internal\.ComparisonCriteria\.arrayEquals/m.freeze def self.framework_name 'JUnit 5' From 73d3394e9b03c9656ece6b7971b21a768bf55f57 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 May 2022 03:01:11 +0000 Subject: [PATCH 171/329] Bump sentry-ruby from 5.3.0 to 5.3.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.3.0 to 5.3.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/5.3.0...5.3.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 7ee83264..df08639b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -437,10 +437,10 @@ GEM sentry-rails (5.3.0) railties (>= 5.0) sentry-ruby-core (~> 5.3.0) - sentry-ruby (5.3.0) + sentry-ruby (5.3.1) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.3.0) - sentry-ruby-core (5.3.0) + sentry-ruby-core (= 5.3.1) + sentry-ruby-core (5.3.1) concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) From 1f8c3c1fbb59d40aadd397e95366461eec9edfc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 May 2022 03:01:56 +0000 Subject: [PATCH 172/329] Bump bcrypt from 3.1.17 to 3.1.18 Bumps [bcrypt](https://github.com/codahale/bcrypt-ruby) from 3.1.17 to 3.1.18. - [Release notes](https://github.com/codahale/bcrypt-ruby/releases) - [Changelog](https://github.com/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG) - [Commits](https://github.com/codahale/bcrypt-ruby/commits) --- updated-dependencies: - dependency-name: bcrypt 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 7ee83264..96d55817 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,7 +84,7 @@ GEM minitest-autotest (~> 1.0) autotest-rails (4.2.1) ZenTest (~> 4.5) - bcrypt (3.1.17) + bcrypt (3.1.18) better_errors (2.9.1) coderay (>= 1.0.0) erubi (>= 1.0.0) From 57795b1cfcc0bce9afed14c12b1c9f2389695af1 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 17 May 2022 09:56:27 -0400 Subject: [PATCH 173/329] Fix JUnit 4 for ArrayComparisonFailure --- lib/junit_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/junit_adapter.rb b/lib/junit_adapter.rb index 0ca905ae..31d98085 100644 --- a/lib/junit_adapter.rb +++ b/lib/junit_adapter.rb @@ -4,7 +4,7 @@ class JunitAdapter < TestingFrameworkAdapter COUNT_REGEXP = /Tests run: (\d+)/.freeze FAILURES_REGEXP = /Failures: (\d+)/.freeze SUCCESS_REGEXP = /OK \((\d+) tests?\)\s*(?:\x1B\]0;|exit)?\s*\z/.freeze - ASSERTION_ERROR_REGEXP = /java\.lang\.AssertionError:?\s(.*?)\tat org.junit|org\.junit\.ComparisonFailure:\s(.*?)\tat org.junit/m.freeze + ASSERTION_ERROR_REGEXP = /java\.lang\.AssertionError:?\s(.*?)\tat org\.junit|org\.junit\.ComparisonFailure:\s(.*?)\tat org\.junit|\)\r\n(.*?)\tat org\.junit\.internal\.ComparisonCriteria\.arrayEquals\(ComparisonCriteria\.java:50\)/m.freeze def self.framework_name 'JUnit 4' From a134ba902de78e8f3c7279e5d3690e10cccb8eb0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 03:01:21 +0000 Subject: [PATCH 174/329] Bump sentry-rails from 5.3.0 to 5.3.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.3.0 to 5.3.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/5.3.0...5.3.1) --- updated-dependencies: - dependency-name: sentry-rails 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 09d0d398..1fef70eb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -221,7 +221,7 @@ GEM listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.17.0) + loofah (2.18.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) @@ -434,9 +434,9 @@ GEM rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2) semantic_range (3.0.0) - sentry-rails (5.3.0) + sentry-rails (5.3.1) railties (>= 5.0) - sentry-ruby-core (~> 5.3.0) + sentry-ruby-core (~> 5.3.1) sentry-ruby (5.3.1) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-ruby-core (= 5.3.1) From aa647bef6a293e038da757459fb716e2bfa46cbe Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 18 May 2022 00:56:17 -0400 Subject: [PATCH 175/329] Fix wrong key for English intervention explanation --- config/locales/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 2cf770cb..43682596 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -453,7 +453,7 @@ en: request: "Request Comments" question: 'Please shortly describe your problem or the program part you would like to get feedback for. Your program code and potential error messages are automatically appended to your request.' intervention: - text: "This message appears because you have been working on this exercise for %{duration} minutes. 25% of your fellow learners took more time to solve the exercise, so in that sense it's not a problem, but this has proven to be an effective time for this message." + explanation: "This message appears because you have been working on this exercise for %{duration} minutes. 25% of your fellow learners took more time to solve the exercise, so in that sense it's not a problem, but this has proven to be an effective time for this message." rfc_intervention: text: "If you are struggling with this exercise and don't want to continue on your own, your fellow learners can help out!

" break_intervention: From b7cae121122159e8821d32a42083feace3af46b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 03:52:57 +0000 Subject: [PATCH 176/329] Bump js-routes from 2.2.3 to 2.2.4 Bumps [js-routes](https://github.com/railsware/js-routes) from 2.2.3 to 2.2.4. - [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.2.3...v2.2.4) --- updated-dependencies: - dependency-name: js-routes 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 8119c472..a024350b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -195,7 +195,7 @@ GEM thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - js-routes (2.2.3) + js-routes (2.2.4) railties (>= 4) json (2.6.1) json_schemer (0.2.21) From f7d3ba11973b9079bf5677c5a34718ed12d8c5b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 03:53:30 +0000 Subject: [PATCH 177/329] Bump rubocop-rspec from 2.10.0 to 2.11.1 Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 2.10.0 to 2.11.1. - [Release notes](https://github.com/rubocop/rubocop-rspec/releases) - [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rspec/compare/v2.10.0...v2.11.1) --- updated-dependencies: - dependency-name: rubocop-rspec dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8119c472..6b19cef3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -400,7 +400,7 @@ GEM rubocop-ast (>= 1.17.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.17.0) + rubocop-ast (1.18.0) parser (>= 3.1.1.0) rubocop-performance (1.13.3) rubocop (>= 1.7.0, < 2.0) @@ -409,7 +409,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.10.0) + rubocop-rspec (2.11.1) rubocop (~> 1.19) ruby-progressbar (1.11.0) ruby-vips (2.1.4) From 5f846946df3420036f30fe85be177eaaad03301b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 20 May 2022 15:08:43 +0200 Subject: [PATCH 178/329] Fix detection of incomplete Unicode characters for Testrun migration --- db/migrate/20220415215112_migrate_testruns.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/db/migrate/20220415215112_migrate_testruns.rb b/db/migrate/20220415215112_migrate_testruns.rb index 52622e4d..4c29b368 100644 --- a/db/migrate/20220415215112_migrate_testruns.rb +++ b/db/migrate/20220415215112_migrate_testruns.rb @@ -11,7 +11,10 @@ class MigrateTestruns < ActiveRecord::Migration[6.1] REAL_EXIT = Regexp.compile(/\A(?>(?(?{".*?)?(?>{"cmd":(?> |"write","stream":"stdout","data":)?"#?exit(?>\\[nr])?"})+(?.*))|(?.*?)(?>#?exit\s*)+(?.*))\z/m) STDERR_WRITTEN = Regexp.compile(/^(?:(?\r*[^\n\r]*\.rb:\d+:.*)|(?\r*[^\n\r]*\.java:\d+: error.*|\r*Exception in thread.*|\r*There was .*|\r*[^\n\r]*java\.lang\..*|\r*make: \*\*\* \[.*))\z/m) FIND_JSON = Regexp.compile(/{(?:(?:"(?:\\.|[^\\"])+?"\s*:\s*(?:"(?:\\.|[^\\"])*?"|-?\d++(?:\.\d++)?|\[.*?\]|{.*?}|null))+?\s*,?\s*)+}/) - REPLACE_INCOMPLETE_UNICODE = Regexp.compile(/(?:\\?\\u[\da-f]{0,3}|\\?\\u\{[\da-f]{0,4})"}\z/) + # We identify incomplete Unicode characters. Valid unicode characters are: + # \uXXXX, \u{XXXXX}, \udYXX\udZXX with X = 0-9a-f, Y = 89ab, Z = cdef + # Every incomplete prefix of a valid unicode character is identified + REPLACE_INCOMPLETE_UNICODE = Regexp.compile(/(?:\\?\\u[\da-f]{0,3}|\\?\\ud[89ab][\da-f]{2}\\?(?:\\(?:u(?:d(?:[cdef][\da-f]?)?)?)?)?|\\?\\u\{[\da-f]{0,4})"}\z/) # NOTE: `update_columns` won't run validations nor update the `updated_at` timestamp. # This is what we want here, thus we disable Rubocop for this migration. From 7811b72b568dccda1c440156f9c9c440b3dc3e5b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 20 May 2022 15:10:25 +0200 Subject: [PATCH 179/329] Bundle update --- Gemfile.lock | 4 +- yarn.lock | 746 +++++++++++++++++++++++++++------------------------ 2 files changed, 393 insertions(+), 357 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f1fc0784..d324ca4a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -154,7 +154,7 @@ GEM faraday (2.3.0) faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) - faraday-net_http (2.0.2) + faraday-net_http (2.0.3) faraday-net_http_persistent (2.0.1) faraday-net_http net-http-persistent (~> 4.0) @@ -197,7 +197,7 @@ GEM railties (>= 3.2.16) js-routes (2.2.4) railties (>= 4) - json (2.6.1) + json (2.6.2) json_schemer (0.2.21) ecma-re-validator (~> 0.3) hana (~> 1.3) diff --git a/yarn.lock b/yarn.lock index 1a03c9d7..6a1deb3a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,39 +17,39 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.0", "@babel/compat-data@^7.17.10": +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": version "7.17.10" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== "@babel/core@^7.15.0": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" - integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.0.tgz#c58d04d7c6fbfb58ea7681e2b9145cfb62726756" + integrity sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" + "@babel/generator" "^7.18.0" "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.10" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helpers" "^7.18.0" + "@babel/parser" "^7.18.0" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.10" - "@babel/types" "^7.17.10" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" - integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== +"@babel/generator@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.0.tgz#46d28e8a18fc737b028efb25ab105d74473af43f" + integrity sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg== dependencies: - "@babel/types" "^7.17.10" - "@jridgewell/gen-mapping" "^0.1.0" + "@babel/types" "^7.18.0" + "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" "@babel/helper-annotate-as-pure@^7.16.7": @@ -77,10 +77,10 @@ browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.6": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz#71835d7fb9f38bd9f1378e40a4c0902fdc2ea49d" - integrity sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ== +"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" + integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" @@ -90,10 +90,10 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" -"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.0": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== +"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" + integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" regexpu-core "^5.0.1" @@ -155,10 +155,10 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== +"@babel/helper-module-transforms@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" + integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" @@ -166,8 +166,8 @@ "@babel/helper-split-export-declaration" "^7.16.7" "@babel/helper-validator-identifier" "^7.16.7" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" "@babel/helper-optimise-call-expression@^7.16.7": version "7.16.7" @@ -176,10 +176,10 @@ dependencies: "@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.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-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.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" + integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== "@babel/helper-remap-async-to-generator@^7.16.8": version "7.16.8" @@ -242,69 +242,69 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== +"@babel/helpers@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.0.tgz#aff37c3590de42102b54842446146d0205946370" + integrity sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.18.0" + "@babel/types" "^7.18.0" "@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" - integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== +"@babel/parser@^7.16.7", "@babel/parser@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.0.tgz#10a8d4e656bc01128d299a787aa006ce1a91e112" + integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg== -"@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== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": + version "7.17.12" + 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.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e" + integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@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== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753" + integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.17.12" -"@babel/plugin-proposal-async-generator-functions@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" - integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== +"@babel/plugin-proposal-async-generator-functions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03" + integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@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== +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4" + integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-proposal-class-static-block@^7.17.6": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz#164e8fd25f0d80fa48c5a4d1438a6629325ad83c" - integrity sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA== +"@babel/plugin-proposal-class-static-block@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" + integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.6" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.16.7": @@ -315,36 +315,36 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@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== +"@babel/plugin-proposal-export-namespace-from@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378" + integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@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== +"@babel/plugin-proposal-json-strings@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664" + integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@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== +"@babel/plugin-proposal-logical-assignment-operators@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23" + integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@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== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be" + integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator@^7.16.7": @@ -355,16 +355,16 @@ "@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.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz#d9eb649a54628a51701aef7e0ea3d17e2b9dd390" - integrity sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw== +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" + integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== dependencies: - "@babel/compat-data" "^7.17.0" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.17.12" "@babel/plugin-proposal-optional-catch-binding@^7.16.7": version "7.16.7" @@ -374,40 +374,40 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@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== +"@babel/plugin-proposal-optional-chaining@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174" + integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.11": - version "7.16.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" - integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== +"@babel/plugin-proposal-private-methods@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c" + integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A== dependencies: - "@babel/helper-create-class-features-plugin" "^7.16.10" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" -"@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== +"@babel/plugin-proposal-private-property-in-object@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" + integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== dependencies: "@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/helper-create-class-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@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== +"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" + integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -444,6 +444,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-assertions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" + integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== + dependencies: + "@babel/helper-plugin-utils" "^7.17.12" + "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -507,20 +514,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@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== +"@babel/plugin-transform-arrow-functions@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45" + integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" - integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== +"@babel/plugin-transform-async-to-generator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832" + integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ== dependencies: "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-transform-block-scoped-functions@^7.16.7": @@ -530,40 +537,40 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-block-scoping@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz#68fc3c4b3bb7dfd809d97b7ed19a584052a2725c" + integrity sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@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== +"@babel/plugin-transform-classes@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz#da889e89a4d38375eeb24985218edeab93af4f29" + integrity sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" + "@babel/helper-function-name" "^7.17.9" "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@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.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== +"@babel/plugin-transform-computed-properties@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f" + integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz#49dc2675a7afa9a5e4c6bdee636061136c3408d1" - integrity sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ== +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" + integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.16.7" @@ -573,12 +580,12 @@ "@babel/helper-create-regexp-features-plugin" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-duplicate-keys@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c" + integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-exponentiation-operator@^7.16.7": version "7.16.7" @@ -588,12 +595,12 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-for-of@^7.17.12": + version "7.18.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" + integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-function-name@^7.16.7": version "7.16.7" @@ -604,12 +611,12 @@ "@babel/helper-function-name" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-literals@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae" + integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-member-expression-literals@^7.16.7": version "7.16.7" @@ -618,57 +625,58 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-modules-amd@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" + integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz#274be1a2087beec0254d4abd4d86e52442e1e5b6" - integrity sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw== +"@babel/plugin-transform-modules-commonjs@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz#3be575e19fbd273d42adbc84566b1fad3582b3db" + integrity sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw== dependencies: - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-simple-access" "^7.17.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz#81fd834024fae14ea78fbe34168b042f38703859" - integrity sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw== +"@babel/plugin-transform-modules-systemjs@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz#50ecdb43de97c8483824402f7125edb94cddb09a" + integrity sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ== dependencies: "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-validator-identifier" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@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== +"@babel/plugin-transform-modules-umd@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" + integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-module-transforms" "^7.18.0" + "@babel/helper-plugin-utils" "^7.17.12" -"@babel/plugin-transform-named-capturing-groups-regex@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz#715dbcfafdb54ce8bccd3d12e8917296a4ba66a4" - integrity sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931" + integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.0" + "@babel/helper-create-regexp-features-plugin" "^7.17.12" + "@babel/helper-plugin-utils" "^7.17.12" -"@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== +"@babel/plugin-transform-new-target@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz#10842cd605a620944e81ea6060e9e65c265742e3" + integrity sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-object-super@^7.16.7": version "7.16.7" @@ -678,12 +686,12 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-replace-supers" "^7.16.7" -"@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== +"@babel/plugin-transform-parameters@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766" + integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-property-literals@^7.16.7": version "7.16.7" @@ -692,27 +700,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz#0a33c3a61cf47f45ed3232903683a0afd2d3460c" - integrity sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ== +"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" + integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== dependencies: + "@babel/helper-plugin-utils" "^7.17.12" regenerator-transform "^0.15.0" -"@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== +"@babel/plugin-transform-reserved-words@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f" + integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-runtime@^7.15.0": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz#b89d821c55d61b5e3d3c3d1d636d8d5a81040ae1" - integrity sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.0.tgz#894cdab4b353dcb7639f03fb74c59db1d344f71c" + integrity sha512-7kM/jJ3DD/y1hDPn0jov12DoUIFsxLiItprhNydUSibxaywaxNqKwq+ODk72J9ePn4LWobIc5ik6TAJhVl8IkQ== dependencies: "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" @@ -725,12 +734,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-spread@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5" + integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" "@babel/plugin-transform-sticky-regex@^7.16.7": @@ -740,19 +749,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@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== +"@babel/plugin-transform-template-literals@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz#4aec0a18f39dd86c442e1d077746df003e362c6e" + integrity sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" -"@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== +"@babel/plugin-transform-typeof-symbol@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889" + integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-unicode-escapes@^7.16.7": version "7.16.7" @@ -770,36 +779,37 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.15.0": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.17.10.tgz#a81b093669e3eb6541bb81a23173c5963c5de69c" - integrity sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.0.tgz#ec7e51f4c6e026816000b230ed7cf74a1530d91d" + integrity sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA== dependencies: "@babel/compat-data" "^7.17.10" "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.17.12" "@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.8" - "@babel/plugin-proposal-class-properties" "^7.16.7" - "@babel/plugin-proposal-class-static-block" "^7.17.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" + "@babel/plugin-proposal-async-generator-functions" "^7.17.12" + "@babel/plugin-proposal-class-properties" "^7.17.12" + "@babel/plugin-proposal-class-static-block" "^7.18.0" "@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-export-namespace-from" "^7.17.12" + "@babel/plugin-proposal-json-strings" "^7.17.12" + "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.17.3" + "@babel/plugin-proposal-object-rest-spread" "^7.18.0" "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.16.7" - "@babel/plugin-proposal-private-methods" "^7.16.11" - "@babel/plugin-proposal-private-property-in-object" "^7.16.7" - "@babel/plugin-proposal-unicode-property-regex" "^7.16.7" + "@babel/plugin-proposal-optional-chaining" "^7.17.12" + "@babel/plugin-proposal-private-methods" "^7.17.12" + "@babel/plugin-proposal-private-property-in-object" "^7.17.12" + "@babel/plugin-proposal-unicode-property-regex" "^7.17.12" "@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" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.17.12" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -809,40 +819,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.7" - "@babel/plugin-transform-async-to-generator" "^7.16.8" + "@babel/plugin-transform-arrow-functions" "^7.17.12" + "@babel/plugin-transform-async-to-generator" "^7.17.12" "@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.17.7" + "@babel/plugin-transform-block-scoping" "^7.17.12" + "@babel/plugin-transform-classes" "^7.17.12" + "@babel/plugin-transform-computed-properties" "^7.17.12" + "@babel/plugin-transform-destructuring" "^7.18.0" "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.16.7" + "@babel/plugin-transform-duplicate-keys" "^7.17.12" "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.16.7" + "@babel/plugin-transform-for-of" "^7.17.12" "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.16.7" + "@babel/plugin-transform-literals" "^7.17.12" "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.16.7" - "@babel/plugin-transform-modules-commonjs" "^7.17.9" - "@babel/plugin-transform-modules-systemjs" "^7.17.8" - "@babel/plugin-transform-modules-umd" "^7.16.7" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.10" - "@babel/plugin-transform-new-target" "^7.16.7" + "@babel/plugin-transform-modules-amd" "^7.18.0" + "@babel/plugin-transform-modules-commonjs" "^7.18.0" + "@babel/plugin-transform-modules-systemjs" "^7.18.0" + "@babel/plugin-transform-modules-umd" "^7.18.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" + "@babel/plugin-transform-new-target" "^7.17.12" "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.17.12" "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.17.9" - "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-regenerator" "^7.18.0" + "@babel/plugin-transform-reserved-words" "^7.17.12" "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-spread" "^7.17.12" "@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-template-literals" "^7.17.12" + "@babel/plugin-transform-typeof-symbol" "^7.17.12" "@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.17.10" + "@babel/types" "^7.18.0" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" @@ -861,9 +871,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72" - integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.0.tgz#6d77142a19cb6088f0af662af1ada37a604d34ae" + integrity sha512-YMQvx/6nKEaucl0MY56mwIG483xk8SDNdlUwb2Ts6FUpr7fm85DxEmsY18LXBNhcTz6tO6JwZV8w1W06v8UKeg== dependencies: regenerator-runtime "^0.13.4" @@ -876,26 +886,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.0.tgz#0e5ec6db098660b2372dd63d096bf484e32d27ba" + integrity sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" + "@babel/generator" "^7.18.0" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.10" - "@babel/types" "^7.17.10" + "@babel/parser" "^7.18.0" + "@babel/types" "^7.18.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.4.4": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" - integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.4.4": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.0.tgz#ef523ea349722849cb4bf806e9342ede4d071553" + integrity sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -923,6 +933,15 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/resolve-uri@^3.0.3": version "3.0.7" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" @@ -939,9 +958,9 @@ integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.10" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.10.tgz#db436f0917d655393851bc258918c00226c9b183" - integrity sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q== + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1077,9 +1096,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d" - integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q== + version "17.0.35" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" + integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1295,7 +1314,7 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== ansi-colors@^3.0.0: version "3.2.4" @@ -1310,7 +1329,7 @@ ansi-html-community@0.0.8: ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^4.1.0: version "4.1.1" @@ -1355,7 +1374,7 @@ argparse@^1.0.7: arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== arr-flatten@^1.1.0: version "1.1.0" @@ -1365,12 +1384,12 @@ arr-flatten@^1.1.0: arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-flatten@^2.1.0: version "2.1.2" @@ -1380,19 +1399,30 @@ array-flatten@^2.1.0: array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + +array.prototype.reduce@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" + integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.2" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" asn1.js@^5.2.0: version "5.4.1" @@ -1415,7 +1445,7 @@ assert@^1.1.1: assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== async-each@^1.0.1: version "1.0.3" @@ -1528,7 +1558,7 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== big.js@^5.2.2: version "5.2.2" @@ -1588,7 +1618,7 @@ body-parser@1.20.0: bonjour@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== dependencies: array-flatten "^2.1.0" deep-equal "^1.0.1" @@ -1600,7 +1630,7 @@ bonjour@^3.5.0: boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== bootstrap@^4.6.1: version "4.6.1" @@ -1646,7 +1676,7 @@ braces@~3.0.2: brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" @@ -1733,7 +1763,7 @@ buffer-indexof@^1.0.0: buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer@^4.3.0: version "4.9.2" @@ -1747,12 +1777,12 @@ buffer@^4.3.0: builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== bytes@3.1.2: version "3.1.2" @@ -1830,21 +1860,21 @@ call-bind@^1.0.0, call-bind@^1.0.2: caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== callsites@^3.0.0: version "3.1.0" @@ -1867,9 +1897,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.30001332: - version "1.0.30001338" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001338.tgz#b5dd7a7941a51a16480bdf6ff82bded1628eec0d" - integrity sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ== + version "1.0.30001341" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz#59590c8ffa8b5939cf4161f00827b8873ad72498" + integrity sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2158,17 +2188,17 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.22.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579" - integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA== + version "3.22.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.5.tgz#7fffa1d20cb18405bd22756ca1353c6f1a0e8614" + integrity sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg== dependencies: browserslist "^4.20.3" semver "7.0.0" core-js@^3.16.2: - version "3.22.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.4.tgz#f4b3f108d45736935aa028444a69397e40d8c531" - integrity sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w== + version "3.22.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.5.tgz#a5f5a58e663d5c0ebb4e680cd7be37536fb2a9cf" + integrity sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA== core-util-is@~1.0.0: version "1.0.3" @@ -2919,9 +2949,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.4.118: - version "1.4.136" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.136.tgz#b6a3595a9c29d6d8f60e092d40ac24f997e4e7ef" - integrity sha512-GnITX8rHnUrIVnTxU9UlsTnSemHUA2iF+6QrRqxFbp/mf0vfuSc/goEyyQhUX3TUUCE3mv/4BNuXOtaJ4ur0eA== + version "1.4.137" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" + integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== elliptic@^6.5.3: version "6.5.4" @@ -2991,10 +3021,10 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5: - version "1.20.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.0.tgz#b2d526489cceca004588296334726329e0a6bfb6" - integrity sha512-URbD8tgRthKD3YcC39vbvSDrX23upXnPcnGAjQfgxXF5ID75YcENawc9ZX/9iTP9ptUyfCLIxTTuMYoRfiOVKA== +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -3015,11 +3045,16 @@ es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19 object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - regexp.prototype.flags "^1.4.1" + regexp.prototype.flags "^1.4.3" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" unbox-primitive "^1.0.2" +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -3095,9 +3130,9 @@ events@^3.0.0: integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== eventsource@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" - integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.1.tgz#4544a35a57d7120fba4fa4c86cb4023b2c09df2f" + integrity sha512-qV5ZC0h7jYIAOhArFJgSfdyz6rALJyb270714o7ZtNnw2WSJ+eexhKtE0O8LYPRsHZHf2osHKZBxGPvm3kPkCA== dependencies: original "^1.0.0" @@ -3479,14 +3514,14 @@ glob-parent@~5.1.2: is-glob "^4.0.1" glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -3907,9 +3942,9 @@ ip-regex@^2.1.0: integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" @@ -4617,7 +4652,7 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4: +minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -4923,13 +4958,14 @@ object.assign@^4.1.0, object.assign@^4.1.2: object-keys "^1.1.1" object.getownpropertydescriptors@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" - integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + version "2.1.4" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" + integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== dependencies: + array.prototype.reduce "^1.0.4" call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.1" object.pick@^1.3.0: version "1.3.0" @@ -6150,7 +6186,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.1: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -6345,9 +6381,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.51.0.tgz#25ea36cf819581fe1fe8329e8c3a4eaaf70d2845" - integrity sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA== + version "1.52.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.0.tgz#3dc755ff459858ce7062887181648701f028c4f5" + integrity sha512-6EnTglag2oVD8sNJCxUi2Jd3ICH9tJ5Mqudt/gIZNBR2uKJUBZuTpW9O1t04SkDLP7VFa76FCWTV2rwchqM8Kw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From a38aa55dbd01e22332127a3dd25d13ad0f8419c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 03:01:27 +0000 Subject: [PATCH 180/329] Bump prometheus_exporter from 2.0.2 to 2.0.3 Bumps [prometheus_exporter](https://github.com/discourse/prometheus_exporter) from 2.0.2 to 2.0.3. - [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/v2.0.2...v2.0.3) --- 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 d324ca4a..d78adf8e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -274,7 +274,7 @@ GEM ast (~> 2.4.1) path_expander (1.1.0) pg (1.3.5) - prometheus_exporter (2.0.2) + prometheus_exporter (2.0.3) webrick pry (0.13.1) coderay (~> 1.1) From 528638c4a52bb4f25bbe7e7253c624cd89d94fe6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 May 2022 03:35:24 +0000 Subject: [PATCH 181/329] Bump ransack from 3.2.0 to 3.2.1 Bumps [ransack](https://github.com/activerecord-hackery/ransack) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/activerecord-hackery/ransack/releases) - [Changelog](https://github.com/activerecord-hackery/ransack/blob/main/CHANGELOG.md) - [Commits](https://github.com/activerecord-hackery/ransack/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: ransack 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 d78adf8e..51192574 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -350,7 +350,7 @@ GEM thor (~> 1.0) rainbow (3.1.1) rake (13.0.6) - ransack (3.2.0) + ransack (3.2.1) activerecord (>= 6.1.5) activesupport (>= 6.1.5) i18n From fd705314e297b1d20211defb37e334578e96b49e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 Jun 2022 06:28:56 +0000 Subject: [PATCH 182/329] Bump underscore from 1.13.3 to 1.13.4 Bumps [underscore](https://github.com/jashkenas/underscore) from 1.13.3 to 1.13.4. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](https://github.com/jashkenas/underscore/compare/1.13.3...1.13.4) --- 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 6faf6477..1c9c8da5 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "popper.js": "^1.16.1", "rails-erb-loader": "^5.5.2", "sortablejs": "^1.15.0", - "underscore": "^1.13.3", + "underscore": "^1.13.4", "vis": "^4.21.0", "webpack-merge": "^5.8.0" }, diff --git a/yarn.lock b/yarn.lock index 6a1deb3a..4cb85f3b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7116,10 +7116,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -underscore@^1.13.3: - version "1.13.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.3.tgz#54bc95f7648c5557897e5e968d0f76bc062c34ee" - integrity sha512-QvjkYpiD+dJJraRA8+dGAU4i7aBbb2s0S3jA45TFOvg2VgqvdCDd/3N6CqA8gluk1W91GLoXg5enMUx560QzuA== +underscore@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee" + integrity sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" From 7496e45e106a533ee848192ead69a18d9e062c41 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 7 Jun 2022 14:28:54 +0200 Subject: [PATCH 183/329] Bundle update --- Gemfile.lock | 29 +-- yarn.lock | 646 ++++++++++++++++++++++++--------------------------- 2 files changed, 320 insertions(+), 355 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 51192574..9380c63a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,7 +92,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.11.1) + bootsnap (1.12.0) msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate @@ -173,7 +173,7 @@ GEM headless (2.3.1) highline (2.0.3) http-accept (1.7.0) - http-cookie (1.0.4) + http-cookie (1.0.5) domain_name (~> 0.5) i18n (1.10.0) concurrent-ruby (~> 1.0) @@ -189,7 +189,7 @@ GEM jbuilder (2.11.5) actionview (>= 5.0.0) activesupport (>= 5.0.0) - jquery-rails (4.4.0) + jquery-rails (4.5.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) @@ -203,7 +203,7 @@ GEM hana (~> 1.3) regexp_parser (~> 2.0) uri_template (~> 0.7) - jwt (2.3.0) + jwt (2.4.0) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -247,7 +247,7 @@ GEM mnemosyne-ruby (1.13.0) activesupport (>= 4) bunny - msgpack (1.5.1) + msgpack (1.5.2) multi_json (1.15.0) multi_xml (0.6.0) nested_form (0.3.2) @@ -290,7 +290,7 @@ GEM pundit (2.2.0) activesupport (>= 3.0.0) racc (1.6.0) - rack (2.2.3) + rack (2.2.3.1) rack-mini-profiler (3.0.0) rack (>= 1.2.0) rack-pjax (1.1.0) @@ -358,7 +358,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rbtree (0.4.5) - regexp_parser (2.4.0) + regexp_parser (2.5.0) remotipart (1.4.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -391,18 +391,18 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.29.1) + rubocop (1.30.1) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.17.0, < 2.0) + rubocop-ast (>= 1.18.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.18.0) parser (>= 3.1.1.0) - rubocop-performance (1.13.3) + rubocop-performance (1.14.1) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) rubocop-rails (2.14.2) @@ -429,10 +429,11 @@ GEM sprockets (> 3.0) sprockets-rails tilt - selenium-webdriver (4.1.0) + selenium-webdriver (4.2.1) childprocess (>= 0.5, < 5.0) rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) semantic_range (3.0.0) sentry-rails (5.3.1) railties (>= 5.0) @@ -490,7 +491,7 @@ GEM concurrent-ruby (~> 1.0) unf (0.1.4) unf_ext - unf_ext (0.0.8.1) + unf_ext (0.0.8.2) unicode-display_width (2.1.0) uri_template (0.7.0) web-console (4.2.0) @@ -598,4 +599,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.3.12 + 2.3.15 diff --git a/yarn.lock b/yarn.lock index 4cb85f3b..ad420a61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,32 +23,32 @@ integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== "@babel/core@^7.15.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.0.tgz#c58d04d7c6fbfb58ea7681e2b9145cfb62726756" - integrity sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" + integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.0" - "@babel/helper-compilation-targets" "^7.17.10" + "@babel/generator" "^7.18.2" + "@babel/helper-compilation-targets" "^7.18.2" "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.0" + "@babel/helpers" "^7.18.2" "@babel/parser" "^7.18.0" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.0.tgz#46d28e8a18fc737b028efb25ab105d74473af43f" - integrity sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg== +"@babel/generator@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" + integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== dependencies: - "@babel/types" "^7.18.0" + "@babel/types" "^7.18.2" "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" @@ -67,10 +67,10 @@ "@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.7", "@babel/helper-compilation-targets@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" - integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" + integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== dependencies: "@babel/compat-data" "^7.17.10" "@babel/helper-validator-option" "^7.16.7" @@ -112,12 +112,10 @@ resolve "^1.14.2" semver "^6.1.2" -"@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.7" +"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" + integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== "@babel/helper-explode-assignable-expression@^7.16.7": version "7.16.7" @@ -141,7 +139,7 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": +"@babel/helper-member-expression-to-functions@^7.17.7": version "7.17.7" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== @@ -190,23 +188,23 @@ "@babel/helper-wrap-function" "^7.16.8" "@babel/types" "^7.16.8" -"@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== +"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" + integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.2" + "@babel/helper-member-expression-to-functions" "^7.17.7" "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== +"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" + integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.2" "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": version "7.16.0" @@ -242,14 +240,14 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.0.tgz#aff37c3590de42102b54842446146d0205946370" - integrity sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg== +"@babel/helpers@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" + integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" + "@babel/traverse" "^7.18.2" + "@babel/types" "^7.18.2" "@babel/highlight@^7.16.7": version "7.17.12" @@ -261,9 +259,9 @@ js-tokens "^4.0.0" "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.0.tgz#10a8d4e656bc01128d299a787aa006ce1a91e112" - integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg== + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" + integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": version "7.17.12" @@ -538,23 +536,23 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/plugin-transform-block-scoping@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz#68fc3c4b3bb7dfd809d97b7ed19a584052a2725c" - integrity sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ== + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz#7988627b3e9186a13e4d7735dc9c34a056613fb9" + integrity sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw== dependencies: "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-classes@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz#da889e89a4d38375eeb24985218edeab93af4f29" - integrity sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw== + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz#51310b812a090b846c784e47087fa6457baef814" + integrity sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A== dependencies: "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.2" "@babel/helper-function-name" "^7.17.9" "@babel/helper-optimise-call-expression" "^7.16.7" "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-replace-supers" "^7.18.2" "@babel/helper-split-export-declaration" "^7.16.7" globals "^11.1.0" @@ -595,7 +593,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-for-of@^7.17.12": +"@babel/plugin-transform-for-of@^7.18.1": version "7.18.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== @@ -634,20 +632,20 @@ "@babel/helper-plugin-utils" "^7.17.12" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz#3be575e19fbd273d42adbc84566b1fad3582b3db" - integrity sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw== +"@babel/plugin-transform-modules-commonjs@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" + integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== dependencies: "@babel/helper-module-transforms" "^7.18.0" "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-simple-access" "^7.18.2" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz#50ecdb43de97c8483824402f7125edb94cddb09a" - integrity sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ== + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz#3d6fd9868c735cce8f38d6ae3a407fb7e61e6d46" + integrity sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg== dependencies: "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-module-transforms" "^7.18.0" @@ -716,9 +714,9 @@ "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-runtime@^7.15.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.0.tgz#894cdab4b353dcb7639f03fb74c59db1d344f71c" - integrity sha512-7kM/jJ3DD/y1hDPn0jov12DoUIFsxLiItprhNydUSibxaywaxNqKwq+ODk72J9ePn4LWobIc5ik6TAJhVl8IkQ== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz#04637de1e45ae8847ff14b9beead09c33d34374d" + integrity sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.17.12" @@ -749,10 +747,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-template-literals@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz#4aec0a18f39dd86c442e1d077746df003e362c6e" - integrity sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw== +"@babel/plugin-transform-template-literals@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28" + integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g== dependencies: "@babel/helper-plugin-utils" "^7.17.12" @@ -779,12 +777,12 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/preset-env@^7.15.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.0.tgz#ec7e51f4c6e026816000b230ed7cf74a1530d91d" - integrity sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a" + integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q== dependencies: "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" + "@babel/helper-compilation-targets" "^7.18.2" "@babel/helper-plugin-utils" "^7.17.12" "@babel/helper-validator-option" "^7.16.7" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" @@ -829,12 +827,12 @@ "@babel/plugin-transform-dotall-regex" "^7.16.7" "@babel/plugin-transform-duplicate-keys" "^7.17.12" "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.17.12" + "@babel/plugin-transform-for-of" "^7.18.1" "@babel/plugin-transform-function-name" "^7.16.7" "@babel/plugin-transform-literals" "^7.17.12" "@babel/plugin-transform-member-expression-literals" "^7.16.7" "@babel/plugin-transform-modules-amd" "^7.18.0" - "@babel/plugin-transform-modules-commonjs" "^7.18.0" + "@babel/plugin-transform-modules-commonjs" "^7.18.2" "@babel/plugin-transform-modules-systemjs" "^7.18.0" "@babel/plugin-transform-modules-umd" "^7.18.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" @@ -847,12 +845,12 @@ "@babel/plugin-transform-shorthand-properties" "^7.16.7" "@babel/plugin-transform-spread" "^7.17.12" "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.17.12" + "@babel/plugin-transform-template-literals" "^7.18.2" "@babel/plugin-transform-typeof-symbol" "^7.17.12" "@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.18.0" + "@babel/types" "^7.18.2" babel-plugin-polyfill-corejs2 "^0.3.0" babel-plugin-polyfill-corejs3 "^0.5.0" babel-plugin-polyfill-regenerator "^0.3.0" @@ -871,9 +869,9 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.0.tgz#6d77142a19cb6088f0af662af1ada37a604d34ae" - integrity sha512-YMQvx/6nKEaucl0MY56mwIG483xk8SDNdlUwb2Ts6FUpr7fm85DxEmsY18LXBNhcTz6tO6JwZV8w1W06v8UKeg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== dependencies: regenerator-runtime "^0.13.4" @@ -886,26 +884,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.0.tgz#0e5ec6db098660b2372dd63d096bf484e32d27ba" - integrity sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": + version "7.18.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" + integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.0" - "@babel/helper-environment-visitor" "^7.16.7" + "@babel/generator" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.2" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.0" + "@babel/types" "^7.18.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.4.4": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.0.tgz#ef523ea349722849cb4bf806e9342ede4d071553" - integrity sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw== +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.4.4": + version "7.18.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" + integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -952,6 +950,14 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.13" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" @@ -1096,9 +1102,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.35" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" - integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== + version "17.0.40" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.40.tgz#76ee88ae03650de8064a6cf75b8d95f9f4a16090" + integrity sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1593,9 +1599,9 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== body-parser@1.20.0: version "1.20.0" @@ -1740,14 +1746,14 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.6.4: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== + version "4.20.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477" + integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" + caniuse-lite "^1.0.30001349" + electron-to-chromium "^1.4.147" escalade "^3.1.1" - node-releases "^2.0.3" + node-releases "^2.0.5" picocolors "^1.0.0" buffer-from@^1.0.0: @@ -1896,10 +1902,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.30001332: - version "1.0.30001341" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz#59590c8ffa8b5939cf4161f00827b8873ad72498" - integrity sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001349: + version "1.0.30001349" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001349.tgz#90740086a2eb2e825084944169d313c9793aeba4" + integrity sha512-VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2022,7 +2028,7 @@ coa@^2.0.2: collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -2037,7 +2043,7 @@ color-convert@^1.9.0, color-convert@^1.9.3: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@^1.0.0: version "1.1.4" @@ -2073,7 +2079,7 @@ commander@^2.20.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== component-emitter@^1.2.1: version "1.3.0" @@ -2114,7 +2120,7 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.5.0: version "1.6.2" @@ -2139,7 +2145,7 @@ console-browserify@^1.1.0: constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== content-disposition@0.5.4: version "0.5.4" @@ -2163,7 +2169,7 @@ convert-source-map@^1.7.0: cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== cookie@0.5.0: version "0.5.0" @@ -2185,20 +2191,20 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.22.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.5.tgz#7fffa1d20cb18405bd22756ca1353c6f1a0e8614" - integrity sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg== + version "3.22.8" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.8.tgz#46fa34ce1ddf742acd7f95f575f66bbb21e05d62" + integrity sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg== dependencies: browserslist "^4.20.3" semver "7.0.0" core-js@^3.16.2: - version "3.22.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.5.tgz#a5f5a58e663d5c0ebb4e680cd7be37536fb2a9cf" - integrity sha512-VP/xYuvJ0MJWRAobcmQ8F2H6Bsn+s7zqAAjFaHGBMc5AQm7zaelhD1LGduFn2EehEcQcU+br6t+fwbpQ5d1ZWA== + version "3.22.8" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.8.tgz#23f860b1fe60797cc4f704d76c93fea8a2f60631" + integrity sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA== core-util-is@~1.0.0: version "1.0.3" @@ -2295,7 +2301,7 @@ css-blank-pseudo@^0.1.4: css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== css-declaration-sorter@^4.0.1: version "4.0.1" @@ -2429,12 +2435,12 @@ cssnano-preset-default@^4.0.8: cssnano-util-get-arguments@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== cssnano-util-get-match@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== cssnano-util-raw-cache@^4.0.1: version "4.0.1" @@ -2468,7 +2474,7 @@ csso@^4.0.2: cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: version "3.1.6" @@ -2756,12 +2762,12 @@ debug@^4.1.0, debug@^4.1.1: decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== deep-equal@^1.0.1: version "1.1.1" @@ -2794,14 +2800,14 @@ define-properties@^1.1.3, define-properties@^1.1.4: define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== dependencies: is-descriptor "^1.0.0" @@ -2841,7 +2847,7 @@ depd@2.0.0: depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== des.js@^1.0.0: version "1.0.1" @@ -2859,7 +2865,7 @@ destroy@1.2.0: detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== detect-node@^2.0.4: version "2.1.0" @@ -2878,7 +2884,7 @@ diffie-hellman@^5.0.0: dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== dns-packet@^1.3.1: version "1.3.4" @@ -2891,7 +2897,7 @@ dns-packet@^1.3.1: dns-txt@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== dependencies: buffer-indexof "^1.0.0" @@ -2946,12 +2952,12 @@ duplexify@^3.4.2, duplexify@^3.6.0: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.118: - version "1.4.137" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" - integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== +electron-to-chromium@^1.4.147: + version "1.4.147" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.147.tgz#1ecf318737b21ba1e5b53319eb1edf8143892270" + integrity sha512-czclPqxLMPqPMkahKcske4TaS5lcznsc26ByBlEFDU8grTBVK9C5W6K9I6oEEhm4Ai4jTihGnys90xY1yjXcRg== elliptic@^6.5.3: version "6.5.4" @@ -2969,7 +2975,7 @@ elliptic@^6.5.3: emitter-component@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6" - integrity sha1-Bl4tvtaVm/RwZ57avq95gdEAOrY= + integrity sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ== emoji-regex@^7.0.1: version "7.0.3" @@ -2984,7 +2990,7 @@ emojis-list@^3.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" @@ -3072,12 +3078,12 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eslint-scope@^4.0.3: version "4.0.3" @@ -3117,7 +3123,7 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventemitter3@^4.0.0: version "4.0.7" @@ -3129,12 +3135,10 @@ events@^3.0.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.1.tgz#4544a35a57d7120fba4fa4c86cb4023b2c09df2f" - integrity sha512-qV5ZC0h7jYIAOhArFJgSfdyz6rALJyb270714o7ZtNnw2WSJ+eexhKtE0O8LYPRsHZHf2osHKZBxGPvm3kPkCA== - dependencies: - original "^1.0.0" +eventsource@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" + integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -3160,7 +3164,7 @@ execa@^1.0.0: expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -3173,7 +3177,7 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" @@ -3217,14 +3221,14 @@ express@^4.17.1: extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -3281,7 +3285,7 @@ file-uri-to-path@1.0.0: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -3370,14 +3374,14 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== forwarded@0.2.0: version "0.2.0" @@ -3387,19 +3391,19 @@ forwarded@0.2.0: fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" @@ -3414,7 +3418,7 @@ fs-minipass@^2.0.0: fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -3424,7 +3428,7 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^1.2.7: version "1.2.13" @@ -3496,12 +3500,12 @@ get-symbol-description@^1.0.0: get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -3544,7 +3548,7 @@ global-modules@^2.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -3569,7 +3573,7 @@ globals@^11.1.0: globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== dependencies: array-union "^1.0.1" glob "^7.0.3" @@ -3585,7 +3589,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: hammerjs@^2.0.8: version "2.0.8" resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" - integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= + integrity sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ== handle-thing@^2.0.0: version "2.0.1" @@ -3600,7 +3604,7 @@ has-bigints@^1.0.1, has-bigints@^1.0.2: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -3629,7 +3633,7 @@ has-tostringtag@^1.0.0: has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -3638,7 +3642,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -3647,12 +3651,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -3694,7 +3698,7 @@ highlight.js@^11.5.1: hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -3710,7 +3714,7 @@ homedir-polyfill@^1.0.1: hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" obuf "^1.0.0" @@ -3720,12 +3724,12 @@ hpack.js@^2.1.6: hsl-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== hsla-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== html-entities@^1.3.1: version "1.4.0" @@ -3735,7 +3739,7 @@ html-entities@^1.3.1: http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== http-errors@2.0.0: version "2.0.0" @@ -3751,7 +3755,7 @@ http-errors@2.0.0: http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== dependencies: depd "~1.1.2" inherits "2.0.3" @@ -3785,7 +3789,7 @@ http-proxy@^1.17.0: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== iconv-lite@0.4.24: version "0.4.24" @@ -3816,24 +3820,24 @@ ieee754@^1.1.4: iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== 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== + version "4.1.0" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" + integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" @@ -3849,7 +3853,7 @@ import-fresh@^3.1.0: import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== dependencies: resolve-from "^3.0.0" @@ -3864,7 +3868,7 @@ import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" @@ -3874,7 +3878,7 @@ indent-string@^4.0.0: indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" @@ -3884,7 +3888,7 @@ infer-owner@^1.0.3, infer-owner@^1.0.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -3897,12 +3901,12 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== ini@^1.3.4, ini@^1.3.5: version "1.3.8" @@ -3939,7 +3943,7 @@ interpret@^1.4.0: ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== ip@^1.1.0, ip@^1.1.5: version "1.1.8" @@ -3954,7 +3958,7 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0: is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== is-absolute-url@^3.0.3: version "3.0.3" @@ -3964,7 +3968,7 @@ is-absolute-url@^3.0.3: is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== dependencies: kind-of "^3.0.2" @@ -3986,7 +3990,7 @@ is-arguments@^1.0.4: is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: version "0.3.2" @@ -4003,7 +4007,7 @@ is-bigint@^1.0.1: is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== dependencies: binary-extensions "^1.0.0" @@ -4035,7 +4039,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== dependencies: css-color-names "^0.0.4" hex-color-regex "^1.1.0" @@ -4054,7 +4058,7 @@ is-core-module@^2.8.1: is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== dependencies: kind-of "^3.0.2" @@ -4093,12 +4097,12 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extendable@^1.0.1: version "1.0.1" @@ -4110,17 +4114,17 @@ is-extendable@^1.0.1: is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== dependencies: is-extglob "^2.1.0" @@ -4146,7 +4150,7 @@ is-number-object@^1.0.4: is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== dependencies: kind-of "^3.0.2" @@ -4182,7 +4186,7 @@ is-path-inside@^2.1.0: is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" @@ -4214,7 +4218,7 @@ is-shared-array-buffer@^1.0.2: is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" @@ -4245,29 +4249,29 @@ is-windows@^1.0.1, is-windows@^1.0.2: is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jest-worker@^26.5.0: version "26.6.2" @@ -4316,7 +4320,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" @@ -4355,7 +4359,7 @@ jstree@^3.3.12: keycharm@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/keycharm/-/keycharm-0.2.0.tgz#fa6ea2e43b90a68028843d27f2075d35a8c3e6f9" - integrity sha1-+m6i5DuQpoAohD0n8gddNajD5vk= + integrity sha512-i/XBRTiLqRConPKioy2oq45vbv04e8x59b0mnsIRQM+7Ec/8BC7UcL5pnC4FMeGb8KwG7q4wOMw7CtNZf5tiIg== killable@^1.0.1: version "1.0.1" @@ -4365,14 +4369,14 @@ killable@^1.0.1: kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== dependencies: is-buffer "^1.1.5" @@ -4445,37 +4449,32 @@ locate-path@^5.0.0: lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.get@^4.0: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.has@^4.0: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= + integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g== lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.5: version "4.17.21" @@ -4519,12 +4518,12 @@ make-dir@^3.0.2, make-dir@^3.1.0: map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== dependencies: object-visit "^1.0.0" @@ -4550,12 +4549,12 @@ mdn-data@2.0.4: media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -4571,7 +4570,7 @@ memory-fs@^0.5.0: merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" @@ -4581,7 +4580,7 @@ merge-stream@^2.0.0: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" @@ -4650,7 +4649,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== minimatch@^3.1.1: version "3.1.2" @@ -4744,7 +4743,7 @@ moment@^2.18.1: move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -4756,7 +4755,7 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -4771,7 +4770,7 @@ ms@2.1.3, ms@^2.1.1: multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== multicast-dns@^6.0.1: version "6.2.3" @@ -4782,9 +4781,9 @@ multicast-dns@^6.0.1: thunky "^1.0.2" nan@^2.12.1: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== nanomatch@^1.2.9: version "1.2.13" @@ -4852,15 +4851,15 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" - integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== +node-releases@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" + integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== dependencies: remove-trailing-separator "^1.0.1" @@ -4872,12 +4871,12 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" @@ -4892,7 +4891,7 @@ normalize-url@^3.0.0: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== dependencies: path-key "^2.0.0" @@ -4906,26 +4905,26 @@ nth-check@^1.0.2: num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" object-inspect@^1.12.0, object-inspect@^1.9.0: - 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== + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== object-is@^1.0.1: version "1.1.5" @@ -4943,7 +4942,7 @@ object-keys@^1.1.1: object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== dependencies: isobject "^3.0.0" @@ -4970,7 +4969,7 @@ object.getownpropertydescriptors@^2.1.0: object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" @@ -5003,7 +5002,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -5027,22 +5026,15 @@ optimize-css-assets-webpack-plugin@^5.0.8: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" @@ -5131,7 +5123,7 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -5149,7 +5141,7 @@ parse-json@^5.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" @@ -5159,7 +5151,7 @@ parseurl@~1.3.2, parseurl@~1.3.3: pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== path-browserify@0.0.1: version "0.0.1" @@ -5174,12 +5166,12 @@ path-complete-extname@^1.0.0: path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -5189,17 +5181,17 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-parse@^1.0.7: version "1.0.7" @@ -5209,7 +5201,7 @@ path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-type@^4.0.0: version "4.0.0" @@ -5245,7 +5237,7 @@ picomatch@^2.0.4, picomatch@^2.2.1: pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: version "4.0.1" @@ -5255,14 +5247,14 @@ pify@^4.0.1: pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pkg-dir@^3.0.0: version "3.0.0" @@ -5302,7 +5294,7 @@ portfinder@^1.0.26: posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== postcss-attribute-case-insensitive@^4.0.1: version "4.0.2" @@ -5947,7 +5939,7 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2 prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== process-nextick-args@~2.0.0: version "2.0.1" @@ -5957,12 +5949,12 @@ process-nextick-args@~2.0.0: process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== propagating-hammerjs@^1.4.6: version "1.5.0" @@ -5982,7 +5974,7 @@ proxy-addr@~2.0.7: prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== public-encrypt@^4.0.0: version "4.0.3" @@ -6024,12 +6016,12 @@ pumpify@^1.3.3: punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0: version "2.1.1" @@ -6039,7 +6031,7 @@ punycode@^2.1.0: q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qs@6.10.3: version "6.10.3" @@ -6051,7 +6043,7 @@ qs@6.10.3: query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" @@ -6059,12 +6051,12 @@ query-string@^4.1.0: querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== querystringify@^2.1.1: version "2.2.0" @@ -6112,7 +6104,7 @@ raw-body@2.5.1: read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" @@ -6222,7 +6214,7 @@ regjsparser@^0.8.2: remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== repeat-element@^1.1.2: version "1.1.4" @@ -6232,12 +6224,12 @@ repeat-element@^1.1.2: repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-main-filename@^2.0.0: version "2.0.0" @@ -6247,19 +6239,19 @@ require-main-filename@^2.0.0: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -6267,7 +6259,7 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= + integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== resolve-from@^4.0.0: version "4.0.0" @@ -6277,7 +6269,7 @@ resolve-from@^4.0.0: resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: version "1.22.0" @@ -6296,17 +6288,17 @@ ret@~0.1.10: retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== rgba-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" @@ -6381,9 +6373,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.0.tgz#3dc755ff459858ce7062887181648701f028c4f5" - integrity sha512-6EnTglag2oVD8sNJCxUi2Jd3ICH9tJ5Mqudt/gIZNBR2uKJUBZuTpW9O1t04SkDLP7VFa76FCWTV2rwchqM8Kw== + version "1.52.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.2.tgz#cd1f03e0e7be5bb2cebcf1c34d735f087d790936" + integrity sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6620,12 +6612,12 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.0.tgz#e0277b8974558edcb557eafc7d3027ef6128d865" - integrity sha512-qVHJlyfdHFht3eBFZdKEXKTlb7I4IV41xnVNo8yUKA1UHcPJwgW2SvTq9LhnjjCywSkSK7c/e4nghU0GOoMCRQ== + version "1.6.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" + integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== dependencies: debug "^3.2.7" - eventsource "^1.1.0" + eventsource "^2.0.2" faye-websocket "^0.11.4" inherits "^2.0.4" url-parse "^1.5.10" @@ -6695,13 +6687,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@~0.8.0-beta.0: - version "0.8.0-beta.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" - integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== - dependencies: - whatwg-url "^7.0.0" - spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -6990,13 +6975,13 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.13.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799" - integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA== + version "5.14.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" + integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== dependencies: + "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" commander "^2.20.0" - source-map "~0.8.0-beta.0" source-map-support "~0.5.20" through2@^2.0.0: @@ -7071,13 +7056,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" @@ -7213,7 +7191,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3, url-parse@^1.5.10: +url-parse@^1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== @@ -7334,11 +7312,6 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - webpack-assets-manifest@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" @@ -7486,15 +7459,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" From cdb6c0d64bd94c0ab040d066d1bba15bdff89432 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 7 Jun 2022 14:29:40 +0200 Subject: [PATCH 184/329] Fix Rubocop offense --- app/models/concerns/default_values.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/models/concerns/default_values.rb b/app/models/concerns/default_values.rb index 7cab836b..3fe789d4 100644 --- a/app/models/concerns/default_values.rb +++ b/app/models/concerns/default_values.rb @@ -1,12 +1,10 @@ # frozen_string_literal: true module DefaultValues - # rubocop:disable Naming/AccessorMethodName def set_default_values_if_present(options = {}) options.each do |attribute, value| send(:"#{attribute}=", send(:"#{attribute}") || value) if has_attribute?(attribute) end end private :set_default_values_if_present - # rubocop:enable Naming/AccessorMethodName end From 372baa15cb7cd3100c9b3727f5dcac6a7345f424 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jun 2022 03:01:20 +0000 Subject: [PATCH 185/329] Bump rubocop-performance from 1.14.1 to 1.14.2 Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.14.1 to 1.14.2. - [Release notes](https://github.com/rubocop/rubocop-performance/releases) - [Changelog](https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-performance/compare/v1.14.1...v1.14.2) --- updated-dependencies: - dependency-name: rubocop-performance 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 9380c63a..18be8351 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -402,7 +402,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.18.0) parser (>= 3.1.1.0) - rubocop-performance (1.14.1) + rubocop-performance (1.14.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) rubocop-rails (2.14.2) From b364918cb64f705bc6d8606e919d1a1bfe92982b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 8 Jun 2022 12:58:38 +0200 Subject: [PATCH 186/329] Add link to Ralfs diss regarding interventions --- app/assets/javascripts/editor/editor.js.erb | 6 +++--- config/locales/de.yml | 2 +- config/locales/en.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 233e6b5a..2af1c3a7 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -867,7 +867,7 @@ var CodeOceanEditor = { // timeUntilIntervention passed if (editor.data('tips-interventions')) { const modal = $('#tips-intervention-modal'); - modal.find('.modal-footer').text(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); + modal.find('.modal-footer').html(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); modal.modal('show'); $.ajax({ data: { @@ -879,7 +879,7 @@ var CodeOceanEditor = { }); } else if (editor.data('break-interventions')) { const modal = $('#break-intervention-modal'); - modal.find('.modal-footer').text(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); + modal.find('.modal-footer').html(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); modal.modal('show'); $.ajax({ data: { @@ -895,7 +895,7 @@ var CodeOceanEditor = { if (!button.prop('disabled')) { $('#rfc_intervention_text').show(); modal = $('#comment-modal'); - modal.find('.modal-footer').text(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); + modal.find('.modal-footer').html(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)})); modal.on('hidden.bs.modal', function () { modal.find('.modal-footer').text(''); }); diff --git a/config/locales/de.yml b/config/locales/de.yml index 8f5139de..bccf33b9 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -453,7 +453,7 @@ de: request: "Kommentaranfrage stellen" question: "Bitte beschreiben Sie kurz Ihre Probleme oder nennen Sie den Programmteil, zu dem Sie Feedback wünschen. Ihr Programmcode und eventuelle Fehlermeldungen werden automatisch zur Anfrage hinzugefügt." intervention: - explanation: "Diese Meldung erscheint, weil Sie %{duration} Minuten an dieser Aufgabe gearbeitet haben. 25% Ihrer Mitlernenden arbeiten länger daran, insofern ist das kein Problem, aber dies hat sich als effektiven Zeitpunkt für diese Meldung erwiesen." + explanation: "Diese Meldung erscheint, weil Sie %{duration} Minuten an dieser Aufgabe gearbeitet haben. 25% Ihrer Mitlernenden arbeiten länger daran, insofern ist das kein Problem, aber dies hat sich als effektiven Zeitpunkt für diese Meldung erwiesen." rfc_intervention: text: "Falls Sie bei dieser Aufgabe nicht weiterkommen und nicht selbst weiter knobeln möchten, können Ihre Mitlernenden bestimmt helfen!

" break_intervention: diff --git a/config/locales/en.yml b/config/locales/en.yml index 43682596..946f58b9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -453,7 +453,7 @@ en: request: "Request Comments" question: 'Please shortly describe your problem or the program part you would like to get feedback for. Your program code and potential error messages are automatically appended to your request.' intervention: - explanation: "This message appears because you have been working on this exercise for %{duration} minutes. 25% of your fellow learners took more time to solve the exercise, so in that sense it's not a problem, but this has proven to be an effective time for this message." + explanation: "This message appears because you have been working on this exercise for %{duration} minutes. 25% of your fellow learners took more time to solve the exercise, so in that sense it's not a problem, but this has proven to be an effective time for this message." rfc_intervention: text: "If you are struggling with this exercise and don't want to continue on your own, your fellow learners can help out!

" break_intervention: From b613267add99ea3cac0e15d3d7d352861d7c7172 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 8 Jun 2022 13:03:26 +0200 Subject: [PATCH 187/329] Remove legacy DockerClient --- config/initializers/mixins.rb | 5 - lib/docker_client.rb | 479 ------------------ lib/docker_container_mixin.rb | 18 - lib/port_pool.rb | 18 - lib/runner/strategy/docker_container_pool.rb | 2 +- lib/tasks/docker.rake | 22 - spec/lib/docker_client_spec.rb | 442 ---------------- spec/lib/docker_container_mixin_spec.rb | 34 -- spec/lib/port_pool_spec.rb | 57 --- .../strategy/docker_container_pool_spec.rb | 2 +- 10 files changed, 2 insertions(+), 1077 deletions(-) delete mode 100644 config/initializers/mixins.rb delete mode 100644 lib/docker_client.rb delete mode 100644 lib/docker_container_mixin.rb delete mode 100644 lib/port_pool.rb delete mode 100644 lib/tasks/docker.rake delete mode 100644 spec/lib/docker_client_spec.rb delete mode 100644 spec/lib/docker_container_mixin_spec.rb delete mode 100644 spec/lib/port_pool_spec.rb diff --git a/config/initializers/mixins.rb b/config/initializers/mixins.rb deleted file mode 100644 index afa8e6b9..00000000 --- a/config/initializers/mixins.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -require 'docker_container_mixin' - -Docker::Container.include DockerContainerMixin diff --git a/lib/docker_client.rb b/lib/docker_client.rb deleted file mode 100644 index 8355e03e..00000000 --- a/lib/docker_client.rb +++ /dev/null @@ -1,479 +0,0 @@ -# frozen_string_literal: true - -require 'pathname' - -class DockerClient - def self.config - @config ||= CodeOcean::Config.new(:docker).read(erb: true) - end - - CONTAINER_WORKSPACE_PATH = '/workspace' # '/home/python/workspace' #'/tmp/workspace' - # Ralf: I suggest to replace this with the environment variable. Ask Hauke why this is not the case! - LOCAL_WORKSPACE_ROOT = File.expand_path(config[:workspace_root]) - RECYCLE_CONTAINERS = false - RETRY_COUNT = 2 - MINIMUM_CONTAINER_LIFETIME = 10.minutes - MAXIMUM_CONTAINER_LIFETIME = 20.minutes - SELF_DESTROY_GRACE_PERIOD = 2.minutes - - attr_reader :container, :socket - attr_accessor :tubesock - - def self.check_availability! - Timeout.timeout(config[:connection_timeout]) { Docker.version } - rescue Excon::Errors::SocketError, Timeout::Error - raise Error.new("The Docker host at #{Docker.url} is not reachable!") - end - - def self.clean_container_workspace(container) - # remove files when using transferral via Docker API archive_in (transmit) - # container.exec(['bash', '-c', 'rm -rf ' + CONTAINER_WORKSPACE_PATH + '/*']) - - local_workspace_path = local_workspace_path(container) - if local_workspace_path && Pathname.new(local_workspace_path).exist? - Pathname.new(local_workspace_path).children.each do |p| - p.rmtree - rescue Errno::ENOENT, Errno::EACCES => e - Sentry.capture_exception(e) - Rails.logger.error("clean_container_workspace: Got #{e.class}: #{e}") - end - # FileUtils.rmdir(Pathname.new(local_workspace_path)) - end - end - - def command_substitutions(filename) - { - class_name: File.basename(filename, File.extname(filename)).upcase_first, - filename: filename, - module_name: File.basename(filename, File.extname(filename)).underscore, - } - end - - private :command_substitutions - - def self.container_creation_options(execution_environment, local_workspace_path) - { - 'Image' => find_image_by_tag(execution_environment.docker_image).info['RepoTags'].first, - 'NetworkDisabled' => !execution_environment.network_enabled?, - 'OpenStdin' => true, - 'StdinOnce' => true, - # required to expose standard streams over websocket - 'AttachStdout' => true, - 'AttachStdin' => true, - 'AttachStderr' => true, - 'Tty' => true, - 'Binds' => mapped_directories(local_workspace_path), - 'PortBindings' => mapped_ports(execution_environment), - # Resource limitations. - 'NanoCPUs' => 4 * 1_000_000_000, # CPU quota in units of 10^-9 CPUs. - 'PidsLimit' => 100, - 'KernelMemory' => execution_environment.memory_limit.megabytes, # if below Memory, the Docker host (!) might experience an OOM - 'Memory' => execution_environment.memory_limit.megabytes, - 'MemorySwap' => execution_environment.memory_limit.megabytes, # same value as Memory to disable Swap - 'OomScoreAdj' => 500, - } - end - - def create_socket(container, stderr: false) - # TODO: factor out query params - # todo separate stderr - query_params = "logs=0&stream=1&#{stderr ? 'stderr=1' : 'stdout=1&stdin=1'}" - - # Headers are required by Docker - headers = {'Origin' => 'http://localhost'} - - socket_url = "#{self.class.config['ws_host']}/v1.27/containers/#{@container.id}/attach/ws?#{query_params}" - # The ping value is measured in seconds and specifies how often a Ping frame should be sent. - # Internally, Faye::WebSocket uses EventMachine and the ping value is used to wake the EventMachine thread - socket = Faye::WebSocket::Client.new(socket_url, [], headers: headers, ping: 0.1) - - Rails.logger.debug { "Opening Websocket on URL #{socket_url}" } - - socket.on :error do |event| - Rails.logger.info "Websocket error: #{event.message}" - end - socket.on :close do |_event| - Rails.logger.info 'Websocket closed.' - end - socket.on :open do |_event| - Rails.logger.info 'Websocket created.' - kill_after_timeout(container) - end - socket - end - - def copy_file_to_workspace(options = {}) - FileUtils.cp(options[:file].native_file.path, local_file_path(options)) - end - - def self.create_container(execution_environment) - # tries ||= 0 - # container.start sometimes creates the passed local_workspace_path on disk (depending on the setup). - # this is however not guaranteed and caused issues on the server already. Therefore create the necessary folders manually! - local_workspace_path = generate_local_workspace_path - FileUtils.mkdir(local_workspace_path) - FileUtils.chmod_R(0o777, local_workspace_path) - container = Docker::Container.create(container_creation_options(execution_environment, local_workspace_path)) - container.start - container.start_time = Time.zone.now - container.status = :created - container.execution_environment = execution_environment - container.docker_client = new(execution_environment: execution_environment) - - Thread.new do - timeout = Random.rand(MINIMUM_CONTAINER_LIFETIME..MAXIMUM_CONTAINER_LIFETIME) # seconds - sleep(timeout) - if container.status == :executing - Thread.new do - timeout = SELF_DESTROY_GRACE_PERIOD.to_i - sleep(timeout) - container.docker_client.kill_container(container) - Rails.logger.info("Force killing container in status #{container.status} after #{Time.zone.now - container.start_time} seconds.") - ensure - # guarantee that the thread is releasing the DB connection after it is done - ActiveRecord::Base.connection_pool.release_connection - end - else - container.docker_client.kill_container(container) - Rails.logger.info("Killing container in status #{container.status} after #{Time.zone.now - container.start_time} seconds.") - end - ensure - # guarantee that the thread is releasing the DB connection after it is done - ActiveRecord::Base.connection_pool.release_connection - end - - container - rescue Docker::Error::NotFoundError => e - Rails.logger.error("create_container: Got Docker::Error::NotFoundError: #{e}") - destroy_container(container) - # (tries += 1) <= RETRY_COUNT ? retry : raise(error) - end - - def create_workspace_files(container, submission) - # clear directory (it should be empty anyhow) - # Pathname.new(self.class.local_workspace_path(container)).children.each{ |p| p.rmtree} - submission.collect_files.each do |file| - FileUtils.mkdir_p(File.join(self.class.local_workspace_path(container), file.path || '')) - if file.file_type.binary? - copy_file_to_workspace(container: container, file: file) - else - create_workspace_file(container: container, file: file) - end - end - FileUtils.chmod_R('+rwX', self.class.local_workspace_path(container)) - rescue Docker::Error::NotFoundError => e - Rails.logger.info("create_workspace_files: Rescued from Docker::Error::NotFoundError: #{e}") - end - - private :create_workspace_files - - def create_workspace_file(options = {}) - # TODO: try catch i/o exception and log failed attempts - file = File.new(local_file_path(options), 'w') - file.write(options[:file].content) - file.close - end - - private :create_workspace_file - - def create_workspace_files_transmit(container, submission) - # create a temporary dir, put all files in it, and put it into the container. the dir is automatically removed when leaving the block. - Dir.mktmpdir do |dir| - submission.collect_files.each do |file| - disk_file = File.new("#{dir}/#{file.path || ''}#{file.name_with_extension}", 'w') - disk_file.write(file.content) - disk_file.close - end - - begin - # create target folder, TODO re-active this when we remove shared folder bindings - # container.exec(['bash', '-c', 'mkdir ' + CONTAINER_WORKSPACE_PATH]) - # container.exec(['bash', '-c', 'chown -R python ' + CONTAINER_WORKSPACE_PATH]) - # container.exec(['bash', '-c', 'chgrp -G python ' + CONTAINER_WORKSPACE_PATH]) - rescue StandardError => e - Rails.logger.error("create workspace folder: Rescued from StandardError: #{e}") - end - - # sleep 1000 - - begin - # tar the files in dir and put the tar to CONTAINER_WORKSPACE_PATH in the container - container.archive_in(dir, CONTAINER_WORKSPACE_PATH, overwrite: false) - rescue StandardError => e - Rails.logger.error("insert tar: Rescued from StandardError: #{e}") - end - - # Rails.logger.info('command: tar -xf ' + CONTAINER_WORKSPACE_PATH + '/' + dir.split('/tmp/')[1] + ' -C ' + CONTAINER_WORKSPACE_PATH) - - begin - # untar the tar file placed in the CONTAINER_WORKSPACE_PATH - container.exec(['bash', '-c', - "tar -xf #{CONTAINER_WORKSPACE_PATH}/#{dir.split('/tmp/')[1]} -C #{CONTAINER_WORKSPACE_PATH}"]) - rescue StandardError => e - Rails.logger.error("untar: Rescued from StandardError: #{e}") - end - - # sleep 1000 - end - rescue StandardError => e - Rails.logger.error("create_workspace_files_transmit: Rescued from StandardError: #{e}") - end - - def self.destroy_container(container) - @socket&.close - Rails.logger.info("destroying container #{container}") - - # Checks only if container assignment is not nil and not whether the container itself is still present. - if container - container.kill - container.port_bindings.each_value {|port| PortPool.release(port) } - begin - clean_container_workspace(container) - FileUtils.rmtree(local_workspace_path(container)) - rescue Errno::ENOENT, Errno::EACCES => e - Sentry.capture_exception(e) - Rails.logger.error("clean_container_workspace: Got #{e.class}: #{e}") - end - - # Checks only if container assignment is not nil and not whether the container itself is still present. - container&.delete(force: true, v: true) - end - rescue Docker::Error::NotFoundError => e - Rails.logger.error("destroy_container: Rescued from Docker::Error::NotFoundError: #{e}") - Rails.logger.error('No further actions are done concerning that.') - rescue Docker::Error::ConflictError => e - Rails.logger.error("destroy_container: Rescued from Docker::Error::ConflictError: #{e}") - Rails.logger.error('No further actions are done concerning that.') - end - - # currently only used to check if containers have been started correctly, or other internal checks - # also used for the admin shell to any container - def execute_arbitrary_command(command, &block) - execute_command(command, nil, block) - end - - # only used by score and execute_arbitrary_command - def execute_command(command, before_execution_block, output_consuming_block) - # tries ||= 0 - container_request_time = Time.zone.now - @container = self.class.create_container(@execution_environment) - waiting_for_container_time = Time.zone.now - container_request_time - if @container - @container.status = :executing - before_execution_block.try(:call) - execution_request_time = Time.zone.now - command_result = send_command(command, @container, &output_consuming_block) - container_execution_time = Time.zone.now - execution_request_time - - command_result[:waiting_for_container_time] = waiting_for_container_time - command_result[:container_execution_time] = container_execution_time - command_result - else - {status: :container_depleted, waiting_for_container_time: waiting_for_container_time, -container_execution_time: nil} - end - rescue Excon::Errors::SocketError - # socket errors seems to be normal when using exec - # so lets ignore them for now - # (tries += 1) <= RETRY_COUNT ? retry : raise(error) - end - - # called when the user clicks the "Run" button - def open_websocket_connection(command, before_execution_block, _output_consuming_block) - @container = self.class.create_container(@execution_environment) - if @container - @container.status = :executing - # do not use try here, directly call the passed proc and rescue from the error in order to log the problem. - # before_execution_block.try(:call) - begin - before_execution_block.call - rescue FilepathError - # Prevent catching this error here - raise - rescue StandardError => e - Rails.logger.error("execute_websocket_command: Rescued from StandardError caused by before_execution_block.call: #{e}") - end - # TODO: catch exception if socket could not be created - @socket ||= create_socket(@container) - {status: :container_running, socket: @socket, container: @container, command: command} - else - {status: :container_depleted} - end - end - - def kill_after_timeout(container) - # We need to start a second thread to kill the websocket connection, - # as it is impossible to determine whether further input is requested. - container.status = :executing - @thread = Thread.new do - timeout = @execution_environment.permitted_execution_time.to_i # seconds - sleep(timeout) - if container && container.status != :available - Rails.logger.info("Killing container after timeout of #{timeout} seconds.") - # send timeout to the tubesock socket - # FIXME: 2nd thread to notify user. - @tubesock&.send_data JSON.dump({'cmd' => 'timeout'}) - if @socket - begin - @socket.send('#timeout') # rubocop:disable Performance/StringIdentifierArgument - # sleep one more second to ensure that the message reaches the submissions_controller. - sleep(1) - @socket.close - rescue RuntimeError => e - Rails.logger.error(e) - end - end - Thread.new do - kill_container(container) - ensure - ActiveRecord::Base.connection_pool.release_connection - end - else - Rails.logger.info("Container#{container} already removed.") - end - ensure - # guarantee that the thread is releasing the DB connection after it is done - ActiveRecord::Base.connection_pool.release_connection - end - end - - def exit_thread_if_alive - @thread.exit if @thread&.alive? - end - - def exit_container(container) - Rails.logger.debug { "exiting container #{container}" } - # exit the timeout thread if it is still alive - exit_thread_if_alive - @socket.close - self.class.destroy_container(container) - end - - def kill_container(container) - exit_thread_if_alive - Rails.logger.info("killing container #{container}") - self.class.destroy_container(container) - end - - def execute_run_command(submission, filename, &block) - # Run commands by attaching a websocket to Docker. - filepath = submission.collect_files.find {|f| f.name_with_extension == filename }.filepath - command = submission.execution_environment.run_command % command_substitutions(filepath) - create_workspace_files = proc { create_workspace_files(container, submission) } - open_websocket_connection(command, create_workspace_files, block) - # actual run command is run in the submissions controller, after all listeners are attached. - end - - def execute_test_command(submission, filename, &block) - # Stick to existing Docker API with exec command. - file = submission.collect_files.find {|f| f.name_with_extension == filename } - filepath = file.filepath - command = submission.execution_environment.test_command % command_substitutions(filepath) - create_workspace_files = proc { create_workspace_files(container, submission) } - test_result = execute_command(command, create_workspace_files, block) - test_result[:file_role] = file.role - test_result - end - - def self.find_image_by_tag(tag) - # TODO: cache this. - Docker::Image.all.detect do |image| - image.info['RepoTags'].flatten.include?(tag) - rescue StandardError - # Skip image if it is not tagged - next - end - end - - def self.generate_local_workspace_path - File.join(LOCAL_WORKSPACE_ROOT, SecureRandom.uuid) - end - - def self.image_tags - Docker::Image.all.map {|image| image.info['RepoTags'] }.flatten.reject {|tag| tag.nil? || tag.include?('') } - end - - def initialize(options = {}) - @execution_environment = options[:execution_environment] - # TODO: eventually re-enable this if it is cached. But in the end, we do not need this. - # docker daemon got much too much load. all not 100% necessary calls to the daemon were removed. - # @image = self.class.find_image_by_tag(@execution_environment.docker_image) - # fail(Error, "Cannot find image #{@execution_environment.docker_image}!") unless @image - end - - def self.initialize_environment - raise Error.new('Docker configuration missing!') unless config[:connection_timeout] && config[:workspace_root] - - Docker.url = config[:host] if config[:host] - # TODO: availability check disabled for performance reasons. Reconsider if this is necessary. - # docker daemon got much too much load. all not 100% necessary calls to the daemon were removed. - # check_availability! - FileUtils.mkdir_p(LOCAL_WORKSPACE_ROOT) - end - - def local_file_path(options = {}) - resulting_file_path = File.join(self.class.local_workspace_path(options[:container]), options[:file].path || '', - options[:file].name_with_extension) - absolute_path = File.expand_path(resulting_file_path) - unless absolute_path.start_with? self.class.local_workspace_path(options[:container]).to_s - raise FilepathError.new('Filepath not allowed') - end - - absolute_path - end - - private :local_file_path - - def self.local_workspace_path(container) - Pathname.new(container.binds.first.split(':').first) if container.binds.present? - end - - def self.mapped_directories(local_workspace_path) - # create the string to be returned - ["#{local_workspace_path}:#{CONTAINER_WORKSPACE_PATH}"] - end - - def self.mapped_ports(execution_environment) - execution_environment.exposed_ports.to_h do |port| - ["#{port}/tcp", [{'HostPort' => PortPool.available_port.to_s}]] - end - end - - def self.pull(docker_image) - `docker pull #{docker_image}` if docker_image - end - - def send_command(command, container) - result = {status: :failed, stdout: '', stderr: ''} - output = nil - Timeout.timeout(@execution_environment.permitted_execution_time.to_i) do - # TODO: check phusion doku again if we need -i -t options here - # https://stackoverflow.com/questions/363223/how-do-i-get-both-stdout-and-stderr-to-go-to-the-terminal-and-a-log-file - output = container.exec( - ['bash', '-c', - "#{command} 1> >(tee -a /tmp/stdout.log) 2> >(tee -a /tmp/stderr.log >&2); rm -f /tmp/std*.log"], tty: false - ) - end - Rails.logger.debug 'output from container.exec' - Rails.logger.debug output - if output.nil? - kill_container(container) - else - result = {status: (output[2])&.zero? ? :ok : :failed, stdout: output[0].join.force_encoding('utf-8'), stderr: output[1].join.force_encoding('utf-8')} - end - - self.class.destroy_container(container) - result - rescue Timeout::Error - Rails.logger.info("got timeout error for container #{container}") - stdout = container.exec(%w[cat /tmp/stdout.log])[0].join.force_encoding('utf-8') - stderr = container.exec(%w[cat /tmp/stderr.log])[0].join.force_encoding('utf-8') - kill_container(container) - {status: :timeout, stdout: stdout, stderr: stderr} - end - private :send_command - - class Error < RuntimeError; end - - class FilepathError < RuntimeError; end -end diff --git a/lib/docker_container_mixin.rb b/lib/docker_container_mixin.rb deleted file mode 100644 index d2785263..00000000 --- a/lib/docker_container_mixin.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -module DockerContainerMixin - attr_accessor :start_time, :status, :execution_environment, :docker_client - - def binds - host_config['Binds'] - end - - def port_bindings - # Don't use cached version as this might be changed during runtime - json['HostConfig']['PortBindings'].try(:map) {|key, value| [key.to_i, value.first['HostPort'].to_i] }.to_h - end - - def host_config - @host_config ||= json['HostConfig'] - end -end diff --git a/lib/port_pool.rb b/lib/port_pool.rb deleted file mode 100644 index e32b5438..00000000 --- a/lib/port_pool.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -class PortPool - PORT_RANGE = DockerClient.config[:ports] - - @available_ports = PORT_RANGE.to_a - @mutex = Mutex.new - - def self.available_port - @mutex.synchronize do - @available_ports.delete(@available_ports.sample) - end - end - - def self.release(port) - @available_ports << port if PORT_RANGE.include?(port) && @available_ports.exclude?(port) - end -end diff --git a/lib/runner/strategy/docker_container_pool.rb b/lib/runner/strategy/docker_container_pool.rb index cf328244..4de46bba 100644 --- a/lib/runner/strategy/docker_container_pool.rb +++ b/lib/runner/strategy/docker_container_pool.rb @@ -213,7 +213,7 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy end def local_workspace_path - @local_workspace_path ||= Pathname.new(container.binds.first.split(':').first) + @local_workspace_path ||= Pathname.new(container.json['HostConfig']['Binds'].first.split(':').first) end def reset_inactivity_timer diff --git a/lib/tasks/docker.rake b/lib/tasks/docker.rake deleted file mode 100644 index a0c89a89..00000000 --- a/lib/tasks/docker.rake +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -namespace :docker do - desc 'Remove all Docker containers and dangling Docker images (using the CLI)' - task clean_up: :environment do - `test -n "$(docker ps --all --quiet)" && docker rm --force $(docker ps --all --quiet)` - `test -n "docker images --filter dangling=true --quiet" && docker rmi $(docker images --filter dangling=true --quiet)` - end - - desc 'List all installed Docker images' - task images: :environment do - puts DockerClient.image_tags - end - - desc 'Pull all Docker images referenced by execution environments' - task pull: :environment do - ExecutionEnvironment.all.map(&:docker_image).each do |docker_image| - puts "Pulling #{docker_image}..." - DockerClient.pull(docker_image) - end - end -end diff --git a/spec/lib/docker_client_spec.rb b/spec/lib/docker_client_spec.rb deleted file mode 100644 index 9d502d17..00000000 --- a/spec/lib/docker_client_spec.rb +++ /dev/null @@ -1,442 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' -require 'seeds_helper' - -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: build(:java), user: build(:admin)) } - let(:execution_environment) { build(:java) } - let(:image) { double } - 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' => [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| - result = original_method.call(*args, &block) - result['NanoCPUs'] = 2 * 1_000_000_000 # CPU quota in units of 10^-9 CPUs. - result - end - end - - describe '.check_availability!' do - context 'when a socket error occurs' do - it 'raises an error' do - allow(Docker).to receive(:version).and_raise(Excon::Errors::SocketError.new(StandardError.new)) - expect { described_class.check_availability! }.to raise_error(DockerClient::Error) - end - end - - context 'when a timeout occurs' do - it 'raises an error' do - allow(Docker).to receive(:version).and_raise(Timeout::Error) - expect { described_class.check_availability! }.to raise_error(DockerClient::Error) - end - end - end - - describe '.container_creation_options' do - let(:container_creation_options) { described_class.container_creation_options(execution_environment, workspace_path) } - - it 'specifies the Docker image' do - expect(container_creation_options).to include('Image' => described_class.find_image_by_tag(execution_environment.docker_image).info['RepoTags'].first) - end - - it 'specifies the memory limit' do - expect(container_creation_options).to include('Memory' => execution_environment.memory_limit.megabytes) - end - - it 'specifies whether network access is enabled' do - expect(container_creation_options).to include('NetworkDisabled' => !execution_environment.network_enabled?) - end - - it 'specifies to open the standard input stream once' do - expect(container_creation_options).to include('OpenStdin' => true, 'StdinOnce' => true) - end - - it 'specifies mapped directories' do - expect(container_creation_options).to include('Binds' => kind_of(Array)) - end - - it 'specifies mapped ports' do - expect(container_creation_options).to include('PortBindings' => kind_of(Hash)) - end - end - - describe '.create_container' do - let(:create_container) { described_class.create_container(execution_environment) } - - after do - FileUtils.rm_rf(workspace_path) - end - - it 'uses the correct Docker image' do - expect(described_class).to receive(:find_image_by_tag).with(execution_environment.docker_image).and_call_original - container = create_container - described_class.destroy_container(container) - end - - it 'creates a unique directory' do - expect(described_class).to receive(:generate_local_workspace_path).and_call_original - expect(FileUtils).to receive(:mkdir).with(kind_of(String)).and_call_original - container = create_container - described_class.destroy_container(container) - end - - it 'creates a container' do - local_workspace_path = File.join(workspace_path, 'example').to_s - FileUtils.mkdir_p(workspace_path) - allow(described_class).to receive(:generate_local_workspace_path).and_return(local_workspace_path) - expect(described_class).to receive(:container_creation_options).with(execution_environment, local_workspace_path) - .and_wrap_original do |original_method, *args, &block| - result = original_method.call(*args, &block) - result['NanoCPUs'] = 2 * 1_000_000_000 # CPU quota in units of 10^-9 CPUs. - result - end - expect(Docker::Container).to receive(:create).with(kind_of(Hash)).and_call_original - container = create_container - described_class.destroy_container(container) - end - - it 'starts the container' do - expect_any_instance_of(Docker::Container).to receive(:start).and_call_original - container = create_container - described_class.destroy_container(container) - end - - it 'configures mapped directories' do - expect(described_class).to receive(:mapped_directories).and_call_original - container = create_container - described_class.destroy_container(container) - end - - it 'configures mapped ports' do - expect(described_class).to receive(:mapped_ports).with(execution_environment).and_call_original - container = create_container - described_class.destroy_container(container) - end - - context 'when an error occurs' do - let(:error) { Docker::Error::NotFoundError.new } - - context 'when retries are left' do - before do - allow(described_class).to receive(:mapped_directories).and_raise(error).and_call_original - end - - it 'retries to create a container' do - container = create_container - expect(container).to be_a(Docker::Container) - described_class.destroy_container(container) - end - end - - context 'when no retries are left' do - before do - allow(described_class).to receive(:mapped_directories).exactly(DockerClient::RETRY_COUNT + 1).times.and_raise(error) - end - - it 'raises the error' do - pending('RETRY COUNT is disabled') - expect { create_container }.to raise_error(error) - end - end - end - end - - describe '#create_workspace_files' do - let(:container) { double } - - before do - allow(container).to receive(:binds).at_least(:once).and_return(["#{workspace_path}:#{DockerClient::CONTAINER_WORKSPACE_PATH}"]) - end - - after { docker_client.send(:create_workspace_files, container, submission) } - - it 'creates submission-specific directories' do - expect(Dir).to receive(:mkdir).at_least(:once).and_call_original - end - - it 'copies binary files' do - submission.collect_files.select {|file| file.file_type.binary? }.each do |file| - expect(docker_client).to receive(:copy_file_to_workspace).with(container: container, file: file) - end - end - - it 'creates non-binary files' do - submission.collect_files.reject {|file| file.file_type.binary? }.each do |file| - expect(docker_client).to receive(:create_workspace_file).with(container: container, file: file) - end - end - end - - describe '#create_workspace_file' do - let(:container) { Docker::Container.send(:new, Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex) } - let(:file) { build(:file, content: 'puts 42') } - let(:file_path) { File.join(workspace_path, file.name_with_extension) } - - after { File.delete(file_path) } - - it 'creates a file' do - expect(described_class).to receive(:local_workspace_path).at_least(:once).and_return(workspace_path) - FileUtils.mkdir_p(workspace_path) - docker_client.send(:create_workspace_file, container: container, file: file) - expect(File.exist?(file_path)).to be true - expect(File.new(file_path, 'r').read).to eq(file.content) - end - end - - describe '.destroy_container' do - let(:container) { described_class.create_container(execution_environment) } - - after { described_class.destroy_container(container) } - - it 'kills running processes' do - allow(container).to receive(:kill).and_return(container) - end - - it 'releases allocated ports' do - allow(container).to receive(:port_bindings).at_least(:once).and_return(foo: [{'HostPort' => '42'}]) - expect(PortPool).to receive(:release) - end - - it 'removes the mapped directory' do - expect(described_class).to receive(:local_workspace_path).at_least(:once).and_return(workspace_path) - # !TODO Fix this - # expect(PathName).to receive(:rmtree).with(workspace_path) - end - - it 'deletes the container' do - expect(container).to receive(:delete).with(force: true, v: true).and_call_original - end - end - - describe '#execute_arbitrary_command' do - let(:execute_arbitrary_command) { docker_client.execute_arbitrary_command(command) } - - after { described_class.destroy_container(docker_client.container) } - - it 'creates a new container' do - expect(described_class).to receive(:create_container).and_call_original - execute_arbitrary_command - end - - it 'sends the command' do - allow(docker_client).to receive(:send_command).with(command, kind_of(Docker::Container)).and_return({}) - execute_arbitrary_command - end - - context 'when a socket error occurs' do - let(:error) { Excon::Errors::SocketError.new(SocketError.new) } - - context 'when retries are left' do - let(:result) { {status: 'ok', stdout: 42} } - - before do - allow(docker_client).to receive(:send_command).and_raise(error).and_return(result) - end - - it 'retries to execute the command' do - expect(execute_arbitrary_command[:stdout]).to eq(result[:stdout]) - end - end - - context 'when no retries are left' do - before do - allow(docker_client).to receive(:send_command).exactly(DockerClient::RETRY_COUNT + 1).times.and_raise(error) - end - - it 'raises the error' do - pending('retries are disabled') - # TODO: Retries is disabled - expect { execute_arbitrary_command }.to raise_error(error) - end - end - end - end - - describe '#execute_run_command' do - let(:filename) { submission.exercise.files.detect {|file| file.role == 'main_file' }.name_with_extension } - - after do - docker_client.send(:execute_run_command, submission, filename) - described_class.destroy_container(docker_client.container) - end - - it 'creates a new container' do - expect(described_class).to receive(:create_container).with(submission.execution_environment).and_call_original - end - - it 'creates the workspace files' do - expect(docker_client).to receive(:create_workspace_files) - end - - it 'executes the run command' do - pending('todo in the future') - expect(submission.execution_environment).to receive(:run_command).and_call_original - expect(docker_client).to receive(:send_command).with(kind_of(String), kind_of(Docker::Container)) - end - end - - describe '#execute_test_command' do - let(:filename) { submission.exercise.files.detect {|file| file.role == 'teacher_defined_test' || file.role == 'teacher_defined_linter' }.name_with_extension } - - after do - docker_client.send(:execute_test_command, submission, filename) - described_class.destroy_container(docker_client.container) - end - - it 'creates a new container' do - expect(described_class).to receive(:create_container).with(submission.execution_environment).and_call_original - end - - it 'creates the workspace files' do - expect(docker_client).to receive(:create_workspace_files) - end - - it 'executes the test command' do - expect(submission.execution_environment).to receive(:test_command).and_call_original - allow(docker_client).to receive(:send_command).with(kind_of(String), kind_of(Docker::Container)).and_return({}) - end - end - - describe '.generate_local_workspace_path' do - it 'includes the correct workspace root' do - expect(described_class.generate_local_workspace_path.to_s).to start_with(DockerClient::LOCAL_WORKSPACE_ROOT.to_s) - end - - it 'includes a UUID' do - expect(SecureRandom).to receive(:uuid).and_call_original - described_class.generate_local_workspace_path - end - end - - describe '.initialize_environment' do - context 'with complete configuration' do - it 'creates the file directory' do - expect(FileUtils).to receive(:mkdir_p).with(DockerClient::LOCAL_WORKSPACE_ROOT) - described_class.initialize_environment - end - end - - context 'with incomplete configuration' do - before { allow(described_class).to receive(:config).at_least(:once).and_return({}) } - - it 'raises an error' do - expect { described_class.initialize_environment }.to raise_error(DockerClient::Error) - end - end - end - - describe '.local_workspace_path' do - let(:container) { described_class.create_container(execution_environment) } - let(:local_workspace_path) { described_class.local_workspace_path(container) } - - after { described_class.destroy_container(container) } - - it 'returns a path' do - expect(local_workspace_path).to be_a(Pathname) - end - - it 'includes the correct workspace root' do - expect(local_workspace_path.to_s).to start_with(DockerClient::LOCAL_WORKSPACE_ROOT.to_s) - end - end - - describe '.mapped_directories' do - it 'returns a unique mapping' do - mapping = described_class.mapped_directories(workspace_path).first - expect(mapping).to start_with(workspace_path.to_s) - expect(mapping).to end_with(DockerClient::CONTAINER_WORKSPACE_PATH) - end - end - - describe '.mapped_ports' do - context 'with exposed ports' do - before { execution_environment.exposed_ports = [3000] } - - it 'returns a mapping' do - expect(described_class.mapped_ports(execution_environment)).to be_a(Hash) - expect(described_class.mapped_ports(execution_environment).length).to eq(1) - end - - it 'retrieves available ports' do - expect(PortPool).to receive(:available_port) - described_class.mapped_ports(execution_environment) - end - end - - context 'without exposed ports' do - it 'returns an empty mapping' do - expect(described_class.mapped_ports(execution_environment)).to eq({}) - end - end - end - - describe '#send_command' do - let(:block) { proc {} } - let(:container) { described_class.create_container(execution_environment) } - let(:send_command) { docker_client.send(:send_command, command, container, &block) } - - after do - send_command - described_class.destroy_container(container) - end - - it 'limits the execution time' do - expect(Timeout).to receive(:timeout).at_least(:once).with(kind_of(Numeric)).and_call_original - end - - it 'provides the command to be executed as input' do - pending('we are currently not using attach but rather exec.') - expect(container).to receive(:attach).with(stdin: kind_of(StringIO)) - end - - it 'calls the block' do - pending('block is no longer called, see revision 4cbf9970b13362efd4588392cafe4f7fd7cb31c3 to get information how it was done before.') - expect(block).to receive(:call) - end - - context 'when a timeout occurs' do - before do - exec_called = 0 - allow(container).to receive(:exec) do - exec_called += 1 - raise Timeout::Error if exec_called == 1 - - [[], []] - end - end - - it 'destroys the container asynchronously' do - pending('Container is destroyed, but not as expected in this test. ToDo update this test.') - expect(Concurrent::Future).to receive(:execute) - end - - it 'returns a corresponding status' do - expect(send_command[:status]).to eq(:timeout) - end - end - - context 'when the container terminates timely' do - it 'destroys the container asynchronously' do - pending('Container is destroyed, but not as expected in this test. ToDo update this test.') - expect(Concurrent::Future).to receive(:execute) - end - - it "returns the container's output" do - expect(send_command[:stderr]).to be_blank - expect(send_command[:stdout]).to start_with('user') - end - - it 'returns a corresponding status' do - expect(send_command[:status]).to eq(:ok) - end - end - end -end diff --git a/spec/lib/docker_container_mixin_spec.rb b/spec/lib/docker_container_mixin_spec.rb deleted file mode 100644 index 6f9267e0..00000000 --- a/spec/lib/docker_container_mixin_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe DockerContainerMixin do - let(:container) { Docker::Container.send(:new, Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex) } - - describe '#binds' do - let(:binds) { [] } - - it 'is defined for Docker::Container' do - expect(Docker::Container.instance_methods).to include(:binds) - end - - it 'returns the correct information' do - allow(container).to receive(:json).and_return('HostConfig' => {'Binds' => binds}) - expect(container.binds).to eq(binds) - end - end - - describe '#port_bindings' do - let(:port) { 1234 } - let(:port_bindings) { {"#{port}/tcp" => [{'HostIp' => '', 'HostPort' => port.to_s}]} } - - it 'is defined for Docker::Container' do - expect(Docker::Container.instance_methods).to include(:port_bindings) - end - - it 'returns the correct information' do - allow(container).to receive(:json).and_return('HostConfig' => {'PortBindings' => port_bindings}) - expect(container.port_bindings).to eq(port => port) - end - end -end diff --git a/spec/lib/port_pool_spec.rb b/spec/lib/port_pool_spec.rb deleted file mode 100644 index 6f38b8ab..00000000 --- a/spec/lib/port_pool_spec.rb +++ /dev/null @@ -1,57 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe PortPool do - describe '.available_port' do - it 'is synchronized' do - expect(described_class.instance_variable_get(:@mutex)).to receive(:synchronize) - described_class.available_port - end - - context 'when a port is available' do - it 'returns the port' do - expect(described_class.available_port).to be_a(Numeric) - end - - it 'removes the port from the list of available ports' do - port = described_class.available_port - expect(described_class.instance_variable_get(:@available_ports)).not_to include(port) - end - end - - context 'when no port is available' do - it 'returns the port' do - available_ports = described_class.instance_variable_get(:@available_ports) - described_class.instance_variable_set(:@available_ports, []) - expect(described_class.available_port).to be_nil - described_class.instance_variable_set(:@available_ports, available_ports) - end - end - end - - describe '.release' do - context 'when the port has been obtained earlier' do - it 'adds the port to the list of available ports' do - port = described_class.available_port - expect(described_class.instance_variable_get(:@available_ports)).not_to include(port) - described_class.release(port) - expect(described_class.instance_variable_get(:@available_ports)).to include(port) - end - end - - context 'when the port has not been obtained earlier' do - it 'does not add the port to the list of available ports' do - port = described_class.instance_variable_get(:@available_ports).sample - expect { described_class.release(port) }.not_to change { described_class.instance_variable_get(:@available_ports).length } - end - end - - context 'when the port is not included in the port range' do - it 'does not add the port to the list of available ports' do - port = nil - expect { described_class.release(port) }.not_to change { described_class.instance_variable_get(:@available_ports).length } - end - end - end -end diff --git a/spec/lib/runner/strategy/docker_container_pool_spec.rb b/spec/lib/runner/strategy/docker_container_pool_spec.rb index d785867d..23157b42 100644 --- a/spec/lib/runner/strategy/docker_container_pool_spec.rb +++ b/spec/lib/runner/strategy/docker_container_pool_spec.rb @@ -182,7 +182,7 @@ describe Runner::Strategy::DockerContainerPool do it 'returns the local part of the mount binding' do local_path = 'tmp/container20' - allow(container).to receive(:binds).and_return(["#{local_path}:/workspace"]) + allow(container).to receive(:json).and_return({HostConfig: {Binds: ["#{local_path}:/workspace"]}}.as_json) expect(container_pool.send(:local_workspace_path)).to eq(Pathname.new(local_path)) end end From 8884cdb98d3047d04f34897547b4f92d767ad341 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 8 Jun 2022 13:30:29 +0200 Subject: [PATCH 188/329] Update CodeQL workflow --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 95f44d0d..7e2ec921 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -31,7 +31,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -42,7 +42,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v1 + uses: github/codeql-action/autobuild@v2 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -56,4 +56,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 From ee8e76af07f0383dc3a37f3540fe74e2fe3e69fa Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 8 Jun 2022 16:49:43 +0200 Subject: [PATCH 189/329] Remote Submit: Add remark to check submission deadline --- app/controllers/remote_evaluation_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/remote_evaluation_controller.rb b/app/controllers/remote_evaluation_controller.rb index 0501ef51..88d74280 100644 --- a/app/controllers/remote_evaluation_controller.rb +++ b/app/controllers/remote_evaluation_controller.rb @@ -39,8 +39,8 @@ class RemoteEvaluationController < ApplicationController else { message: "Your submission was successfully scored with #{@submission.normalized_score}%. " \ - 'However, your score could not be sent to the e-Learning platform. Please reopen ' \ - 'the exercise through the e-Learning platform and try again.', + 'However, your score could not be sent to the e-Learning platform. Please check ' \ + 'the submission deadline, reopen the exercise through the e-Learning platform and try again.', status: 410, } end From 8e403ff65ab9da40996dffa56b1a3c44e1e8b2b7 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 10 Jun 2022 18:13:11 +0200 Subject: [PATCH 190/329] Poseidon: Use relative path to remove workspace directory See #1088 --- lib/runner/strategy/poseidon.rb | 3 +-- spec/lib/runner/strategy/poseidon_spec.rb | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index 477ae0f1..e6d68de7 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -120,8 +120,7 @@ class Runner::Strategy::Poseidon < Runner::Strategy # First, clean the workspace and second, copy all files to their location. # This ensures that no artifacts from a previous submission remain in the workspace. - # TODO: Switch back to clean diretory content only. See https://github.com/openHPI/poseidon/issues/42 - body = {copy: copy, delete: ['/workspace']} + body = {copy: copy, delete: ['./*']} response = self.class.http_connection.patch url, body.to_json return if response.status == 204 diff --git a/spec/lib/runner/strategy/poseidon_spec.rb b/spec/lib/runner/strategy/poseidon_spec.rb index c4806587..73259815 100644 --- a/spec/lib/runner/strategy/poseidon_spec.rb +++ b/spec/lib/runner/strategy/poseidon_spec.rb @@ -328,7 +328,7 @@ describe Runner::Strategy::Poseidon do WebMock .stub_request(:patch, "#{described_class.config[:url]}/runners/#{runner_id}/files") .with( - body: {copy: [{path: file.filepath, content: encoded_file_content}], delete: ['/workspace']}, + body: {copy: [{path: file.filepath, content: encoded_file_content}], delete: ['./*']}, headers: {'Content-Type' => 'application/json'} ) .to_return(body: response_body, status: response_status) From aaa0772c950766399bd3153b40730977dda976ee Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 15 Jun 2022 17:37:23 +0200 Subject: [PATCH 191/329] Bundle update --- Gemfile.lock | 10 +- db/schema.rb | 2709 +++++++++++++++++++++++++++++++++++++++++++++++++- yarn.lock | 190 ++-- 3 files changed, 2799 insertions(+), 110 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 18be8351..fffcedd0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -203,7 +203,7 @@ GEM hana (~> 1.3) regexp_parser (~> 2.0) uri_template (~> 0.7) - jwt (2.4.0) + jwt (2.4.1) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -238,7 +238,7 @@ GEM mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.0) - minitest (5.15.0) + minitest (5.16.0) minitest-autotest (1.1.1) minitest-server (~> 1.0) path_expander (~> 1.0) @@ -322,7 +322,7 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.2) + rails-html-sanitizer (1.4.3) loofah (~> 2.3) rails-i18n (7.0.3) i18n (>= 0.7, < 2) @@ -405,7 +405,7 @@ GEM rubocop-performance (1.14.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.14.2) + rubocop-rails (2.15.0) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -518,7 +518,7 @@ GEM will_paginate (3.3.1) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.5.4) + zeitwerk (2.6.0) PLATFORMS ruby diff --git a/db/schema.rb b/db/schema.rb index c042354f..d60b830b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -18,8 +18,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do enable_extension "plpgsql" create_table "anomaly_notifications", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "exercise_id" t.integer "exercise_collection_id" t.string "reason" @@ -34,10 +34,10 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.string "api_key" t.datetime "created_at" t.datetime "updated_at" - t.string "user_type" t.integer "user_id" t.string "push_url" t.string "check_uuid_url" + t.string "user_type" t.index ["user_type", "user_id"], name: "index_codeharbor_links_on_user_type_and_user_id" end @@ -124,8 +124,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "events", id: :serial, force: :cascade do |t| t.string "category" t.string "data" - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "exercise_id" t.integer "file_id" t.datetime "created_at", null: false @@ -165,8 +165,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "created_at" t.datetime "updated_at" t.boolean "use_anomaly_detection", default: false - t.string "user_type" t.integer "user_id" + t.string "user_type" t.index ["user_type", "user_id"], name: "index_exercise_collections_on_user_type_and_user_id" end @@ -228,6 +228,22 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "created_at" t.datetime "updated_at" t.string "role", default: "learner", null: false + t.string "gender" + t.string "age" + t.integer "skill_level_pre_java17" + t.integer "skill_level_pre_java20" + t.integer "skill_level_pre_java21" + t.integer "skill_level_pre_python20" + t.boolean "tips_group_python20" + t.boolean "linter_group_python20" + t.string "intervention_group_java21" + t.boolean "community_solution_group_java21" + t.integer "skill_level_post_java21" + t.integer "skill_level_post_python20" + t.float "points_java17" + t.float "points_java20" + t.float "points_java21" + t.float "points_python20" end create_table "file_templates", id: :serial, force: :cascade do |t| @@ -254,8 +270,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "files", id: :serial, force: :cascade do |t| t.text "content" - t.string "context_type" t.integer "context_id" + t.string "context_type" t.integer "file_id" t.integer "file_type_id" t.boolean "hidden" @@ -306,6 +322,819 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "updated_at" end + create_table "java17_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "warum_nimmst_du_am_kurs_teil" + t.text "motivation_wenn_vorgaenger_kurs_belegt" + t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" + t.text "andere_antwort" + t.text "was_ist_ziel_und_motivation_zur_belegung" + end + + create_table "java17_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java" + t.text "wie_sicher_klassen_und_objekte_in_java" + t.text "wie_sicher_kontrollstrukturen_in_java" + t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" + end + + create_table "java17_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "welche_haupt__aufgabe_hat_ein_interface" + t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" + t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" + t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" + t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" + t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" + t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" + t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" + t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" + t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" + t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" + t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" + t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" + t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" + t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" + t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" + t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" + t.text "welche_fehler.zeile_5_von_papageijava" + t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" + t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" + t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" + t.text "welche_fehler.zeile_3_von_zoojava" + t.text "welche_fehler.zeile_4_von_zoojava" + t.text "welche_fehler.zeilen_5___9_von_zoojava" + t.text "welche_fehler.zeile_11_von_zoojava" + t.text "welche_fehler.zeile_13_von_zoojava" + t.text "welche_fehler.zeile_14_von_zoojava" + t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" + end + + create_table "java17_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java_nach_w1_w2" + t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" + t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "java17_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" + t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" + end + + create_table "java17_5-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" + t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "java17_6-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "wrdest_du_diesen_kurs_weiterempfehlen" + t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" + t.text "grundstzlich_finde_ich_die_mglichkeit_aufgaben_im_team_zu_bearb" + t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" + t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" + t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" + t.text "interventions_hilfreich" + t.text "interventions_zeitpunkt" + t.text "videotelefonie.andere_teilnehmer" + t.text "videotelefonie.kursbetreuer_oder_tutoren" + t.text "videotelefonie.ich_wre_bereit_fr_das_individuelle_tutoring_durc" + t.text "videotelefonie.ich_habe_nicht_die_technische_mglichkeit_zur_vid" + t.text "vieotelefonie.ich_wrde_dieses_feature_aus_bedenken_bezglich_des" + t.text "whrend_bearbeitung_habe_ich" + t.text "wie_alt_bist_du" + t.text "welches_geschlecht_hast_du" + t.text "wrdest_du_open_hpi_weiterempfehlen" + end + + create_table "java17_6-2_generelles_feedback", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "rahmenhandlung_wnscht_du_dir_beispielsweise_mehr_rahmenhandlung" + t.text "code_ocean_wnscht_du_dir_vielleicht_umfangreichere_bungen_in_co" + t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zur_g" + end + + create_table "java17_7_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "age_group" + t.text "birth_date" + t.text "access_groups" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.integer "sessions" + t.integer "avg_session_duration" + t.decimal "total_session_duration" + t.integer "video_play_activity" + t.decimal "video_play_activity_percentage" + t.integer "video_downloads_activity" + t.decimal "video_downloads_activity_percentage" + t.integer "slide_downloads_activity" + t.decimal "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.decimal "quiz_performance" + t.integer "graded_quiz_performance" + t.decimal "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.decimal "points_percentage" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.decimal "woche_3_visited_percentage_section" + t.decimal "exkurs__modellierung_visited_percentage_section" + t.decimal "woche_4_visited_percentage_section" + t.text "exkurs__speicherverwaltung_visited_percentage_section" + t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" + t.decimal "i_like_i_wish_visited_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.decimal "woche_2_self_tests_percentage_section" + t.decimal "woche_3_self_tests_percentage_section" + t.text "exkurs__modellierung_self_tests_percentage_section" + t.integer "woche_4_self_tests_percentage_section" + t.text "exkurs__speicherverwaltung_self_tests_percentage_section" + t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" + t.text "i_like_i_wish_self_tests_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.integer "woche_3_assignments_percentage_section" + t.text "exkurs__modellierung_assignments_percentage_section" + t.integer "woche_4_assignments_percentage_section" + t.text "exkurs__speicherverwaltung_assignments_percentage_section" + t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" + t.text "i_like_i_wish_assignments_percentage_section" + t.integer "woche_1_bonus_percentage_section" + t.integer "woche_2_bonus_percentage_section" + t.integer "woche_3_bonus_percentage_section" + t.integer "exkurs__modellierung_bonus_percentage_section" + t.integer "woche_4_bonus_percentage_section" + t.text "exkurs__speicherverwaltung_bonus_percentage_section" + t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "woche_1___11_ein_erstes_programm_percentage_quiz" + t.text "woche_1___12_klassen_und_objekte_percentage_quiz" + t.text "woche_1___13_variablen_1_percentage_quiz" + t.text "woche_1___14_variablen_2_percentage_quiz" + t.text "woche_1___15_attribute_percentage_quiz" + t.text "woche_1___16_methoden_percentage_quiz" + t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" + t.text "woche_1___hausaufgabe_woche_1_percentage_quiz" + t.text "woche_2___recap_percentage_quiz" + t.text "woche_2___21_parameter_percentage_quiz" + t.text "woche_2___221_boolean_percentage_quiz" + t.text "woche_2___222_boolean_percentage_quiz" + t.text "woche_2___23_verzweigungen_percentage_quiz" + t.text "woche_2___24_schleifen_percentage_quiz" + t.text "woche_2___25_primitive_arrays_percentage_quiz" + t.text "woche_2___26_konstruktoren_percentage_quiz" + t.text "woche_2___hausaufgabe_woche_2_percentage_quiz" + t.text "woche_3___31_vererbung_percentage_quiz" + t.text "woche_3___32_sichtbarkeiten_percentage_quiz" + t.text "woche_3___33_kapselung_percentage_quiz" + t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" + t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" + t.text "woche_3___36_abstrakte_klassen_percentage_quiz" + t.text "woche_3___37_polymorphie_percentage_quiz" + t.text "woche_3___38_this_is_super_percentage_quiz" + t.text "woche_3___hausaufgabe_woche_3_percentage_quiz" + t.text "woche_4___41_objektdatentypen_percentage_quiz" + t.text "woche_4___42_type_casting_percentage_quiz" + t.text "woche_4___43_collections_percentage_quiz" + t.text "woche_4___44_foreach_schleifen_percentage_quiz" + t.text "woche_4___45_interfaces_percentage_quiz" + t.text "woche_4___hausaufgabe_woche_4_percentage_quiz" + t.text "course_code" + end + + create_table "java20_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "warum_nimmst_du_am_kurs_teil" + t.text "motivation_wenn_vorgaenger_kurs_belegt" + t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" + t.text "andere_antwort" + t.text "was_ist_ziel_und_motivation_zur_belegung" + end + + create_table "java20_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java" + t.text "wie_sicher_klassen_und_objekte_in_java" + t.text "wie_sicher_kontrollstrukturen_in_java" + t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" + t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" + end + + create_table "java20_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "welche_haupt__aufgabe_hat_ein_interface" + t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" + t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" + t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" + t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" + t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" + t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" + t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" + t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" + t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" + t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" + t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" + t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" + t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" + t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" + t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" + t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" + t.text "welche_fehler.zeile_5_von_papageijava" + t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" + t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" + t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" + t.text "welche_fehler.zeile_3_von_zoojava" + t.text "welche_fehler.zeile_4_von_zoojava" + t.text "welche_fehler.zeilen_5___9_von_zoojava" + t.text "welche_fehler.zeile_11_von_zoojava" + t.text "welche_fehler.zeile_13_von_zoojava" + t.text "welche_fehler.zeile_14_von_zoojava" + t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" + end + + create_table "java20_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java_nach_w1_w2" + t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" + t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" + t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "java20_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" + t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" + end + + create_table "java20_4-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" + t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" + t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "java20_5-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "wrdest_du_diesen_kurs_weiterempfehlen" + t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" + t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" + t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" + t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" + t.text "co_support_convention.eigenen_programme_verbessern_und_alle_hin" + t.text "co_support_convention.eigenen_programme_verbessern_und_einige_h" + t.text "co_support_convention.mich_wrde_das_feedback_in_code_ocean_zwar" + t.text "co_support_convention.das_zustzliche_feedback_in_code_ocean_wrd" + t.text "co_support_convention.feedback_zur_struktur_des_codes_ist_grund" + t.text "whrend_bearbeitung_habe_ich._mich_meistens_nur_mit_der_aufgabe_" + t.text "whrend_bearbeitung_habe_ich._nebenbei_oft_was_anderes_gemacht_d" + t.text "whrend_bearbeitung_habe_ich._mich_mal_nur_mit_der_aufgabe_besch" + t.text "whrend_bearbeitung_habe_ich._mir_das_video__die_folien_der_vorh" + t.text "whrend_bearbeitung_habe_ich._im_forum_fragen_gestellt_oder_bean" + t.text "whrend_bearbeitung_habe_ich._in_code_ocean_kommentaranfragen_vo" + t.text "wie_alt_bist_du" + t.text "welches_geschlecht_hast_du" + t.text "wrdest_du_open_hpi_weiterempfehlen" + end + + create_table "java20_5-2_generelles_feedback", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "rahmenhandlung_erzhle_uns_bitte_ein_bisschen_mehr_darber_wie_di" + t.text "code_ocean_gerne_mchten_wir_von_dir_mehr_ber_deine_nutzung_von_" + t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zum_s" + end + + create_table "java20_6_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "age_group" + t.text "birth_date" + t.text "access_groups" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.integer "sessions" + t.integer "avg_session_duration" + t.decimal "total_session_duration" + t.integer "video_play_activity" + t.decimal "video_play_activity_percentage" + t.integer "video_downloads_activity" + t.decimal "video_downloads_activity_percentage" + t.integer "slide_downloads_activity" + t.decimal "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.decimal "quiz_performance" + t.integer "graded_quiz_performance" + t.decimal "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.integer "points_percentage" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.decimal "woche_3_visited_percentage_section" + t.decimal "woche_4_visited_percentage_section" + t.text "exkurs__speicherverwaltung_visited_percentage_section" + t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" + t.decimal "i_like_i_wish_visited_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.integer "woche_2_self_tests_percentage_section" + t.integer "woche_3_self_tests_percentage_section" + t.integer "woche_4_self_tests_percentage_section" + t.text "exkurs__speicherverwaltung_self_tests_percentage_section" + t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" + t.text "i_like_i_wish_self_tests_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.integer "woche_3_assignments_percentage_section" + t.integer "woche_4_assignments_percentage_section" + t.text "exkurs__speicherverwaltung_assignments_percentage_section" + t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" + t.text "i_like_i_wish_assignments_percentage_section" + t.integer "woche_1_bonus_percentage_section" + t.integer "woche_2_bonus_percentage_section" + t.integer "woche_3_bonus_percentage_section" + t.integer "woche_4_bonus_percentage_section" + t.text "exkurs__speicherverwaltung_bonus_percentage_section" + t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "woche_1___11_ein_erstes_programm_percentage_quiz" + t.text "woche_1___12_klassen_und_objekte_percentage_quiz" + t.text "woche_1___13_variablen_1_percentage_quiz" + t.text "woche_1___14_variablen_2_percentage_quiz" + t.text "woche_1___15_attribute_percentage_quiz" + t.text "woche_1___16_methoden_percentage_quiz" + t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" + t.text "woche_1___18_hausaufgabe_percentage_quiz" + t.text "woche_1___hausaufgabe_woche_1_original_percentage_quiz" + t.text "woche_2___recap_percentage_quiz" + t.text "woche_2___21_parameter_percentage_quiz" + t.text "woche_2___221_boolean_percentage_quiz" + t.text "woche_2___222_boolean_percentage_quiz" + t.text "woche_2___23_verzweigungen_percentage_quiz" + t.text "woche_2___24_schleifen_percentage_quiz" + t.text "woche_2___25_primitive_arrays_percentage_quiz" + t.text "woche_2___26_konstruktoren_percentage_quiz" + t.text "woche_2___27_hausaufgabe_percentage_quiz" + t.text "woche_2___hausaufgabe_woche_2_original_percentage_quiz" + t.text "woche_3___31_vererbung_percentage_quiz" + t.text "woche_3___32_sichtbarkeiten_percentage_quiz" + t.text "woche_3___33_kapselung_percentage_quiz" + t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" + t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" + t.text "woche_3___36_abstrakte_klassen_percentage_quiz" + t.text "woche_3___37_polymorphie_percentage_quiz" + t.text "woche_3___38_this_is_super_percentage_quiz" + t.text "woche_3___deep_dive_konventionen_in_java_percentage_quiz" + t.text "woche_3___deep_dive_best_practices_percentage_quiz" + t.text "woche_3___39_hausaufgabe_percentage_quiz" + t.text "woche_3___hausaufgabe_woche_3_original_percentage_quiz" + t.text "woche_4___41_objektdatentypen_percentage_quiz" + t.text "woche_4___42_type_casting_percentage_quiz" + t.text "woche_4___43_collections_percentage_quiz" + t.text "woche_4___44_foreach_schleifen_percentage_quiz" + t.text "woche_4___45_interfaces_percentage_quiz" + t.text "woche_4___46_hausaufgabe_percentage_quiz" + t.text "woche_4___hausaufgabe_woche_4_original_percentage_quiz" + t.text "course_code" + end + + create_table "java21_0-1_umfrage_zum_kursstart", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.decimal "points" + t.text "wie_alt_bist_du" + t.text "was_ist_dein_primres_ziel_und_die_motivation_den_kurs_zu_belege" + t.text "andere_ziele" + t.text "in_welchem_rahmen_nimmst_du_an_dem_kurs_teil" + t.text "erwartungen_lerninhalte_und_lernziele" + t.text "kennengelernt.mooc_aggregator" + t.text "kennengelernt.zeitung_oder_zeitschrift" + t.text "kennengelernt.facebook" + t.text "kennengelernt.twitter" + t.text "kennengelernt.open_hpi_seite" + t.text "kennengelernt.freunde_oder_bekannte" + t.text "kennengelernt.linked_in" + t.text "kennengelernt.xing" + t.text "kennengelernt.andere" + t.text "geplante_zeit_pro_woche" + t.text "medien_zum_lernen.bilder_und_grafiken" + t.text "medien_zum_lernen.videos_und_animationen" + t.text "medien_zum_lernen.podcasts__audio_bcher" + t.text "medien_zum_lernen.texte_digital_nicht_ausgedruckt" + t.text "medien_zum_lernen.texte_auf_papier_ausgedruckt" + t.text "medien_zum_lernen.persnlicher_austausch_mit_anderen" + t.text "kennst_du_das_konzept_der_lerntypen" + t.text "lerntyp_relevant" + t.text "welcher_lerntyp_bist_du.visuell" + t.text "welcher_lerntyp_bist_du.haptisch_motorisch" + t.text "welcher_lerntyp_bist_du.auditiv" + t.text "welcher_lerntyp_bist_du.kommunikativ" + t.text "welcher_lerntyp_bist_du.medienorientiert" + t.text "welcher_lerntyp_bist_du.keiner_davon" + end + + create_table "java21_0-2_deine_vorkenntnisse", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.decimal "points" + t.text "vorheriger_programmierkurs.ja_genau_einen_auf_open_hpi" + t.text "vorheriger_programmierkurs.ja_mehrere_auf_open_hpi" + t.text "vorheriger_programmierkurs.ja_auf_einer_anderen_plattform" + t.text "vorheriger_programmierkurs.ja_in_prsenz_zb_in_der_schule_univer" + t.text "vorheriger_programmierkurs.nein_noch_gar_nicht" + t.text "wie_schtzt_du_deine_programmiererfahrung_im_allgemeinen_ein" + t.text "openhpi_kurs_mit_codeocean" + t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_feedback_von_anderen" + t.text "gemeinsam_entwickeln.ich_habe_anderen_schon_einmal_feedback_zu_" + t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_mit_anderen_gemeinsa" + t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_gleichzeitig_mit_and" + t.text "gemeinsam_entwickeln.nein_noch_gar_nicht" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_arrays_und_listen_m" + t.text "hast_du_zum_thema_arrays_und_listen_bereits_praktische_programm" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_queues_und_stacks_m" + t.text "hast_du_zum_thema_queues_und_stacks_bereits_praktische_programm" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_java_generics_mit" + t.text "hast_du_zum_thema_java_generics_bereits_praktische_programmiere" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_foreach_schleifen_m" + t.text "hast_du_zum_thema_foreach_schleifen_bereits_praktische_programm" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_iteratoren_mit" + t.text "hast_du_zum_thema_iteratoren_bereits_praktische_programmiererfa" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_suchen_in_listen_mi" + t.text "hast_du_zum_thema_suchen_in_listen_bereits_praktische_programmi" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sortieralgorithmen_" + t.text "hast_du_zum_thema_sortieralgorithmen_bereits_praktische_program" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_equals_mit" + t.text "hast_du_zum_thema_equals_bereits_praktische_programmiererfahrun" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_compare_to_mit" + t.text "hast_du_zum_thema_compare_to_bereits_praktische_programmiererfa" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_bestimmung_der_prog" + t.text "hast_du_zum_thema_bestimmung_der_programmlaufzeit_bereits_prakt" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_rekursion_mit" + t.text "hast_du_zum_thema_rekursion_bereits_praktische_programmiererfah" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sets_und_maps_mit" + t.text "hast_du_zum_thema_sets_und_maps_bereits_praktische_programmiere" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_trees__bume_mit" + t.text "hast_du_zum_thema_trees__bume_bereits_praktische_programmiererf" + end + + create_table "java21_2-2_umfrage_sets_maps", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "hast_du_das_gefhl_das_thema_sets_und_maps_mit_den_von_uns_angeb" + t.text "hast_du_ein_verstndnis_dafr_entwickelt_fr_welche_anwendungsflle" + t.text "wie_sicher_fhlst_du_dich_gerade_damit_sets_oder_maps_im_eigenen" + t.text "was_wrde_dir_am_meisten_helfen_die_themen_set_und_map_noch_bess" + t.text "falls_du_in_der_letzten_frage_sonstiges_geantwortet_hast_freuen" + end + + create_table "java21_3-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.decimal "points" + t.text "hast_du_deine_persnlichen_lernziele_erreicht" + t.text "wie_schtzt_du_dein_wissen_zu_dem_thema_algorithmen_und_datenstr" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfehlen_w" + t.text "die_tipps_in_code_ocean_waren_hilfreich" + t.text "die_tipps_in_code_ocean_waren_einfach_zu_finden" + t.text "die_tipps_in_code_ocean_haben_zur_jeweiligen_aufgabe_gepasst" + t.text "durch_tipps_habe_ich_seltener_frage_oder_rfc_gestellt" + t.text "die_tipps_in_code_ocean_waren_zu_sehr_auf_die_jeweilige_aufgabe" + t.text "ich_knnte_mir_vorstellen_selbst_zustzliche_tipps_fr_die_aufgabe" + t.text "hast_du_weitere_wnsche_oder_ideen_wie_wir_die_tipps_verbessern_" + t.text "nenne_1_2_anwendungsflle_fr_sets_undoder_maps_die_dir_einfallen" + t.text "nach_welcher_zeit_wrdest_du_dir_einen_solchen_hinweise_wnschen" + t.text "unabhngig_von_der_zeit_wie_hilfreich_findest_du_diese_hinweise_" + t.text "unabhngig_von_der_zeit_wie_strend_findest_du_diese_hinweise_in_" + t.text "wunschinteraktion.eine_neue_kommentaranfrage_stellen" + t.text "wunschinteraktion.antworten_auf_eine_eigene_kommentaranfragen_l" + t.text "wunschinteraktion.fremde_kommentaranfragen_lesen" + t.text "wunschinteraktion.tipps_zur_aufgabe_ansehen" + t.text "wunschinteraktion.link_zum_kursforum_auf_open_hpi" + t.text "wunschinteraktion.link_zum_zugehrigen_video_oder_selbsttest_auf" + t.text "wunschinteraktion.erinnerung_daran_eine_pause_zu_machen" + t.text "wunschinteraktion.etwas_anderes" + t.text "wunschinteraktion.gar_nichts_ich_finde_die_hinweise_nicht_gut" + t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_hinweisen_wenn_du_in_d" + t.text "ich_fand_rfc_stellen_einfach_zu_finden" + t.text "ich_wnsche_mir_die_mglichkeit_gemeinsam_eine_musterlsung_zu_ers" + t.text "ich_traue_mir_zu_eine_nderung_an_der_musterlsung_vorzuschlagen" + t.text "ich_habe_freude_daran_an_der_musterlsung_mitzuwirken" + t.text "ich_wnsche_mir_eine_mglichkeit_vorherige_versionen_der_musterls" + t.text "ich_wnsche_mir_eine_mglichkeit_in_co_darueber_zu_diskutieren" + t.text "ich_bin_nur_an_der_finalen_musterlsung_interessiert_das_mitarbe" + t.text "ich_fnde_es_gut_wenn_es_mehrere_musterlsungen_zur_selben_aufgab" + t.text "ich_vertraue_einer_solchen_musterlsung_auch_wenn_diese_nicht_du" + t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_musterlsungen" + t.text "wir_hatten_euch_dazu_angeregt_alleine_oder_gemeinsam_mit_andere" + t.text "lernlogbuch.ich_habe_das_etherpad_in_den_collab_spaces_der_plat" + t.text "lernlogbuch.ich_habe_den_dateiupload_in_den_collab_spaces_genut" + t.text "lernlogbuch.ich_habe_das_private_forum_in_den_collab_spaces_gen" + t.text "lernlogbuch.ich_habe_ein_analoges_logbuch_gefhrt_papier_holz_st" + t.text "lernlogbuch.ich_habe_ein_anderes_online_tool_oder_eine_lokale_s" + t.text "lernlogbuch.ich_habe_kein_logbuch_gefhrt" + t.text "weiteres_zum_lernlogbuch" + t.text "beispiel_set_erinnern.das_schraubenzieherset_bei_dem_unterschie" + t.text "beispiel_set_erinnern.das_hash_set_von_detectives_bei_dem_versu" + t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_500_dateneintrg" + t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_die_unterschied" + t.text "beispiel_set_erinnern.die_zahlenmenge_bei_der_alle_zahlen_nur_e" + t.text "beispiel_set_erinnern.die_unterschiedlichen_brentatzen_die_die_" + t.text "beispiel_set_erinnern.das_beispiel_mit_den_blttern_unterschiedl" + t.text "beispiel_map_erinnern.das_weltkarten_beispiel_bei_dem_jedem_lan" + t.text "beispiel_map_erinnern.das_adressbuch_beispiel_bei_dem_jeder_per" + t.text "beispiel_map_erinnern.das_beispiel_wo_jedem_charakter_wie_detek" + t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_fr_jeden_der_10" + t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_insgesamt_500_h" + t.text "beispiel_map_erinnern.das_beispiel_mit_den_unterschiedlichen_ti" + t.text "beispiel_map_erinnern.das_beispiel_bei_dem_unterschiedliche_blt" + t.text "weiteres_feedback" + end + + create_table "java21_4_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "age_group" + t.text "birth_date" + t.text "access_groups" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.integer "sessions" + t.integer "avg_session_duration" + t.decimal "total_session_duration" + t.integer "video_play_activity" + t.decimal "video_play_activity_percentage" + t.integer "video_downloads_activity" + t.decimal "video_downloads_activity_percentage" + t.integer "slide_downloads_activity" + t.decimal "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.decimal "quiz_performance" + t.integer "graded_quiz_performance" + t.decimal "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.integer "points_percentage" + t.decimal "intro_visited_percentage_section" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.decimal "i_like_i_wish_visited_percentage_section" + t.integer "intro_self_tests_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.integer "woche_2_self_tests_percentage_section" + t.text "i_like_i_wish_self_tests_percentage_section" + t.text "intro_assignments_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.text "i_like_i_wish_assignments_percentage_section" + t.text "intro_bonus_percentage_section" + t.text "woche_1_bonus_percentage_section" + t.integer "woche_2_bonus_percentage_section" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "woche_1___11_wiederholung_arrays_und_listen_percentage_quiz" + t.text "woche_1___12_queues_und_stacks_percentage_quiz" + t.text "woche_1___14_schleifen_for_each_percentage_quiz" + t.text "woche_1___16_iteratoren_while_next_percentage_quiz" + t.text "woche_1___17_suchen_in_listen_percentage_quiz" + t.text "woche_1___17_suchen_in_unsortierten_listen_fragen_zur_bung_perc" + t.text "woche_1___19_sortieralgorithmen_bubble_sort_percentage_quiz" + t.text "woche_1___113_hausaufgabe_woche_1_percentage_quiz" + t.text "woche_1___110_equals_percentage_quiz" + t.text "woche_1___111_compare_to_und_equals___e_tivity_percentage_quiz" + t.text "woche_1___112_laufzeit_big_o___e_tivity_percentage_quiz" + t.text "woche_1___111_compare_to_percentage_quiz" + t.text "woche_1___112_laufzeit_big_o_percentage_quiz" + t.text "woche_2___25_sets_teil_33_percentage_quiz" + t.text "woche_2___25_sets_teil_23_percentage_quiz" + t.text "woche_2___29_balancierte_suchbume___interaktiver_simulator_perc" + t.text "woche_2___213_graphen___e_tivity_percentage_quiz" + t.text "woche_2___22_sortieralgorithmen_quick_sort_percentage_quiz" + t.text "woche_2___21_rekursion_percentage_quiz" + t.text "woche_2___24_datenstrukturen_percentage_quiz" + t.text "woche_2___25_sets_teil_13_percentage_quiz" + t.text "woche_2___26_maps_percentage_quiz" + t.text "woche_2___28_tree_operationen_percentage_quiz" + t.text "woche_2___29_balancierte_suchbume_percentage_quiz" + t.text "woche_2___210_suchen_in_bumen_percentage_quiz" + t.text "woche_2___211_weitere_trees_percentage_quiz" + t.text "woche_2___213_graphen_percentage_quiz" + t.text "woche_2___27_trees_percentage_quiz" + t.text "woche_2___216_abschlussprfung_percentage_quiz" + t.text "course_code" + end + create_table "linter_check_runs", force: :cascade do |t| t.bigint "linter_check_id", null: false t.string "scope" @@ -336,6 +1165,1234 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["external_users_id"], name: "index_lti_parameters_on_external_users_id" end + create_table "old_java17_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "warum_nimmst_du_am_kurs_teil" + t.text "motivation_wenn_vorgaenger_kurs_belegt" + t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" + t.text "andere_antwort" + t.text "was_ist_ziel_und_motivation_zur_belegung" + end + + create_table "old_java17_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java" + t.text "wie_sicher_klassen_und_objekte_in_java" + t.text "wie_sicher_kontrollstrukturen_in_java" + t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" + end + + create_table "old_java17_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "welche_haupt__aufgabe_hat_ein_interface" + t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" + t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" + t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" + t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" + t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" + t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" + t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" + t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" + t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" + t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" + t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" + t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" + t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" + t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" + t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" + t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" + t.text "welche_fehler.zeile_5_von_papageijava" + t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" + t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" + t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" + t.text "welche_fehler.zeile_3_von_zoojava" + t.text "welche_fehler.zeile_4_von_zoojava" + t.text "welche_fehler.zeilen_5___9_von_zoojava" + t.text "welche_fehler.zeile_11_von_zoojava" + t.text "welche_fehler.zeile_13_von_zoojava" + t.text "welche_fehler.zeile_14_von_zoojava" + t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" + end + + create_table "old_java17_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java_nach_w1_w2" + t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" + t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "old_java17_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" + t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" + end + + create_table "old_java17_5-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" + t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "old_java17_6-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "wrdest_du_diesen_kurs_weiterempfehlen" + t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" + t.text "grundstzlich_finde_ich_die_mglichkeit_aufgaben_im_team_zu_bearb" + t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" + t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" + t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" + t.text "interventions_hilfreich" + t.text "interventions_zeitpunkt" + t.text "videotelefonie.andere_teilnehmer" + t.text "videotelefonie.kursbetreuer_oder_tutoren" + t.text "videotelefonie.ich_wre_bereit_fr_das_individuelle_tutoring_durc" + t.text "videotelefonie.ich_habe_nicht_die_technische_mglichkeit_zur_vid" + t.text "vieotelefonie.ich_wrde_dieses_feature_aus_bedenken_bezglich_des" + t.text "whrend_bearbeitung_habe_ich" + t.text "wie_alt_bist_du" + t.text "welches_geschlecht_hast_du" + t.text "wrdest_du_open_hpi_weiterempfehlen" + end + + create_table "old_java17_6-2_generelles_feedback", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "rahmenhandlung_wnscht_du_dir_beispielsweise_mehr_rahmenhandlung" + t.text "code_ocean_wnscht_du_dir_vielleicht_umfangreichere_bungen_in_co" + t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zur_g" + end + + create_table "old_java17_7_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "age_group" + t.text "birth_date" + t.text "access_groups" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.integer "sessions" + t.integer "avg_session_duration" + t.decimal "total_session_duration" + t.integer "video_play_activity" + t.decimal "video_play_activity_percentage" + t.integer "video_downloads_activity" + t.decimal "video_downloads_activity_percentage" + t.integer "slide_downloads_activity" + t.decimal "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.decimal "quiz_performance" + t.integer "graded_quiz_performance" + t.decimal "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.decimal "points_percentage" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.decimal "woche_3_visited_percentage_section" + t.decimal "exkurs__modellierung_visited_percentage_section" + t.decimal "woche_4_visited_percentage_section" + t.text "exkurs__speicherverwaltung_visited_percentage_section" + t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" + t.decimal "i_like_i_wish_visited_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.decimal "woche_2_self_tests_percentage_section" + t.decimal "woche_3_self_tests_percentage_section" + t.text "exkurs__modellierung_self_tests_percentage_section" + t.integer "woche_4_self_tests_percentage_section" + t.text "exkurs__speicherverwaltung_self_tests_percentage_section" + t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" + t.text "i_like_i_wish_self_tests_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.integer "woche_3_assignments_percentage_section" + t.text "exkurs__modellierung_assignments_percentage_section" + t.integer "woche_4_assignments_percentage_section" + t.text "exkurs__speicherverwaltung_assignments_percentage_section" + t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" + t.text "i_like_i_wish_assignments_percentage_section" + t.integer "woche_1_bonus_percentage_section" + t.integer "woche_2_bonus_percentage_section" + t.integer "woche_3_bonus_percentage_section" + t.integer "exkurs__modellierung_bonus_percentage_section" + t.integer "woche_4_bonus_percentage_section" + t.text "exkurs__speicherverwaltung_bonus_percentage_section" + t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "woche_1___11_ein_erstes_programm_percentage_quiz" + t.text "woche_1___12_klassen_und_objekte_percentage_quiz" + t.text "woche_1___13_variablen_1_percentage_quiz" + t.text "woche_1___14_variablen_2_percentage_quiz" + t.text "woche_1___15_attribute_percentage_quiz" + t.text "woche_1___16_methoden_percentage_quiz" + t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" + t.text "woche_1___hausaufgabe_woche_1_percentage_quiz" + t.text "woche_2___recap_percentage_quiz" + t.text "woche_2___21_parameter_percentage_quiz" + t.text "woche_2___221_boolean_percentage_quiz" + t.text "woche_2___222_boolean_percentage_quiz" + t.text "woche_2___23_verzweigungen_percentage_quiz" + t.text "woche_2___24_schleifen_percentage_quiz" + t.text "woche_2___25_primitive_arrays_percentage_quiz" + t.text "woche_2___26_konstruktoren_percentage_quiz" + t.text "woche_2___hausaufgabe_woche_2_percentage_quiz" + t.text "woche_3___31_vererbung_percentage_quiz" + t.text "woche_3___32_sichtbarkeiten_percentage_quiz" + t.text "woche_3___33_kapselung_percentage_quiz" + t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" + t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" + t.text "woche_3___36_abstrakte_klassen_percentage_quiz" + t.text "woche_3___37_polymorphie_percentage_quiz" + t.text "woche_3___38_this_is_super_percentage_quiz" + t.text "woche_3___hausaufgabe_woche_3_percentage_quiz" + t.text "woche_4___41_objektdatentypen_percentage_quiz" + t.text "woche_4___42_type_casting_percentage_quiz" + t.text "woche_4___43_collections_percentage_quiz" + t.text "woche_4___44_foreach_schleifen_percentage_quiz" + t.text "woche_4___45_interfaces_percentage_quiz" + t.text "woche_4___hausaufgabe_woche_4_percentage_quiz" + t.text "course_code" + t.index ["user_id"], name: "old_java17_7_course_report_user_id_uindex", unique: true + end + + create_table "old_java20_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "warum_nimmst_du_am_kurs_teil" + t.text "motivation_wenn_vorgaenger_kurs_belegt" + t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" + t.text "andere_antwort" + t.text "was_ist_ziel_und_motivation_zur_belegung" + end + + create_table "old_java20_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java" + t.text "wie_sicher_klassen_und_objekte_in_java" + t.text "wie_sicher_kontrollstrukturen_in_java" + t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" + t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" + end + + create_table "old_java20_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "welche_haupt__aufgabe_hat_ein_interface" + t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" + t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" + t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" + t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" + t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" + t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" + t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" + t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" + t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" + t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" + t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" + t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" + t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" + t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" + t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" + t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" + t.text "welche_fehler.zeile_5_von_papageijava" + t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" + t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" + t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" + t.text "welche_fehler.zeile_3_von_zoojava" + t.text "welche_fehler.zeile_4_von_zoojava" + t.text "welche_fehler.zeilen_5___9_von_zoojava" + t.text "welche_fehler.zeile_11_von_zoojava" + t.text "welche_fehler.zeile_13_von_zoojava" + t.text "welche_fehler.zeile_14_von_zoojava" + t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" + end + + create_table "old_java20_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_methoden_in_java_nach_w1_w2" + t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" + t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" + t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "old_java20_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" + t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" + end + + create_table "old_java20_4-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" + t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" + t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" + t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" + t.text "was_hat_dir_zum_verstaendnis_gefehlt" + end + + create_table "old_java20_5-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "wrdest_du_diesen_kurs_weiterempfehlen" + t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" + t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" + t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" + t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" + t.text "co_support_convention.eigenen_programme_verbessern_und_alle_hin" + t.text "co_support_convention.eigenen_programme_verbessern_und_einige_h" + t.text "co_support_convention.mich_wrde_das_feedback_in_code_ocean_zwar" + t.text "co_support_convention.das_zustzliche_feedback_in_code_ocean_wrd" + t.text "co_support_convention.feedback_zur_struktur_des_codes_ist_grund" + t.text "whrend_bearbeitung_habe_ich._mich_meistens_nur_mit_der_aufgabe_" + t.text "whrend_bearbeitung_habe_ich._nebenbei_oft_was_anderes_gemacht_d" + t.text "whrend_bearbeitung_habe_ich._mich_mal_nur_mit_der_aufgabe_besch" + t.text "whrend_bearbeitung_habe_ich._mir_das_video__die_folien_der_vorh" + t.text "whrend_bearbeitung_habe_ich._im_forum_fragen_gestellt_oder_bean" + t.text "whrend_bearbeitung_habe_ich._in_code_ocean_kommentaranfragen_vo" + t.text "wie_alt_bist_du" + t.text "welches_geschlecht_hast_du" + t.text "wrdest_du_open_hpi_weiterempfehlen" + end + + create_table "old_java20_5-2_generelles_feedback", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "rahmenhandlung_erzhle_uns_bitte_ein_bisschen_mehr_darber_wie_di" + t.text "code_ocean_gerne_mchten_wir_von_dir_mehr_ber_deine_nutzung_von_" + t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zum_s" + end + + create_table "old_java20_6_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "age_group" + t.text "birth_date" + t.text "access_groups" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.integer "sessions" + t.integer "avg_session_duration" + t.decimal "total_session_duration" + t.integer "video_play_activity" + t.decimal "video_play_activity_percentage" + t.integer "video_downloads_activity" + t.decimal "video_downloads_activity_percentage" + t.integer "slide_downloads_activity" + t.decimal "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.decimal "quiz_performance" + t.integer "graded_quiz_performance" + t.decimal "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.integer "points_percentage" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.decimal "woche_3_visited_percentage_section" + t.decimal "woche_4_visited_percentage_section" + t.text "exkurs__speicherverwaltung_visited_percentage_section" + t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" + t.decimal "i_like_i_wish_visited_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.integer "woche_2_self_tests_percentage_section" + t.integer "woche_3_self_tests_percentage_section" + t.integer "woche_4_self_tests_percentage_section" + t.text "exkurs__speicherverwaltung_self_tests_percentage_section" + t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" + t.text "i_like_i_wish_self_tests_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.integer "woche_3_assignments_percentage_section" + t.integer "woche_4_assignments_percentage_section" + t.text "exkurs__speicherverwaltung_assignments_percentage_section" + t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" + t.text "i_like_i_wish_assignments_percentage_section" + t.integer "woche_1_bonus_percentage_section" + t.integer "woche_2_bonus_percentage_section" + t.integer "woche_3_bonus_percentage_section" + t.integer "woche_4_bonus_percentage_section" + t.text "exkurs__speicherverwaltung_bonus_percentage_section" + t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "woche_1___11_ein_erstes_programm_percentage_quiz" + t.text "woche_1___12_klassen_und_objekte_percentage_quiz" + t.text "woche_1___13_variablen_1_percentage_quiz" + t.text "woche_1___14_variablen_2_percentage_quiz" + t.text "woche_1___15_attribute_percentage_quiz" + t.text "woche_1___16_methoden_percentage_quiz" + t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" + t.text "woche_1___18_hausaufgabe_percentage_quiz" + t.text "woche_1___hausaufgabe_woche_1_original_percentage_quiz" + t.text "woche_2___recap_percentage_quiz" + t.text "woche_2___21_parameter_percentage_quiz" + t.text "woche_2___221_boolean_percentage_quiz" + t.text "woche_2___222_boolean_percentage_quiz" + t.text "woche_2___23_verzweigungen_percentage_quiz" + t.text "woche_2___24_schleifen_percentage_quiz" + t.text "woche_2___25_primitive_arrays_percentage_quiz" + t.text "woche_2___26_konstruktoren_percentage_quiz" + t.text "woche_2___27_hausaufgabe_percentage_quiz" + t.text "woche_2___hausaufgabe_woche_2_original_percentage_quiz" + t.text "woche_3___31_vererbung_percentage_quiz" + t.text "woche_3___32_sichtbarkeiten_percentage_quiz" + t.text "woche_3___33_kapselung_percentage_quiz" + t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" + t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" + t.text "woche_3___36_abstrakte_klassen_percentage_quiz" + t.text "woche_3___37_polymorphie_percentage_quiz" + t.text "woche_3___38_this_is_super_percentage_quiz" + t.text "woche_3___deep_dive_konventionen_in_java_percentage_quiz" + t.text "woche_3___deep_dive_best_practices_percentage_quiz" + t.text "woche_3___39_hausaufgabe_percentage_quiz" + t.text "woche_3___hausaufgabe_woche_3_original_percentage_quiz" + t.text "woche_4___41_objektdatentypen_percentage_quiz" + t.text "woche_4___42_type_casting_percentage_quiz" + t.text "woche_4___43_collections_percentage_quiz" + t.text "woche_4___44_foreach_schleifen_percentage_quiz" + t.text "woche_4___45_interfaces_percentage_quiz" + t.text "woche_4___46_hausaufgabe_percentage_quiz" + t.text "woche_4___hausaufgabe_woche_4_original_percentage_quiz" + t.text "course_code" + end + + create_table "old_java21_0-1_umfrage_zum_kursstart", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.decimal "points" + t.text "wie_alt_bist_du" + t.text "was_ist_dein_primres_ziel_und_die_motivation_den_kurs_zu_belege" + t.text "andere_ziele" + t.text "in_welchem_rahmen_nimmst_du_an_dem_kurs_teil" + t.text "erwartungen_lerninhalte_und_lernziele" + t.text "kennengelernt.mooc_aggregator" + t.text "kennengelernt.zeitung_oder_zeitschrift" + t.text "kennengelernt.facebook" + t.text "kennengelernt.twitter" + t.text "kennengelernt.open_hpi_seite" + t.text "kennengelernt.freunde_oder_bekannte" + t.text "kennengelernt.linked_in" + t.text "kennengelernt.xing" + t.text "kennengelernt.andere" + t.text "geplante_zeit_pro_woche" + t.text "medien_zum_lernen.bilder_und_grafiken" + t.text "medien_zum_lernen.videos_und_animationen" + t.text "medien_zum_lernen.podcasts__audio_bcher" + t.text "medien_zum_lernen.texte_digital_nicht_ausgedruckt" + t.text "medien_zum_lernen.texte_auf_papier_ausgedruckt" + t.text "medien_zum_lernen.persnlicher_austausch_mit_anderen" + t.text "kennst_du_das_konzept_der_lerntypen" + t.text "lerntyp_relevant" + t.text "welcher_lerntyp_bist_du.visuell" + t.text "welcher_lerntyp_bist_du.haptisch_motorisch" + t.text "welcher_lerntyp_bist_du.auditiv" + t.text "welcher_lerntyp_bist_du.kommunikativ" + t.text "welcher_lerntyp_bist_du.medienorientiert" + t.text "welcher_lerntyp_bist_du.keiner_davon" + end + + create_table "old_java21_0-2_deine_vorkenntnisse", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.decimal "points" + t.text "vorheriger_programmierkurs.ja_genau_einen_auf_open_hpi" + t.text "vorheriger_programmierkurs.ja_mehrere_auf_open_hpi" + t.text "vorheriger_programmierkurs.ja_auf_einer_anderen_plattform" + t.text "vorheriger_programmierkurs.ja_in_prsenz_zb_in_der_schule_univer" + t.text "vorheriger_programmierkurs.nein_noch_gar_nicht" + t.text "wie_schtzt_du_deine_programmiererfahrung_im_allgemeinen_ein" + t.text "openhpi_kurs_mit_codeocean" + t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_feedback_von_anderen" + t.text "gemeinsam_entwickeln.ich_habe_anderen_schon_einmal_feedback_zu_" + t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_mit_anderen_gemeinsa" + t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_gleichzeitig_mit_and" + t.text "gemeinsam_entwickeln.nein_noch_gar_nicht" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_arrays_und_listen_m" + t.text "hast_du_zum_thema_arrays_und_listen_bereits_praktische_programm" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_queues_und_stacks_m" + t.text "hast_du_zum_thema_queues_und_stacks_bereits_praktische_programm" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_java_generics_mit" + t.text "hast_du_zum_thema_java_generics_bereits_praktische_programmiere" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_foreach_schleifen_m" + t.text "hast_du_zum_thema_foreach_schleifen_bereits_praktische_programm" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_iteratoren_mit" + t.text "hast_du_zum_thema_iteratoren_bereits_praktische_programmiererfa" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_suchen_in_listen_mi" + t.text "hast_du_zum_thema_suchen_in_listen_bereits_praktische_programmi" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sortieralgorithmen_" + t.text "hast_du_zum_thema_sortieralgorithmen_bereits_praktische_program" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_equals_mit" + t.text "hast_du_zum_thema_equals_bereits_praktische_programmiererfahrun" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_compare_to_mit" + t.text "hast_du_zum_thema_compare_to_bereits_praktische_programmiererfa" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_bestimmung_der_prog" + t.text "hast_du_zum_thema_bestimmung_der_programmlaufzeit_bereits_prakt" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_rekursion_mit" + t.text "hast_du_zum_thema_rekursion_bereits_praktische_programmiererfah" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sets_und_maps_mit" + t.text "hast_du_zum_thema_sets_und_maps_bereits_praktische_programmiere" + t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_trees__bume_mit" + t.text "hast_du_zum_thema_trees__bume_bereits_praktische_programmiererf" + end + + create_table "old_java21_2-2_umfrage_sets_maps", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "hast_du_das_gefhl_das_thema_sets_und_maps_mit_den_von_uns_angeb" + t.text "hast_du_ein_verstndnis_dafr_entwickelt_fr_welche_anwendungsflle" + t.text "wie_sicher_fhlst_du_dich_gerade_damit_sets_oder_maps_im_eigenen" + t.text "was_wrde_dir_am_meisten_helfen_die_themen_set_und_map_noch_bess" + t.text "falls_du_in_der_letzten_frage_sonstiges_geantwortet_hast_freuen" + end + + create_table "old_java21_3-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.decimal "points" + t.text "hast_du_deine_persnlichen_lernziele_erreicht" + t.text "wie_schtzt_du_dein_wissen_zu_dem_thema_algorithmen_und_datenstr" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfehlen_w" + t.text "die_tipps_in_code_ocean_waren_hilfreich" + t.text "die_tipps_in_code_ocean_waren_einfach_zu_finden" + t.text "die_tipps_in_code_ocean_haben_zur_jeweiligen_aufgabe_gepasst" + t.text "durch_tipps_habe_ich_seltener_frage_oder_rfc_gestellt" + t.text "die_tipps_in_code_ocean_waren_zu_sehr_auf_die_jeweilige_aufgabe" + t.text "ich_knnte_mir_vorstellen_selbst_zustzliche_tipps_fr_die_aufgabe" + t.text "hast_du_weitere_wnsche_oder_ideen_wie_wir_die_tipps_verbessern_" + t.text "nenne_1_2_anwendungsflle_fr_sets_undoder_maps_die_dir_einfallen" + t.text "nach_welcher_zeit_wrdest_du_dir_einen_solchen_hinweise_wnschen" + t.text "unabhngig_von_der_zeit_wie_hilfreich_findest_du_diese_hinweise_" + t.text "unabhngig_von_der_zeit_wie_strend_findest_du_diese_hinweise_in_" + t.text "wunschinteraktion.eine_neue_kommentaranfrage_stellen" + t.text "wunschinteraktion.antworten_auf_eine_eigene_kommentaranfragen_l" + t.text "wunschinteraktion.fremde_kommentaranfragen_lesen" + t.text "wunschinteraktion.tipps_zur_aufgabe_ansehen" + t.text "wunschinteraktion.link_zum_kursforum_auf_open_hpi" + t.text "wunschinteraktion.link_zum_zugehrigen_video_oder_selbsttest_auf" + t.text "wunschinteraktion.erinnerung_daran_eine_pause_zu_machen" + t.text "wunschinteraktion.etwas_anderes" + t.text "wunschinteraktion.gar_nichts_ich_finde_die_hinweise_nicht_gut" + t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_hinweisen_wenn_du_in_d" + t.text "ich_fand_rfc_stellen_einfach_zu_finden" + t.text "ich_wnsche_mir_die_mglichkeit_gemeinsam_eine_musterlsung_zu_ers" + t.text "ich_traue_mir_zu_eine_nderung_an_der_musterlsung_vorzuschlagen" + t.text "ich_habe_freude_daran_an_der_musterlsung_mitzuwirken" + t.text "ich_wnsche_mir_eine_mglichkeit_vorherige_versionen_der_musterls" + t.text "ich_wnsche_mir_eine_mglichkeit_in_co_darueber_zu_diskutieren" + t.text "ich_bin_nur_an_der_finalen_musterlsung_interessiert_das_mitarbe" + t.text "ich_fnde_es_gut_wenn_es_mehrere_musterlsungen_zur_selben_aufgab" + t.text "ich_vertraue_einer_solchen_musterlsung_auch_wenn_diese_nicht_du" + t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_musterlsungen" + t.text "wir_hatten_euch_dazu_angeregt_alleine_oder_gemeinsam_mit_andere" + t.text "lernlogbuch.ich_habe_das_etherpad_in_den_collab_spaces_der_plat" + t.text "lernlogbuch.ich_habe_den_dateiupload_in_den_collab_spaces_genut" + t.text "lernlogbuch.ich_habe_das_private_forum_in_den_collab_spaces_gen" + t.text "lernlogbuch.ich_habe_ein_analoges_logbuch_gefhrt_papier_holz_st" + t.text "lernlogbuch.ich_habe_ein_anderes_online_tool_oder_eine_lokale_s" + t.text "lernlogbuch.ich_habe_kein_logbuch_gefhrt" + t.text "weiteres_zum_lernlogbuch" + t.text "beispiel_set_erinnern.das_schraubenzieherset_bei_dem_unterschie" + t.text "beispiel_set_erinnern.das_hash_set_von_detectives_bei_dem_versu" + t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_500_dateneintrg" + t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_die_unterschied" + t.text "beispiel_set_erinnern.die_zahlenmenge_bei_der_alle_zahlen_nur_e" + t.text "beispiel_set_erinnern.die_unterschiedlichen_brentatzen_die_die_" + t.text "beispiel_set_erinnern.das_beispiel_mit_den_blttern_unterschiedl" + t.text "beispiel_map_erinnern.das_weltkarten_beispiel_bei_dem_jedem_lan" + t.text "beispiel_map_erinnern.das_adressbuch_beispiel_bei_dem_jeder_per" + t.text "beispiel_map_erinnern.das_beispiel_wo_jedem_charakter_wie_detek" + t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_fr_jeden_der_10" + t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_insgesamt_500_h" + t.text "beispiel_map_erinnern.das_beispiel_mit_den_unterschiedlichen_ti" + t.text "beispiel_map_erinnern.das_beispiel_bei_dem_unterschiedliche_blt" + t.text "weiteres_feedback" + end + + create_table "old_java21_4_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "age_group" + t.text "birth_date" + t.text "access_groups" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.integer "sessions" + t.integer "avg_session_duration" + t.decimal "total_session_duration" + t.integer "video_play_activity" + t.decimal "video_play_activity_percentage" + t.integer "video_downloads_activity" + t.decimal "video_downloads_activity_percentage" + t.integer "slide_downloads_activity" + t.decimal "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.decimal "quiz_performance" + t.integer "graded_quiz_performance" + t.decimal "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.integer "points_percentage" + t.decimal "intro_visited_percentage_section" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.decimal "i_like_i_wish_visited_percentage_section" + t.integer "intro_self_tests_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.integer "woche_2_self_tests_percentage_section" + t.text "i_like_i_wish_self_tests_percentage_section" + t.text "intro_assignments_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.text "i_like_i_wish_assignments_percentage_section" + t.text "intro_bonus_percentage_section" + t.text "woche_1_bonus_percentage_section" + t.integer "woche_2_bonus_percentage_section" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "woche_1___11_wiederholung_arrays_und_listen_percentage_quiz" + t.text "woche_1___12_queues_und_stacks_percentage_quiz" + t.text "woche_1___14_schleifen_for_each_percentage_quiz" + t.text "woche_1___16_iteratoren_while_next_percentage_quiz" + t.text "woche_1___17_suchen_in_listen_percentage_quiz" + t.text "woche_1___17_suchen_in_unsortierten_listen_fragen_zur_bung_perc" + t.text "woche_1___19_sortieralgorithmen_bubble_sort_percentage_quiz" + t.text "woche_1___113_hausaufgabe_woche_1_percentage_quiz" + t.text "woche_1___110_equals_percentage_quiz" + t.text "woche_1___111_compare_to_und_equals___e_tivity_percentage_quiz" + t.text "woche_1___112_laufzeit_big_o___e_tivity_percentage_quiz" + t.text "woche_1___111_compare_to_percentage_quiz" + t.text "woche_1___112_laufzeit_big_o_percentage_quiz" + t.text "woche_2___25_sets_teil_33_percentage_quiz" + t.text "woche_2___25_sets_teil_23_percentage_quiz" + t.text "woche_2___29_balancierte_suchbume___interaktiver_simulator_perc" + t.text "woche_2___213_graphen___e_tivity_percentage_quiz" + t.text "woche_2___22_sortieralgorithmen_quick_sort_percentage_quiz" + t.text "woche_2___21_rekursion_percentage_quiz" + t.text "woche_2___24_datenstrukturen_percentage_quiz" + t.text "woche_2___25_sets_teil_13_percentage_quiz" + t.text "woche_2___26_maps_percentage_quiz" + t.text "woche_2___28_tree_operationen_percentage_quiz" + t.text "woche_2___29_balancierte_suchbume_percentage_quiz" + t.text "woche_2___210_suchen_in_bumen_percentage_quiz" + t.text "woche_2___211_weitere_trees_percentage_quiz" + t.text "woche_2___213_graphen_percentage_quiz" + t.text "woche_2___27_trees_percentage_quiz" + t.text "woche_2___216_abschlussprfung_percentage_quiz" + t.text "course_code" + end + + create_table "old_python20_0-1_kennenlern_quiz", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "herzlich_willkommen_zu_diesem_kennenlern_quiz_es_handelt_sich_d" + t.text "ich_habe_schon_einmal_quellcode_in_einer_beliebigen_programmier" + t.text "ich_habe_schon_einmal_etwas_in_einer_beliebigen_programmierspra" + t.text "ich_habe_bereits_einen_online_kurs_zu_python_besucht" + t.text "ich_habe_bereits_einen_prsenz_kurs_zu_python_besucht" + t.text "ich_wei_was_sich_hinter_dem_begriff_syntax_versteckt" + t.text "ich_wei_was_sich_hinter_dem_begriff_datentyp_versteckt" + t.text "ich_wei_was_sich_hinter_dem_begriff_funktion_versteckt" + t.text "ich_wei_was_sich__hinter_dem_begriff_bibliothek_versteckt" + t.text "ich_habe_bereits_erfahrung_im_umgang_mit_python" + t.text "ich_habe_bereits_einen_kurs_mit_co_gemacht" + end + + create_table "old_python20_1-1_selbsteinschatzungs_quiz_woche_1", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "schn_dass_du_wieder_dabei_bist_bei_diesem_selbsteinschtzungs_qu" + t.text "eine_hohe_punktwertung_im_kurs_zu_erhalten_ist_mir" + t.text "besonders_wichtig_an_einem_kurs_ist_fr_mich" + t.text "ich_mchte_im_kurs" + t.text "den_austausch_mit_anderen_finde_ich" + t.text "die_lernmaterialien_einer_woche_bearbeite_ich_lieber" + t.text "nicht_gleich_auf_die_lsung_zu_kommen_empfinde_ich" + t.text "bearbeitung_effektiver_wenn" + t.text "meine_bevorzugte_herangehensweise_an_probleme_ist" + t.text "wenn_ich_ein_problem_beim_lsen_einer_aufgabe_habe_mchte_ich" + t.text "zu_wissen_dass_andere_am_gleichen_thema_arbeiten" + t.text "ber_die_lerninhalte_im_kurs_sollte_entscheiden_" + t.text "weiteres_feedback_selbsteinschaetzung" + end + + create_table "old_python20_2-1_selbsteinschatzungs_quiz_woche_2", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_ist_selbsteinschtzungsquiz_mit_grafischer_auswertung" + t.text "auswertungen_geben_mir_das_gefhl_teil_der_kurs_community_zu_sei" + t.text "das_bearbeiten_der_bisherigen_aufgaben_fiel_mir_leicht" + t.text "herausfordernde_lektion_w1.11_erstes_programmierbeispiel" + t.text "herausfordernde_lektion_w1.12_code_ocean_einfhrung" + t.text "herausfordernde_lektion_w1.13_variablen" + t.text "herausfordernde_lektion_w1.14_strings" + t.text "herausfordernde_lektion_w1.15_datentypen" + t.text "herausfordernde_lektion_w1.16_turtle_12" + t.text "herausfordernde_lektion_w1.17_turtle_22" + t.text "herausfordernde_lektion_w1.keine" + t.text "neben_lerninhalten_habe_ich.mich_aktiv_im_forum_beteiligt" + t.text "neben_lerninhalten_habe_ich.mehrere_beitrge_im_forum_gelesen" + t.text "neben_den_bereitgestellten_lerninhalten_habe_ich__mehrfachantwo" + t.text "neben_lerninhalten_habe_ich.kommentaranfragen_auf_code_ocean_be" + t.text "neben_lerninhalten_habe_ich.zustzliche_tipps_in_anspruch_genomm" + t.text "neben_lerninhalten_habe_ich.hilfe_auerhalb_des_kurses_erhalten_" + t.text "neben_lerninhalten_habe_ich.externe_lern__undoder_infomateriali" + t.text "die_diskussionbeitrge_im_forum_empfinde_ich_als" + t.text "hilfe_gebeten_hat_mir" + t.text "hilfe_gebeten_habe_ich" + t.text "die_mglichkeit_an_video_fragerunde_teilzunehmen_finde_ich" + t.text "feedback_selbsteinschaetzung" + end + + create_table "old_python20_3-1_selbsteinschatzungs_quiz_woche_3", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "richtige_kommunikationsmedium_fr_mich_gefunden" + t.text "das_bearbeiten_der_aufgaben_aus_woche_2_fiel_mir_leicht" + t.text "herausfordernde_lektion_w2.21_verzweigungen_12" + t.text "herausfordernde_lektion_w2.22_verzweigungen_22" + t.text "herausfordernde_lektion_w2.23_schleifen" + t.text "herausfordernde_lektion_w2.24_listen_13" + t.text "herausfordernde_lektion_w2.25_listen_23" + t.text "herausfordernde_lektion_w2.26_listen_33" + t.text "herausfordernde_lektion_w2.keine" + t.text "offene_inhaltliche_fragen" + t.text "forum_oder_rfc_genutzt" + t.text "warum_frage_nicht_gestellt.ich_habe_nicht_genug_zeit_oder_will_" + t.text "warum_frage_nicht_gestellt.ich_bin_nicht_motiviert_die_frage_we" + t.text "warum_frage_nicht_gestellt.die_frage_kommt_mir_nicht_wichtig_ge" + t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_mir_keiner_a" + t.text "warum_frage_nicht_gestellt.ich_wei_nicht_wen_ich_fragen_bzw_wo_" + t.text "warum_frage_nicht_gestellt.ich_kann_meine_frage_nicht_gut_genug" + t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_die_frage_zu" + t.text "warum_frage_nicht_gestellt.anderer_grund" + t.text "anderer_grund" + t.text "tipps_zu_erhalten_war" + t.text "die_aufgabe_zur_selbstreflexion_aus_woche_2_hat_mir__gefallen" + t.text "ich_plane_meine_aufgabenlsungen_weiter_zu_reflektieren_oder_tu_" + t.text "feedback_selbsteinschaetzung" + end + + create_table "old_python20_4-1_selbsteinschatzungs_quiz_woche_4", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "das_bearbeiten_der_aufgaben_aus_woche_3_fiel_mir_leicht" + t.text "herausfordernde_lektion_w3.31_funktionen_ohne_parameter" + t.text "herausfordernde_lektion_w3.32_funktionen_mit_parametern" + t.text "herausfordernde_lektion_w3.33_dictionaries" + t.text "herausfordernde_lektion_w3.34_zufallszahlen" + t.text "herausfordernde_lektion_w3.exkurs_konventionen_in_python" + t.text "herausfordernde_lektion_w3.keine" + t.text "hilfe_durch_krusteilnehmer" + t.text "hilfe_durch_dritte" + t.text "wie_bewertest_du_exkurs_und_linter" + t.text "das_feedback_des_linters_hat_mir" + t.text "das_feedback_des_linters_habe_ich" + t.text "wie_hat_dir_aufgabe_314_gefallen" + t.text "a314_verstaendnis.ich_habe_ein_besseres_verstndnis_des_linter_f" + t.text "a314_verstaendnis.ich_habe_die_relevanz_von_code_formatierungen" + t.text "a314_verstaendnis.ich_habe_mir_bewusst_gedanken_ber_die_benennu" + t.text "a314_verstaendnis.mir_ist_der_unterschied_zwischen_return__und_" + t.text "a314_verstaendnis.ich_habe_verstanden_inwiefern_funktionen_und_" + t.text "a314_verstaendnis.etwas_anderes_bitte_in_der_nchsten_frage_ergn" + t.text "a314_verstaendnis.gar_nicht" + t.text "feedback_selbsteinschaetzung" + end + + create_table "old_python20_4-3_selbsteinschatzungs_quiz_zum_kursende", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "das_bearbeiten_der_aufgaben_aus_woche_4_fiel_mir_leicht" + t.text "herausfordernde_lektion_w4.41_eingabe" + t.text "herausfordernde_lektion_w4.42_zahlenraten" + t.text "herausfordernde_lektion_w4.43_snake_spiel_13" + t.text "herausfordernde_lektion_w4.44_snake_spiel_23" + t.text "herausfordernde_lektion_w4.45_snake_spiel_33" + t.text "herausfordernde_lektion_w4.exkurs_installieren_unter_windows_10" + t.text "herausfordernde_lektion_w4.keine" + t.text "wie_erfahren_mit_python_nach_kurs" + t.text "retrospektiv_wie_viel_erfahrung_hattest_du_vorher_mit_python" + t.text "wie_viel_hast_du_gelernt" + t.text "ich_bin_stolz_darauf_was_ich_in_kurs_geschafft_habe" + t.text "feedback_selbsteinschaetzung" + end + + create_table "old_python20_6-1_snapshot_umfrage_zum_kurs", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" + t.text "wie_alt_bist_du" + t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" + t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "snake_abschlussprojekt_fand_ich" + t.text "snake_abschlussprojekt_war_hilfreich" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" + t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" + t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" + t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" + t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" + t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" + t.text "mehr_inhalte_wuenschen.keine" + t.text "kurselement_einfluss_lernerfolg.videos" + t.text "kurselement_einfluss_lernerfolg.selbsttests" + t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" + t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" + t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" + t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" + t.text "kurselement_einfluss_lernerfolg.die_reflexionen" + t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" + t.text "kurselement_einfluss_lernerfolg.keine" + t.text "naechste_schritte.weiteren_programmierkurs_belegen" + t.text "naechste_schritte.eigene_programme_schreiben" + t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" + t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" + t.text "naechste_schritte.nichts_weiter" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" + t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" + t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" + t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" + t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" + t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" + t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" + t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" + t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" + t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" + t.text "kommentare_in_co_zu_erbitten_war_fr_mich" + t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" + t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" + t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" + t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" + t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" + t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" + t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" + t.text "intevention_eine_frage_zu_stellen" + t.text "intevention_nach_hilfe_zu_fragen" + t.text "uebersetzung_linter" + t.text "wie_kann_co_weiter_untersetuetzen" + t.text "email_interview" + t.text "feedback_selbsteinschaetzung" + end + + create_table "old_python20_6-1_umfrage_zum_kurs", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" + t.text "wie_alt_bist_du" + t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" + t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "snake_abschlussprojekt_fand_ich" + t.text "snake_abschlussprojekt_war_hilfreich" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" + t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" + t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" + t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" + t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" + t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" + t.text "mehr_inhalte_wuenschen.keine" + t.text "kurselement_einfluss_lernerfolg.videos" + t.text "kurselement_einfluss_lernerfolg.selbsttests" + t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" + t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" + t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" + t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" + t.text "kurselement_einfluss_lernerfolg.die_reflexionen" + t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" + t.text "kurselement_einfluss_lernerfolg.keine" + t.text "naechste_schritte.weiteren_programmierkurs_belegen" + t.text "naechste_schritte.eigene_programme_schreiben" + t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" + t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" + t.text "naechste_schritte.nichts_weiter" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" + t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" + t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" + t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" + t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" + t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" + t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" + t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" + t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" + t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" + t.text "kommentare_in_co_zu_erbitten_war_fr_mich" + t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" + t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" + t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" + t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" + t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" + t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" + t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" + t.text "intevention_eine_frage_zu_stellen" + t.text "intevention_nach_hilfe_zu_fragen" + t.text "uebersetzung_linter" + t.text "wie_kann_co_weiter_untersetuetzen" + t.text "email_interview" + t.text "feedback_selbsteinschaetzung" + end + + create_table "old_python20_7_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "affiliated" + t.text "birth_date" + t.text "age" + t.text "age_group" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.text "sessions" + t.text "avg_session_duration" + t.text "total_session_duration" + t.text "video_play_activity" + t.text "video_play_activity_percentage" + t.text "video_downloads_activity" + t.text "video_downloads_activity_percentage" + t.text "slide_downloads_activity" + t.text "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.text "quiz_performance" + t.text "graded_quiz_performance" + t.text "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.integer "points_percentage" + t.decimal "woche_0_visited_percentage_section" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.integer "woche_3_visited_percentage_section" + t.integer "woche_4_visited_percentage_section" + t.text "zustzliche_woche_visited_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_visited_percentage_sec" + t.text "i_like_i_wish_visited_percentage_section" + t.text "lsungen_visited_percentage_section" + t.decimal "woche_0_self_tests_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.decimal "woche_2_self_tests_percentage_section" + t.integer "woche_3_self_tests_percentage_section" + t.integer "woche_4_self_tests_percentage_section" + t.text "zustzliche_woche_self_tests_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_self_tests_percentage_" + t.integer "i_like_i_wish_self_tests_percentage_section" + t.text "lsungen_self_tests_percentage_section" + t.text "woche_0_assignments_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.integer "woche_3_assignments_percentage_section" + t.integer "woche_4_assignments_percentage_section" + t.text "zustzliche_woche_assignments_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_assignments_percentage" + t.text "i_like_i_wish_assignments_percentage_section" + t.text "lsungen_assignments_percentage_section" + t.text "woche_0_bonus_percentage_section" + t.text "woche_1_bonus_percentage_section" + t.text "woche_2_bonus_percentage_section" + t.integer "woche_3_bonus_percentage_section" + t.text "woche_4_bonus_percentage_section" + t.text "zustzliche_woche_bonus_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_bonus_percentage_secti" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "lsungen_bonus_percentage_section" + t.text "woche_0___kennenlern_quiz_percentage_quiz" + t.text "woche_0___auswertung_des_kennenlern_quiz_percentage_quiz" + t.text "woche_1___selbsteinschtzungs_quiz_percentage_quiz" + t.text "woche_1___11_erstes_programmierbeispiel_percentage_quiz" + t.text "woche_1___13_variablen_percentage_quiz" + t.text "woche_1___14_strings_percentage_quiz" + t.text "woche_1___15_datentypen_percentage_quiz" + t.text "woche_1___16_turtle_12_percentage_quiz" + t.text "woche_1___17_turtle_22_percentage_quiz" + t.text "woche_1___hausaufgabe_1_percentage_quiz" + t.text "woche_2___selbsteinschtzungs_quiz_woche_2_percentage_quiz" + t.text "woche_2___21_verzweigungen_12_percentage_quiz" + t.text "woche_2___22_verzweigungen_22_percentage_quiz" + t.text "woche_2___23_schleifen_percentage_quiz" + t.text "woche_2___24_listen_13_percentage_quiz" + t.text "woche_2___25_listen_23_percentage_quiz" + t.text "woche_2___26_listen_33_percentage_quiz" + t.text "woche_2___26_reflexion_aufgabe_2_percentage_quiz" + t.text "woche_2___hausaufgabe_2_percentage_quiz" + t.text "woche_3___selbsteinschtzungs_quiz_woche_3_percentage_quiz" + t.text "woche_3___31_funktionen_ohne_parameter_percentage_quiz" + t.text "woche_3___exkurs_konventionen_percentage_quiz" + t.text "woche_3___32_funktionen_mit_parametern_percentage_quiz" + t.text "woche_3___33_dictionaries_percentage_quiz" + t.text "woche_3___34_zufallszahlen_percentage_quiz" + t.text "woche_3___34_reflexion_aufgabe_2_percentage_quiz" + t.text "woche_3___hausaufgabe_3_percentage_quiz" + t.text "woche_4___selbsteinschtzungs_quiz_woche_4_percentage_quiz" + t.text "woche_4___41_eingabe_percentage_quiz" + t.text "woche_4___44_reflexion_aufgabe_1_percentage_quiz" + t.text "woche_4___hausaufgabe_4_percentage_quiz" + t.text "woche_4___selbsteinschtzungs_quiz_zum_kursende_percentage_quiz" + t.text "i_like_i_wish___selbsteinschtzung_zum_i_like_i_wish_percentage_" + t.text "course_code" + end + create_table "proxy_exercises", id: :serial, force: :cascade do |t| t.string "title" t.string "description" @@ -348,6 +2405,572 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_proxy_exercises_on_user_type_and_user_id" end + create_table "python20_0-1_kennenlern_quiz", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "herzlich_willkommen_zu_diesem_kennenlern_quiz_es_handelt_sich_d" + t.text "ich_habe_schon_einmal_quellcode_in_einer_beliebigen_programmier" + t.text "ich_habe_schon_einmal_etwas_in_einer_beliebigen_programmierspra" + t.text "ich_habe_bereits_einen_online_kurs_zu_python_besucht" + t.text "ich_habe_bereits_einen_prsenz_kurs_zu_python_besucht" + t.text "ich_wei_was_sich_hinter_dem_begriff_syntax_versteckt" + t.text "ich_wei_was_sich_hinter_dem_begriff_datentyp_versteckt" + t.text "ich_wei_was_sich_hinter_dem_begriff_funktion_versteckt" + t.text "ich_wei_was_sich__hinter_dem_begriff_bibliothek_versteckt" + t.text "ich_habe_bereits_erfahrung_im_umgang_mit_python" + t.text "ich_habe_bereits_einen_kurs_mit_co_gemacht" + end + + create_table "python20_1-1_selbsteinschatzungs_quiz_woche_1", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "schn_dass_du_wieder_dabei_bist_bei_diesem_selbsteinschtzungs_qu" + t.text "eine_hohe_punktwertung_im_kurs_zu_erhalten_ist_mir" + t.text "besonders_wichtig_an_einem_kurs_ist_fr_mich" + t.text "ich_mchte_im_kurs" + t.text "den_austausch_mit_anderen_finde_ich" + t.text "die_lernmaterialien_einer_woche_bearbeite_ich_lieber" + t.text "nicht_gleich_auf_die_lsung_zu_kommen_empfinde_ich" + t.text "bearbeitung_effektiver_wenn" + t.text "meine_bevorzugte_herangehensweise_an_probleme_ist" + t.text "wenn_ich_ein_problem_beim_lsen_einer_aufgabe_habe_mchte_ich" + t.text "zu_wissen_dass_andere_am_gleichen_thema_arbeiten" + t.text "ber_die_lerninhalte_im_kurs_sollte_entscheiden_" + t.text "weiteres_feedback_selbsteinschaetzung" + end + + create_table "python20_2-1_selbsteinschatzungs_quiz_woche_2", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "wie_ist_selbsteinschtzungsquiz_mit_grafischer_auswertung" + t.text "auswertungen_geben_mir_das_gefhl_teil_der_kurs_community_zu_sei" + t.text "das_bearbeiten_der_bisherigen_aufgaben_fiel_mir_leicht" + t.text "herausfordernde_lektion_w1.11_erstes_programmierbeispiel" + t.text "herausfordernde_lektion_w1.12_code_ocean_einfhrung" + t.text "herausfordernde_lektion_w1.13_variablen" + t.text "herausfordernde_lektion_w1.14_strings" + t.text "herausfordernde_lektion_w1.15_datentypen" + t.text "herausfordernde_lektion_w1.16_turtle_12" + t.text "herausfordernde_lektion_w1.17_turtle_22" + t.text "herausfordernde_lektion_w1.keine" + t.text "neben_lerninhalten_habe_ich.mich_aktiv_im_forum_beteiligt" + t.text "neben_lerninhalten_habe_ich.mehrere_beitrge_im_forum_gelesen" + t.text "neben_den_bereitgestellten_lerninhalten_habe_ich__mehrfachantwo" + t.text "neben_lerninhalten_habe_ich.kommentaranfragen_auf_code_ocean_be" + t.text "neben_lerninhalten_habe_ich.zustzliche_tipps_in_anspruch_genomm" + t.text "neben_lerninhalten_habe_ich.hilfe_auerhalb_des_kurses_erhalten_" + t.text "neben_lerninhalten_habe_ich.externe_lern__undoder_infomateriali" + t.text "die_diskussionbeitrge_im_forum_empfinde_ich_als" + t.text "hilfe_gebeten_hat_mir" + t.text "hilfe_gebeten_habe_ich" + t.text "die_mglichkeit_an_video_fragerunde_teilzunehmen_finde_ich" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_3-1_selbsteinschatzungs_quiz_woche_3", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "richtige_kommunikationsmedium_fr_mich_gefunden" + t.text "das_bearbeiten_der_aufgaben_aus_woche_2_fiel_mir_leicht" + t.text "herausfordernde_lektion_w2.21_verzweigungen_12" + t.text "herausfordernde_lektion_w2.22_verzweigungen_22" + t.text "herausfordernde_lektion_w2.23_schleifen" + t.text "herausfordernde_lektion_w2.24_listen_13" + t.text "herausfordernde_lektion_w2.25_listen_23" + t.text "herausfordernde_lektion_w2.26_listen_33" + t.text "herausfordernde_lektion_w2.keine" + t.text "offene_inhaltliche_fragen" + t.text "forum_oder_rfc_genutzt" + t.text "warum_frage_nicht_gestellt.ich_habe_nicht_genug_zeit_oder_will_" + t.text "warum_frage_nicht_gestellt.ich_bin_nicht_motiviert_die_frage_we" + t.text "warum_frage_nicht_gestellt.die_frage_kommt_mir_nicht_wichtig_ge" + t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_mir_keiner_a" + t.text "warum_frage_nicht_gestellt.ich_wei_nicht_wen_ich_fragen_bzw_wo_" + t.text "warum_frage_nicht_gestellt.ich_kann_meine_frage_nicht_gut_genug" + t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_die_frage_zu" + t.text "warum_frage_nicht_gestellt.anderer_grund" + t.text "anderer_grund" + t.text "tipps_zu_erhalten_war" + t.text "die_aufgabe_zur_selbstreflexion_aus_woche_2_hat_mir__gefallen" + t.text "ich_plane_meine_aufgabenlsungen_weiter_zu_reflektieren_oder_tu_" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_4-1_selbsteinschatzungs_quiz_woche_4", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "das_bearbeiten_der_aufgaben_aus_woche_3_fiel_mir_leicht" + t.text "herausfordernde_lektion_w3.31_funktionen_ohne_parameter" + t.text "herausfordernde_lektion_w3.32_funktionen_mit_parametern" + t.text "herausfordernde_lektion_w3.33_dictionaries" + t.text "herausfordernde_lektion_w3.34_zufallszahlen" + t.text "herausfordernde_lektion_w3.exkurs_konventionen_in_python" + t.text "herausfordernde_lektion_w3.keine" + t.text "hilfe_durch_krusteilnehmer" + t.text "hilfe_durch_dritte" + t.text "wie_bewertest_du_exkurs_und_linter" + t.text "das_feedback_des_linters_hat_mir" + t.text "das_feedback_des_linters_habe_ich" + t.text "wie_hat_dir_aufgabe_314_gefallen" + t.text "a314_verstaendnis.ich_habe_ein_besseres_verstndnis_des_linter_f" + t.text "a314_verstaendnis.ich_habe_die_relevanz_von_code_formatierungen" + t.text "a314_verstaendnis.ich_habe_mir_bewusst_gedanken_ber_die_benennu" + t.text "a314_verstaendnis.mir_ist_der_unterschied_zwischen_return__und_" + t.text "a314_verstaendnis.ich_habe_verstanden_inwiefern_funktionen_und_" + t.text "a314_verstaendnis.etwas_anderes_bitte_in_der_nchsten_frage_ergn" + t.text "a314_verstaendnis.gar_nicht" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_4-3_selbsteinschatzungs_quiz_zum_kursende", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "das_bearbeiten_der_aufgaben_aus_woche_4_fiel_mir_leicht" + t.text "herausfordernde_lektion_w4.41_eingabe" + t.text "herausfordernde_lektion_w4.42_zahlenraten" + t.text "herausfordernde_lektion_w4.43_snake_spiel_13" + t.text "herausfordernde_lektion_w4.44_snake_spiel_23" + t.text "herausfordernde_lektion_w4.45_snake_spiel_33" + t.text "herausfordernde_lektion_w4.exkurs_installieren_unter_windows_10" + t.text "herausfordernde_lektion_w4.keine" + t.text "wie_erfahren_mit_python_nach_kurs" + t.text "retrospektiv_wie_viel_erfahrung_hattest_du_vorher_mit_python" + t.text "wie_viel_hast_du_gelernt" + t.text "ich_bin_stolz_darauf_was_ich_in_kurs_geschafft_habe" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_6-1_snapshot_umfrage_zum_kurs", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" + t.text "wie_alt_bist_du" + t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" + t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "snake_abschlussprojekt_fand_ich" + t.text "snake_abschlussprojekt_war_hilfreich" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" + t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" + t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" + t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" + t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" + t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" + t.text "mehr_inhalte_wuenschen.keine" + t.text "kurselement_einfluss_lernerfolg.videos" + t.text "kurselement_einfluss_lernerfolg.selbsttests" + t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" + t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" + t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" + t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" + t.text "kurselement_einfluss_lernerfolg.die_reflexionen" + t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" + t.text "kurselement_einfluss_lernerfolg.keine" + t.text "naechste_schritte.weiteren_programmierkurs_belegen" + t.text "naechste_schritte.eigene_programme_schreiben" + t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" + t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" + t.text "naechste_schritte.nichts_weiter" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" + t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" + t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" + t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" + t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" + t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" + t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" + t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" + t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" + t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" + t.text "kommentare_in_co_zu_erbitten_war_fr_mich" + t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" + t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" + t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" + t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" + t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" + t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" + t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" + t.text "intevention_eine_frage_zu_stellen" + t.text "intevention_nach_hilfe_zu_fragen" + t.text "uebersetzung_linter" + t.text "wie_kann_co_weiter_untersetuetzen" + t.text "email_interview" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_6-1_umfrage_all", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" + t.text "wie_alt_bist_du" + t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" + t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "snake_abschlussprojekt_fand_ich" + t.text "snake_abschlussprojekt_war_hilfreich" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" + t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" + t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" + t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" + t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" + t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" + t.text "mehr_inhalte_wuenschen.keine" + t.text "kurselement_einfluss_lernerfolg.videos" + t.text "kurselement_einfluss_lernerfolg.selbsttests" + t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" + t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" + t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" + t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" + t.text "kurselement_einfluss_lernerfolg.die_reflexionen" + t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" + t.text "kurselement_einfluss_lernerfolg.keine" + t.text "naechste_schritte.weiteren_programmierkurs_belegen" + t.text "naechste_schritte.eigene_programme_schreiben" + t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" + t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" + t.text "naechste_schritte.nichts_weiter" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" + t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" + t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" + t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" + t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" + t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" + t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" + t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" + t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" + t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" + t.text "kommentare_in_co_zu_erbitten_war_fr_mich" + t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" + t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" + t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" + t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" + t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" + t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" + t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" + t.text "intevention_eine_frage_zu_stellen" + t.text "intevention_nach_hilfe_zu_fragen" + t.text "uebersetzung_linter" + t.text "wie_kann_co_weiter_untersetuetzen" + t.text "email_interview" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_6-1_umfrage_for_union", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" + t.text "wie_alt_bist_du" + t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" + t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "snake_abschlussprojekt_fand_ich" + t.text "snake_abschlussprojekt_war_hilfreich" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" + t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" + t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" + t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" + t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" + t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" + t.text "mehr_inhalte_wuenschen.keine" + t.text "kurselement_einfluss_lernerfolg.videos" + t.text "kurselement_einfluss_lernerfolg.selbsttests" + t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" + t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" + t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" + t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" + t.text "kurselement_einfluss_lernerfolg.die_reflexionen" + t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" + t.text "kurselement_einfluss_lernerfolg.keine" + t.text "naechste_schritte.weiteren_programmierkurs_belegen" + t.text "naechste_schritte.eigene_programme_schreiben" + t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" + t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" + t.text "naechste_schritte.nichts_weiter" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" + t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" + t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" + t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" + t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" + t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" + t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" + t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" + t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" + t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" + t.text "kommentare_in_co_zu_erbitten_war_fr_mich" + t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" + t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" + t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" + t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" + t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" + t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" + t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" + t.text "intevention_eine_frage_zu_stellen" + t.text "intevention_nach_hilfe_zu_fragen" + t.text "uebersetzung_linter" + t.text "wie_kann_co_weiter_untersetuetzen" + t.text "email_interview" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_6-1_umfrage_zum_kurs", id: false, force: :cascade do |t| + t.text "user_id" + t.text "accessed_at" + t.text "submitted_at" + t.integer "submit_duration" + t.integer "points" + t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" + t.text "wie_alt_bist_du" + t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" + t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" + t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" + t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" + t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" + t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" + t.text "snake_abschlussprojekt_fand_ich" + t.text "snake_abschlussprojekt_war_hilfreich" + t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" + t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" + t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" + t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" + t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" + t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" + t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" + t.text "mehr_inhalte_wuenschen.keine" + t.text "kurselement_einfluss_lernerfolg.videos" + t.text "kurselement_einfluss_lernerfolg.selbsttests" + t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" + t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" + t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" + t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" + t.text "kurselement_einfluss_lernerfolg.die_reflexionen" + t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" + t.text "kurselement_einfluss_lernerfolg.keine" + t.text "naechste_schritte.weiteren_programmierkurs_belegen" + t.text "naechste_schritte.eigene_programme_schreiben" + t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" + t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" + t.text "naechste_schritte.nichts_weiter" + t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" + t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" + t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" + t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" + t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" + t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" + t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" + t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" + t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" + t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" + t.text "kommentare_in_co_zu_erbitten_war_fr_mich" + t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" + t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" + t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" + t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" + t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" + t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" + t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" + t.text "intevention_eine_frage_zu_stellen" + t.text "intevention_nach_hilfe_zu_fragen" + t.text "uebersetzung_linter" + t.text "wie_kann_co_weiter_untersetuetzen" + t.text "email_interview" + t.text "feedback_selbsteinschaetzung" + end + + create_table "python20_7_course_report", id: false, force: :cascade do |t| + t.text "user_id" + t.text "enrollment_date" + t.text "first_enrollment" + t.text "user_created" + t.text "lang" + t.text "affiliated" + t.text "birth_date" + t.text "age" + t.text "age_group" + t.text "profile_picture" + t.text "affiliation" + t.text "career_status" + t.text "highest_degree" + t.text "professional_life" + t.text "job_position" + t.text "city" + t.text "gender" + t.text "country" + t.text "main_motivation_for_joining_open_hpi" + t.text "regular_computer_use" + t.text "top_country_code" + t.text "top_country_name" + t.text "top_city" + t.integer "desktop_web_activity" + t.integer "mobile_web_activity" + t.integer "mobile_app_activity" + t.text "first_action_timestamp" + t.text "first_visited_item_timestamp" + t.text "last_action_timestamp" + t.text "last_visited_item_timestamp" + t.text "last_visited_item" + t.text "sessions" + t.text "avg_session_duration" + t.text "total_session_duration" + t.text "video_play_activity" + t.text "video_play_activity_percentage" + t.text "video_downloads_activity" + t.text "video_downloads_activity_percentage" + t.text "slide_downloads_activity" + t.text "slide_downloads_activity_percentage" + t.integer "forum_activity" + t.decimal "forum_activity_per_day" + t.integer "forum_posting_activity" + t.text "quiz_performance" + t.text "graded_quiz_performance" + t.text "ungraded_quiz_performance" + t.integer "enrollment_delta_in_days" + t.integer "forum_posts" + t.integer "forum_threads" + t.text "reactivated" + t.text "reactivated_submission_date" + t.text "confirmation_of_participation" + t.text "record_of_achievement" + t.text "qualified_certificate" + t.text "course_completed" + t.text "un_enrolled" + t.text "quantile" + t.text "top_performance" + t.integer "items_visited" + t.decimal "items_visited_percentage" + t.integer "points" + t.integer "points_percentage" + t.decimal "woche_0_visited_percentage_section" + t.decimal "woche_1_visited_percentage_section" + t.decimal "woche_2_visited_percentage_section" + t.integer "woche_3_visited_percentage_section" + t.integer "woche_4_visited_percentage_section" + t.text "zustzliche_woche_visited_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_visited_percentage_sec" + t.text "i_like_i_wish_visited_percentage_section" + t.text "lsungen_visited_percentage_section" + t.decimal "woche_0_self_tests_percentage_section" + t.decimal "woche_1_self_tests_percentage_section" + t.decimal "woche_2_self_tests_percentage_section" + t.integer "woche_3_self_tests_percentage_section" + t.integer "woche_4_self_tests_percentage_section" + t.text "zustzliche_woche_self_tests_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_self_tests_percentage_" + t.integer "i_like_i_wish_self_tests_percentage_section" + t.text "lsungen_self_tests_percentage_section" + t.text "woche_0_assignments_percentage_section" + t.integer "woche_1_assignments_percentage_section" + t.integer "woche_2_assignments_percentage_section" + t.integer "woche_3_assignments_percentage_section" + t.integer "woche_4_assignments_percentage_section" + t.text "zustzliche_woche_assignments_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_assignments_percentage" + t.text "i_like_i_wish_assignments_percentage_section" + t.text "lsungen_assignments_percentage_section" + t.text "woche_0_bonus_percentage_section" + t.text "woche_1_bonus_percentage_section" + t.text "woche_2_bonus_percentage_section" + t.integer "woche_3_bonus_percentage_section" + t.text "woche_4_bonus_percentage_section" + t.text "zustzliche_woche_bonus_percentage_section" + t.text "zusammenfassungen_und_andere_materialien_bonus_percentage_secti" + t.text "i_like_i_wish_bonus_percentage_section" + t.text "lsungen_bonus_percentage_section" + t.text "woche_0___kennenlern_quiz_percentage_quiz" + t.text "woche_0___auswertung_des_kennenlern_quiz_percentage_quiz" + t.text "woche_1___selbsteinschtzungs_quiz_percentage_quiz" + t.text "woche_1___11_erstes_programmierbeispiel_percentage_quiz" + t.text "woche_1___13_variablen_percentage_quiz" + t.text "woche_1___14_strings_percentage_quiz" + t.text "woche_1___15_datentypen_percentage_quiz" + t.text "woche_1___16_turtle_12_percentage_quiz" + t.text "woche_1___17_turtle_22_percentage_quiz" + t.text "woche_1___hausaufgabe_1_percentage_quiz" + t.text "woche_2___selbsteinschtzungs_quiz_woche_2_percentage_quiz" + t.text "woche_2___21_verzweigungen_12_percentage_quiz" + t.text "woche_2___22_verzweigungen_22_percentage_quiz" + t.text "woche_2___23_schleifen_percentage_quiz" + t.text "woche_2___24_listen_13_percentage_quiz" + t.text "woche_2___25_listen_23_percentage_quiz" + t.text "woche_2___26_listen_33_percentage_quiz" + t.text "woche_2___26_reflexion_aufgabe_2_percentage_quiz" + t.text "woche_2___hausaufgabe_2_percentage_quiz" + t.text "woche_3___selbsteinschtzungs_quiz_woche_3_percentage_quiz" + t.text "woche_3___31_funktionen_ohne_parameter_percentage_quiz" + t.text "woche_3___exkurs_konventionen_percentage_quiz" + t.text "woche_3___32_funktionen_mit_parametern_percentage_quiz" + t.text "woche_3___33_dictionaries_percentage_quiz" + t.text "woche_3___34_zufallszahlen_percentage_quiz" + t.text "woche_3___34_reflexion_aufgabe_2_percentage_quiz" + t.text "woche_3___hausaufgabe_3_percentage_quiz" + t.text "woche_4___selbsteinschtzungs_quiz_woche_4_percentage_quiz" + t.text "woche_4___41_eingabe_percentage_quiz" + t.text "woche_4___44_reflexion_aufgabe_1_percentage_quiz" + t.text "woche_4___hausaufgabe_4_percentage_quiz" + t.text "woche_4___selbsteinschtzungs_quiz_zum_kursende_percentage_quiz" + t.text "i_like_i_wish___selbsteinschtzung_zum_i_like_i_wish_percentage_" + t.text "course_code" + end + + create_table "r_java21_tips", id: false, force: :cascade do |t| + t.integer "user_id" + t.string "user_gender" + t.string "age" + t.integer "skill_level_pre_java17" + t.integer "skill_level_pre_java20" + t.integer "skill_level_pre_java21" + t.integer "skill_level_pre_python20" + t.boolean "tips_group_python20" + t.boolean "linter_group_python20" + t.string "intervention_group_java21" + t.boolean "community_solution_group_java21" + t.integer "skill_level_post_java21" + t.integer "skill_level_post_python20" + t.float "points_java17" + t.float "points_java20" + t.float "points_java21" + t.float "points_python20" + t.integer "event_id" + t.string "event_category" + t.string "tip_id" + t.integer "exercise_id" + t.integer "file_id" + t.interval "working_time" + t.float "max_score" + t.float "max_reachable_points" + end + create_table "remote_evaluation_mappings", id: :serial, force: :cascade do |t| t.integer "user_id", null: false t.integer "exercise_id", null: false @@ -390,8 +3013,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "searches", id: :serial, force: :cascade do |t| t.integer "exercise_id", null: false - t.string "user_type", null: false t.integer "user_id", null: false + t.string "user_type", null: false t.string "search" t.datetime "created_at" t.datetime "updated_at" @@ -447,8 +3070,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "subscriptions", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "request_for_comment_id" t.string "subscription_type" t.datetime "created_at", null: false @@ -513,10 +3136,57 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_tips_on_user" end + create_table "tmp", id: false, force: :cascade do |t| + t.integer "user_id" + t.string "user_gender" + t.string "age" + t.integer "skill_level_pre_java17" + t.integer "skill_level_pre_java20" + t.integer "skill_level_pre_java21" + t.integer "skill_level_pre_python20" + t.boolean "tips_group_python20" + t.boolean "linter_group_python20" + t.string "intervention_group_java21" + t.boolean "community_solution_group_java21" + t.integer "skill_level_post_java21" + t.integer "skill_level_post_python20" + t.float "points_java17" + t.float "points_java20" + t.float "points_java21" + t.float "points_python20" + t.integer "exercise_id" + t.integer "rfc_id" + end + + create_table "tmp3", id: false, force: :cascade do |t| + t.integer "user_id" + t.string "user_gender" + t.string "age" + t.integer "skill_level_pre_java17" + t.integer "skill_level_pre_java20" + t.integer "skill_level_pre_java21" + t.integer "skill_level_pre_python20" + t.boolean "tips_group_python20" + t.boolean "linter_group_python20" + t.string "intervention_group_java21" + t.boolean "community_solution_group_java21" + t.integer "skill_level_post_java21" + t.integer "skill_level_post_python20" + t.float "points_java17" + t.float "points_java20" + t.float "points_java21" + t.float "points_python20" + t.integer "exercise_id" + t.float "tip_count_per_exercise" + t.bigint "tip_count" + t.decimal "avg_tips_per_exercise" + t.decimal "relative_tip_count" + end + create_table "user_exercise_feedbacks", id: :serial, force: :cascade do |t| t.integer "exercise_id", null: false - t.string "user_type", null: false t.integer "user_id", null: false + t.string "user_type", null: false t.integer "difficulty" t.integer "working_time_seconds" t.string "feedback_text" @@ -529,8 +3199,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "user_exercise_interventions", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "exercise_id" t.integer "intervention_id" t.integer "accumulated_worktime_s" @@ -540,8 +3210,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "user_proxy_exercise_exercises", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "proxy_exercise_id" t.integer "exercise_id" t.datetime "created_at" @@ -552,6 +3222,25 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_user_proxy_exercise_exercises_on_user" end + create_table "wk2020_until_rfc_reply", id: false, force: :cascade do |t| + t.integer "user_id" + t.integer "exercise_id" + t.interval "working_time_until_rfc_reply" + end + + create_table "wk2020_with_wk_until_rfc", id: false, force: :cascade do |t| + t.string "external_user_id", limit: 255 + t.integer "user_id" + t.integer "exercise_id" + t.float "max_score" + t.float "max_reachable_points" + t.interval "working_time" + t.interval "working_time_until_rfc" + t.interval "working_time_until_rfc_reply" + t.time "percentile75" + t.time "percentile90" + end + add_foreign_key "community_solution_contributions", "community_solution_locks" add_foreign_key "community_solution_contributions", "community_solutions" add_foreign_key "community_solution_contributions", "study_groups" diff --git a/yarn.lock b/yarn.lock index ad420a61..3c0e6dee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,14 +18,14 @@ "@babel/highlight" "^7.16.7" "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.5.tgz#acac0c839e317038c73137fbb6ef71a1d6238471" + integrity sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg== "@babel/core@^7.15.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" - integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000" + integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" @@ -33,10 +33,10 @@ "@babel/helper-compilation-targets" "^7.18.2" "@babel/helper-module-transforms" "^7.18.0" "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.0" + "@babel/parser" "^7.18.5" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/traverse" "^7.18.5" + "@babel/types" "^7.18.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -258,10 +258,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.18.0": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" - integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== +"@babel/parser@^7.16.7", "@babel/parser@^7.18.5": + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c" + integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": version "7.17.12" @@ -643,9 +643,9 @@ babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.18.0": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz#3d6fd9868c735cce8f38d6ae3a407fb7e61e6d46" - integrity sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg== + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz#87f11c44fbfd3657be000d4897e192d9cb535996" + integrity sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q== dependencies: "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-module-transforms" "^7.18.0" @@ -670,9 +670,9 @@ "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-new-target@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz#10842cd605a620944e81ea6060e9e65c265742e3" - integrity sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w== + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz#8c228c4a07501dd12c95c5f23d1622131cc23931" + integrity sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg== dependencies: "@babel/helper-plugin-utils" "^7.17.12" @@ -714,9 +714,9 @@ "@babel/helper-plugin-utils" "^7.17.12" "@babel/plugin-transform-runtime@^7.15.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz#04637de1e45ae8847ff14b9beead09c33d34374d" - integrity sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg== + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz#f4d3188ba6a8815793993c71c2c225d0ee1d7743" + integrity sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/helper-plugin-utils" "^7.17.12" @@ -884,10 +884,10 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" - integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.18.5": + version "7.18.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.5.tgz#94a8195ad9642801837988ab77f36e992d9a20cd" + integrity sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA== dependencies: "@babel/code-frame" "^7.16.7" "@babel/generator" "^7.18.2" @@ -895,12 +895,12 @@ "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.2" + "@babel/parser" "^7.18.5" + "@babel/types" "^7.18.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.4.4": +"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4", "@babel/types@^7.4.4": version "7.18.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== @@ -1102,9 +1102,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.40" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.40.tgz#76ee88ae03650de8064a6cf75b8d95f9f4a16090" - integrity sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg== + version "17.0.44" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.44.tgz#16dd0bb5338f016d8ca10631789f0d0612fe5d5b" + integrity sha512-gWYiOlu6Y4oyLYBvsJAPlwHbC8H4tX+tLsHy6Ee976wedwwZKrG2hFl3Y/HiH6bIyLTbDWQexQF/ohwKkOpUCg== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1745,7 +1745,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.6.4: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.20.4, browserslist@^4.6.4: version "4.20.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477" integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw== @@ -1903,9 +1903,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.30001349: - version "1.0.30001349" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001349.tgz#90740086a2eb2e825084944169d313c9793aeba4" - integrity sha512-VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw== + version "1.0.30001354" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001354.tgz#95c5efdb64148bb4870771749b9a619304755ce5" + integrity sha512-mImKeCkyGDAHNywYFA4bqnLAzTUvVkqPvhY4DV47X+Gl2c5Z8c3KNETnXp14GQt11LvxE8AwjzGxJ+rsikiOzg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2194,17 +2194,17 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.22.8" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.8.tgz#46fa34ce1ddf742acd7f95f575f66bbb21e05d62" - integrity sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg== + version "3.23.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.1.tgz#23d44d9f209086e60dabf9130cea7719af6e199b" + integrity sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A== dependencies: - browserslist "^4.20.3" + browserslist "^4.20.4" semver "7.0.0" core-js@^3.16.2: - version "3.22.8" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.8.tgz#23f860b1fe60797cc4f704d76c93fea8a2f60631" - integrity sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA== + version "3.23.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.1.tgz#9f9a9255115f62c512db56d567f636da32ca0b78" + integrity sha512-wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w== core-util-is@~1.0.0: version "1.0.3" @@ -2955,9 +2955,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.147: - version "1.4.147" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.147.tgz#1ecf318737b21ba1e5b53319eb1edf8143892270" - integrity sha512-czclPqxLMPqPMkahKcske4TaS5lcznsc26ByBlEFDU8grTBVK9C5W6K9I6oEEhm4Ai4jTihGnys90xY1yjXcRg== + version "1.4.156" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.156.tgz#fc398e1bfbe586135351ebfaf198473a82923af5" + integrity sha512-/Wj5NC7E0wHaMCdqxWz9B0lv7CcycDTiHyXCtbbu3pXM9TV2AOp8BtMqkVuqvJNdEvltBG6LxT2Q+BxY4LUCIA== elliptic@^6.5.3: version "6.5.4" @@ -3474,13 +3474,13 @@ get-caller-file@^2.0.1: integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-stream@^4.0.0: version "4.1.0" @@ -6330,14 +6330,14 @@ robust-predicates@^3.0.0: run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== dependencies: aproba "^1.1.1" rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -6352,7 +6352,7 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== dependencies: ret "~0.1.10" @@ -6373,9 +6373,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.52.2" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.2.tgz#cd1f03e0e7be5bb2cebcf1c34d735f087d790936" - integrity sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ== + version "1.52.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.3.tgz#b7cc7ffea2341ccc9a0c4fd372bf1b3f9be1b6cb" + integrity sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -6416,7 +6416,7 @@ schema-utils@^3.0.0: select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^1.10.8: version "1.10.14" @@ -6483,7 +6483,7 @@ serialize-javascript@^5.0.1: serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" batch "0.6.1" @@ -6506,7 +6506,7 @@ serve-static@1.15.0: set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" @@ -6521,7 +6521,7 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.1.0: version "1.1.0" @@ -6551,14 +6551,14 @@ shallow-clone@^3.0.0: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== side-channel@^1.0.4: version "1.0.4" @@ -6577,7 +6577,7 @@ signal-exit@^3.0.0: simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== dependencies: is-arrayish "^0.3.1" @@ -6634,7 +6634,7 @@ sockjs@^0.3.21: sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== dependencies: is-plain-obj "^1.0.0" @@ -6680,7 +6680,7 @@ source-map-url@^0.4.0: source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" @@ -6720,7 +6720,7 @@ split-string@^3.0.1, split-string@^3.0.2: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssri@^6.0.1: version "6.0.2" @@ -6744,7 +6744,7 @@ stable@^0.1.8: static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== dependencies: define-property "^0.2.5" object-copy "^0.1.0" @@ -6757,7 +6757,7 @@ statuses@2.0.1: "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== stream-browserify@^2.0.1: version "2.0.2" @@ -6794,7 +6794,7 @@ stream-shift@^1.0.0: strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" @@ -6840,7 +6840,7 @@ string_decoder@~1.1.1: strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" @@ -6854,7 +6854,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== style-loader@^1.3.0: version "1.3.0" @@ -6975,9 +6975,9 @@ terser@^4.1.2: source-map-support "~0.5.12" terser@^5.3.4: - version "5.14.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" - integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== + version "5.14.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" + integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -7007,29 +7007,29 @@ timers-browserify@^2.0.4: timsort@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -7069,7 +7069,7 @@ tslib@^1.9.3: tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== type-is@~1.6.18: version "1.6.18" @@ -7082,7 +7082,7 @@ type-is@~1.6.18: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== unbox-primitive@^1.0.2: version "1.0.2" @@ -7135,12 +7135,12 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== unique-filename@^1.1.1: version "1.1.1" @@ -7159,17 +7159,17 @@ unique-slug@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== unquote@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -7189,7 +7189,7 @@ uri-js@^4.2.2: urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== url-parse@^1.5.10: version "1.5.10" @@ -7202,7 +7202,7 @@ url-parse@^1.5.10: url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== dependencies: punycode "1.3.2" querystring "0.2.0" @@ -7215,7 +7215,7 @@ use@^3.1.0: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util.promisify@~1.0.0: version "1.0.1" @@ -7230,7 +7230,7 @@ util.promisify@~1.0.0: util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== dependencies: inherits "2.0.1" @@ -7244,7 +7244,7 @@ util@^0.11.0: utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^3.3.2: version "3.4.0" @@ -7264,7 +7264,7 @@ v8-compile-cache@^2.1.1: vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vendors@^1.0.0: version "1.0.4" @@ -7274,7 +7274,7 @@ vendors@^1.0.0: vis@^4.21.0: version "4.21.0" resolved "https://registry.yarnpkg.com/vis/-/vis-4.21.0.tgz#dd71638bff7f6495d00bc9f40c253526133ded6b" - integrity sha1-3XFji/9/ZJXQC8n0DCU1JhM97Ws= + integrity sha512-jonDXTGm2mFU/X6Kg9pvkZEQtXh2J6+NlDJD1tDP7TDCFy+qNeKlsTcXKQtv4nAtUIiKo6sphCt4kbRlEKw75A== dependencies: emitter-component "^1.1.1" hammerjs "^2.0.8" @@ -7473,7 +7473,7 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" @@ -7506,7 +7506,7 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^6.2.1: version "6.2.2" From 0a3b4a8129dcc372ebc75218efbcd4b3880cf889 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 15 Jun 2022 17:39:20 +0200 Subject: [PATCH 192/329] Fix Rubocop offense --- app/controllers/exercises_controller.rb | 2 +- db/seeds.rb | 2 +- spec/uploaders/file_uploader_spec.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 29310ac4..f8d82147 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -176,7 +176,7 @@ class ExercisesController < ApplicationController ActiveRecord::Base.transaction do exercise = ::ProformaService::Import.call(zip: tempfile, user: user) exercise.save! - return render json: {}, status: :created + render json: {}, status: :created end rescue Proforma::ExerciseNotOwned render json: {}, status: :unauthorized diff --git a/db/seeds.rb b/db/seeds.rb index bd1e5599..3136b9df 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -23,7 +23,7 @@ Rails.application.eager_load! (ApplicationRecord.descendants - [ActiveRecord::SchemaMigration, User]).each(&:delete_all) # delete file uploads -FileUtils.rm_rf(Rails.root.join('public/uploads')) +FileUtils.rm_rf(Rails.public_path.join('uploads')) # load environment-dependent seeds load(Rails.root.join("db/seeds/#{Rails.env}.rb")) diff --git a/spec/uploaders/file_uploader_spec.rb b/spec/uploaders/file_uploader_spec.rb index 3bca7f14..95e0c5fb 100644 --- a/spec/uploaders/file_uploader_spec.rb +++ b/spec/uploaders/file_uploader_spec.rb @@ -11,7 +11,7 @@ describe FileUploader do after { uploader.remove! } it 'uses the specified storage directory' do - expect(uploader.file.path).to start_with(Rails.root.join('public', uploader.store_dir).to_s) + expect(uploader.file.path).to start_with(Rails.public_path.join(uploader.store_dir).to_s) expect(uploader.file.path).to end_with(file_path.basename.to_s) end From ac170e8fd7437e7a833dd6351329348f39337b9d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 17 Jun 2022 00:04:05 +0200 Subject: [PATCH 193/329] Allow images in augmentStacktraceInOutput --- app/assets/javascripts/editor/editor.js.erb | 9 +++++++-- app/assets/javascripts/editor/evaluation.js | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 2af1c3a7..4437d88a 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -652,12 +652,17 @@ var CodeOceanEditor = { let matches; - let augmented_text = text; + // Switch both lines below to enable the output of images and render tags. + // Also consider `printOutput` in evaluation.js + + // let augmented_text = element.text(); + let augmented_text = element.html(); while (matches = this.tracepositions_regex.exec(text)) { const frame = $('div.frame[data-filename="' + matches[1] + '"]') if (frame.length > 0) { - augmented_text = augmented_text.replace(new RegExp(matches[0], 'g'), "" + matches[0] + ""); + // augmented_text = augmented_text.replace(new RegExp(matches[0], 'g'), "" + matches[0] + ""); + augmented_text = augmented_text.replace(new RegExp(_.unescape(matches[0]), 'g'), "" + matches[0] + ""); } } element.html(augmented_text); diff --git a/app/assets/javascripts/editor/evaluation.js b/app/assets/javascripts/editor/evaluation.js index 922ba63d..6fbec44a 100644 --- a/app/assets/javascripts/editor/evaluation.js +++ b/app/assets/javascripts/editor/evaluation.js @@ -212,7 +212,8 @@ CodeOceanEditorEvaluation = { } var element = this.findOrCreateOutputElement(index); - // Switch all four lines below to enable the output of images and render tags + // Switch all four lines below to enable the output of images and render tags. + // Also consider `augmentStacktraceInOutput` in editor.js.erb if (!colorize) { if (output.stdout !== undefined && output.stdout !== '') { output.stdout = output.stdout.replace(this.nonPrintableRegEx, "") From 3844ec0190e00acd0e8707950272acf4cadbb0a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 03:01:43 +0000 Subject: [PATCH 194/329] Bump pg from 1.3.5 to 1.4.0 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.5 to 1.4.0. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.5...v1.4.0) --- updated-dependencies: - dependency-name: pg 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 fffcedd0..a18e59f1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -273,7 +273,7 @@ GEM parser (3.1.2.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.3.5) + pg (1.4.0) prometheus_exporter (2.0.3) webrick pry (0.13.1) From 21275dd53b8fc1344140c43f7c6e39cce92e4570 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Jun 2022 03:01:10 +0000 Subject: [PATCH 195/329] Bump selenium-webdriver from 4.2.1 to 4.3.0 Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.2.1 to 4.3.0. - [Release notes](https://github.com/SeleniumHQ/selenium/releases) - [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES) - [Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.3.0) --- updated-dependencies: - dependency-name: selenium-webdriver 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 a18e59f1..a34fd99a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -429,7 +429,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - selenium-webdriver (4.2.1) + selenium-webdriver (4.3.0) childprocess (>= 0.5, < 5.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) From a5a26890221dcee2b50196ab3bce1f37d334b55d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jun 2022 03:01:03 +0000 Subject: [PATCH 196/329] Bump rubocop-rails from 2.15.0 to 2.15.1 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.15.0 to 2.15.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.15.0...v2.15.1) --- updated-dependencies: - dependency-name: rubocop-rails dependency-type: direct:development 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 a18e59f1..4bbf8157 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -238,7 +238,7 @@ GEM mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.0) - minitest (5.16.0) + minitest (5.16.1) minitest-autotest (1.1.1) minitest-server (~> 1.0) path_expander (~> 1.0) @@ -405,7 +405,7 @@ GEM rubocop-performance (1.14.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.15.0) + rubocop-rails (2.15.1) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -492,7 +492,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.1.0) + unicode-display_width (2.2.0) uri_template (0.7.0) web-console (4.2.0) actionview (>= 6.0.0) From 3d6c3f6319603e3222ab4183d097e9de96bbea44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jun 2022 03:02:21 +0000 Subject: [PATCH 197/329] Bump pg from 1.4.0 to 1.4.1 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.0 to 1.4.1. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.0...v1.4.1) --- updated-dependencies: - dependency-name: pg 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 a18e59f1..dbb8426c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -273,7 +273,7 @@ GEM parser (3.1.2.0) ast (~> 2.4.1) path_expander (1.1.0) - pg (1.4.0) + pg (1.4.1) prometheus_exporter (2.0.3) webrick pry (0.13.1) From 279d79d0dcdf34bc782820b6d3de3ff92f259680 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jun 2022 03:05:06 +0000 Subject: [PATCH 198/329] Bump d3 from 7.4.4 to 7.5.0 Bumps [d3](https://github.com/d3/d3) from 7.4.4 to 7.5.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.4.4...v7.5.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 1c9c8da5..f3a04df2 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.4.4", + "d3": "^7.5.0", "d3-tip": "^0.9.1", "highlight.js": "^11.5.1", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 3c0e6dee..ecffd98d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2702,10 +2702,10 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.4.4: - version "7.4.4" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.4.4.tgz#bfbf87487c37d3196efebd5a63e3a0ed8299d8ff" - integrity sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ== +d3@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.5.0.tgz#495a2eb30159c34ad54dacf872ac056dd763f3ae" + integrity sha512-b0hUpzWOI99VOek1VpmARF67izlrvd6C83wAAP+Wm7c3Prx7080W26ETt51XTiUn5HDdgVytjrz1UX/0P48VdQ== dependencies: d3-array "3" d3-axis "3" From 94891fa7f60727d2f62b289b3b6054aa86e39d04 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 27 Jun 2022 11:09:18 +0200 Subject: [PATCH 199/329] Always use full file path for CodeOceanEditor.active_file --- app/assets/javascripts/editor/editor.js.erb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 4437d88a..50035ba4 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -366,11 +366,9 @@ var CodeOceanEditor = { } filesInstance.jstree(filesInstance.data('entries')); filesInstance.on('click', 'li.jstree-leaf > a', function (event) { - this.setActiveFile( - $(event.target).parent().text(), - parseInt($(event.target).parent().attr('id')) - ); - var frame = $('[data-file-id="' + this.active_file.id + '"]').parent(); + const file_id = parseInt($(event.target).parent().attr('id')); + const frame = $('[data-file-id="' + file_id + '"]').parent(); + this.setActiveFile(frame.data('filename'), file_id); this.showFrame(frame); this.toggleButtonStates(); }.bind(this)); From 3b29c7e521dc0aed4f03e86fce8fba6c19722db1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Jun 2022 03:01:54 +0000 Subject: [PATCH 200/329] Bump rubytree from 1.0.2 to 2.0.0 Bumps [rubytree](https://github.com/evolve75/RubyTree) from 1.0.2 to 2.0.0. - [Release notes](https://github.com/evolve75/RubyTree/releases) - [Changelog](https://github.com/evolve75/RubyTree/blob/master/API-CHANGES.md) - [Commits](https://github.com/evolve75/RubyTree/compare/R1.0.2...R2.0.0) --- updated-dependencies: - dependency-name: rubytree dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 848909f0..22703c65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -415,9 +415,8 @@ GEM ruby-vips (2.1.4) ffi (~> 1.12) ruby2_keywords (0.0.5) - rubytree (1.0.2) - json (~> 2.6.1) - structured_warnings (~> 0.4.0) + rubytree (2.0.0) + json (~> 2.0, > 2.3.1) rubyzip (2.3.2) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) @@ -475,7 +474,6 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.0.7) - structured_warnings (0.4.0) telegraf (2.1.0) influxdb temple (0.8.2) From d3f283c4e7de24a067cf350b60e46bddcf28b50b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 27 Jun 2022 12:04:11 +0200 Subject: [PATCH 201/329] Update usage of RubyTree to avoid deprecated methods --- lib/file_tree.rb | 6 +++--- spec/lib/file_tree_spec.rb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/file_tree.rb b/lib/file_tree.rb index 6b0d8dcd..405f5c6f 100644 --- a/lib/file_tree.rb +++ b/lib/file_tree.rb @@ -45,8 +45,8 @@ class FileTree icon: node_icon(node), id: node.content.try(:ancestor_id), state: { - disabled: !node.is_leaf?, - opened: !node.is_leaf?, + disabled: !node.leaf?, + opened: !node.leaf?, }, text: node.name, } @@ -54,7 +54,7 @@ class FileTree private :map_to_js_tree def node_icon(node) - if node.is_leaf? && !node.is_root? + if node.leaf? && !node.root? file_icon(node.content) else folder_icon diff --git a/spec/lib/file_tree_spec.rb b/spec/lib/file_tree_spec.rb index 8b053e74..15066f64 100644 --- a/spec/lib/file_tree_spec.rb +++ b/spec/lib/file_tree_spec.rb @@ -90,7 +90,7 @@ describe FileTree do end it 'creates tree nodes for intermediary path segments' do - expect(file_tree.instance_variable_get(:@root).reject(&:content).reject(&:is_root?).map(&:name)).to eq(files.first.path.split('/')) + expect(file_tree.instance_variable_get(:@root).reject(&:content).reject(&:root?).map(&:name)).to eq(files.first.path.split('/')) end end From 5535917bc717bc533d446bfc08959a6780142cd1 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 30 Jun 2022 12:57:01 +0200 Subject: [PATCH 202/329] Update bundle and re-add net-* gems for Ruby 3.1 compatibility --- Gemfile | 3 +++ Gemfile.lock | 31 ++++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 8f88211b..78cbecfe 100644 --- a/Gemfile +++ b/Gemfile @@ -22,6 +22,9 @@ gem 'js-routes' gem 'kramdown' gem 'mimemagic' gem 'net-http-persistent' +gem 'net-imap', require: false +gem 'net-pop', require: false +gem 'net-smtp', require: false gem 'nokogiri' gem 'pagedown-bootstrap-rails' gem 'pg' diff --git a/Gemfile.lock b/Gemfile.lock index 22703c65..ff78ac06 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,6 +135,7 @@ GEM database_cleaner-core (2.0.1) debug_inspector (1.1.0) diff-lcs (1.5.0) + digest (3.1.0) docile (1.4.0) docker-api (2.2.0) excon (>= 0.47.0) @@ -253,6 +254,20 @@ GEM nested_form (0.3.2) net-http-persistent (4.0.1) connection_pool (~> 2.2) + net-imap (0.2.3) + digest + net-protocol + strscan + net-pop (0.1.1) + digest + net-protocol + timeout + net-protocol (0.1.3) + timeout + net-smtp (0.3.1) + digest + net-protocol + timeout netrc (0.11.0) nio4r (2.5.8) nokogiri (1.13.6) @@ -298,8 +313,8 @@ GEM rack (>= 1.1) rack-proxy (0.7.2) rack - rack-test (1.1.0) - rack (>= 1.0, < 3) + rack-test (2.0.2) + rack (>= 1.3) rails (6.1.6) actioncable (= 6.1.6) actionmailbox (= 6.1.6) @@ -391,7 +406,8 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.30.1) + rubocop (1.31.1) + json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) @@ -466,7 +482,7 @@ GEM rbtree set (~> 1.0) spring (4.0.0) - sprockets (4.0.3) + sprockets (4.1.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.4.2) @@ -474,11 +490,13 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.0.7) + strscan (3.0.3) telegraf (2.1.0) influxdb temple (0.8.2) thor (1.2.1) tilt (2.0.10) + timeout (0.3.0) tubesock (0.2.9) rack (>= 1.5.0) websocket (>= 1.1.0) @@ -552,6 +570,9 @@ DEPENDENCIES mimemagic mnemosyne-ruby net-http-persistent + net-imap + net-pop + net-smtp nokogiri nyan-cat-formatter pagedown-bootstrap-rails @@ -597,4 +618,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.3.15 + 2.3.17 From 0ab3d0bdc1f2f9bc93e2c83431acf0c8877ca9ba Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 30 Jun 2022 12:58:23 +0200 Subject: [PATCH 203/329] Fix Rubocop offenses --- app/controllers/submissions_controller.rb | 2 +- app/models/runner.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index c9899149..707275c2 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -40,7 +40,7 @@ class SubmissionsController < ApplicationController # zip .co file zio.put_next_entry('.co') zio.write(File.read(id_file)) - File.delete(id_file) if File.exist?(id_file) + FileUtils.rm_rf(id_file) # zip client scripts scripts_path = 'app/assets/remote_scripts' diff --git a/app/models/runner.rb b/app/models/runner.rb index 20909927..767cd8a9 100644 --- a/app/models/runner.rb +++ b/app/models/runner.rb @@ -154,13 +154,13 @@ class Runner < ApplicationRecord rescue Runner::Error # An additional error was raised during synchronization raise Runner::Error::EnvironmentNotFound.new( - "The execution environment with id #{execution_environment.id} was not found by the runner management. "\ + "The execution environment with id #{execution_environment.id} was not found by the runner management. " \ 'In addition, it could not be synced so that this probably indicates a permanent error.' ) else # No error was raised during synchronization raise Runner::Error::EnvironmentNotFound.new( - "The execution environment with id #{execution_environment.id} was not found yet by the runner management. "\ + "The execution environment with id #{execution_environment.id} was not found yet by the runner management. " \ 'It has been successfully synced now so that the next request should be successful.' ) end From 55937d3cc527ce8700d4c95556a2a28a92cbd17a Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 30 Jun 2022 16:32:09 +0200 Subject: [PATCH 204/329] Ensure compatibility with Ruby 3.1 --- app/services/service_base.rb | 4 ++-- spec/helpers/yaml_spec.rb | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/services/service_base.rb b/app/services/service_base.rb index 39010bb7..902944f3 100644 --- a/app/services/service_base.rb +++ b/app/services/service_base.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class ServiceBase - def self.call(*args) - new(*args).execute + def self.call(**args) + new(**args).execute end end diff --git a/spec/helpers/yaml_spec.rb b/spec/helpers/yaml_spec.rb index 6222f3a9..1abd544e 100644 --- a/spec/helpers/yaml_spec.rb +++ b/spec/helpers/yaml_spec.rb @@ -1,14 +1,23 @@ # frozen_string_literal: true require 'find' -require 'yaml' +require 'active_support' +require 'rails' describe 'yaml config files' do Find.find(__dir__, 'config') do |path| next unless /.*.\.yml/.match?(path) + before do + allow(Rails).to receive(:root).and_return(Pathname.new('/tmp')) + + app = instance_double Rails::Application + allow(Rails).to receive(:application).and_return app + allow(app).to receive(:credentials).and_return({}) + end + it "loads #{path} without syntax error" do - expect { YAML.load_file(path) }.not_to raise_error + expect { ActiveSupport::ConfigurationFile.parse(path) }.not_to raise_error end end end From 42a1f7dff2f948e6d54f87b1bf93fbcdb9137710 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 30 Jun 2022 17:06:30 +0200 Subject: [PATCH 205/329] Update GitHub workflow --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f966ebf9..f79fc1b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-20.04 services: db: - image: postgres:13 + image: postgres:14 env: POSTGRES_PASSWORD: postgres ports: @@ -35,13 +35,13 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 2.7 + ruby-version: 3.1 bundler-cache: true - name: Setup Node uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 18 - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn config get cacheFolder)" @@ -74,6 +74,7 @@ jobs: env: RAILS_ENV: test CC_TEST_REPORTER_ID: true + NODE_OPTIONS: --openssl-legacy-provider run: bundle exec rspec --color --format progress --require spec_helper --require rails_helper - name: Send coverage to CodeClimate @@ -93,7 +94,7 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: 2.7 + ruby-version: 3.1 bundler-cache: true - name: Run rubocop From cf62c1b17521d72bb8aa16005191e71320c723e7 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 30 Jun 2022 17:20:13 +0200 Subject: [PATCH 206/329] Update yarn packages and adjust babel config --- babel.config.js | 1 + yarn.lock | 1265 ++++++++++++++++++++++++----------------------- 2 files changed, 638 insertions(+), 628 deletions(-) diff --git a/babel.config.js b/babel.config.js index d0d23f47..29eea741 100644 --- a/babel.config.js +++ b/babel.config.js @@ -37,6 +37,7 @@ module.exports = function(api) { ] ].filter(Boolean), plugins: [ + '@babel/plugin-transform-for-of', 'babel-plugin-macros', '@babel/plugin-syntax-dynamic-import', isTestEnv && 'babel-plugin-dynamic-import-node', diff --git a/yarn.lock b/yarn.lock index ecffd98d..fe1410c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,93 +10,93 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@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== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.5.tgz#acac0c839e317038c73137fbb6ef71a1d6238471" - integrity sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg== +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.6.tgz#8b37d24e88e8e21c499d4328db80577d8882fa53" + integrity sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ== "@babel/core@^7.15.0": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000" - integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d" + integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.5" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.5" - "@babel/types" "^7.18.4" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helpers" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== +"@babel/generator@^7.18.6": + version "7.18.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd" + integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A== dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" + "@babel/types" "^7.18.7" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@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== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@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== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" + integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.6" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" - integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz#18d35bfb9f83b1293c22c55b3d576c1315b6ed96" + integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" + "@babel/compat-data" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" + integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.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-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.16.7", "@babel/helper-create-regexp-features-plugin@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd" - integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw== +"@babel/helper-create-regexp-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" + integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.1.0" "@babel/helper-define-polyfill-provider@^0.3.1": version "0.3.1" @@ -112,300 +112,302 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== +"@babel/helper-environment-visitor@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" + integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== -"@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== +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== +"@babel/helper-function-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" + integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.6" -"@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== +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== +"@babel/helper-member-expression-to-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" + integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.6" -"@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== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== +"@babel/helper-module-transforms@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz#57e3ca669e273d55c3cda55e6ebf552f37f483c8" + integrity sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw== dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" -"@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== +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@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.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== +"@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.18.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz#9448974dd4fb1d80fefe72e8a0af37809cd30d6d" + integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg== -"@babel/helper-remap-async-to-generator@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" - integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== +"@babel/helper-remap-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" + integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-wrap-function" "^7.16.8" - "@babel/types" "^7.16.8" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-wrap-function" "^7.18.6" + "@babel/types" "^7.18.6" -"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" - integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== +"@babel/helper-replace-supers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" + integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== dependencies: - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" -"@babel/helper-simple-access@^7.17.7", "@babel/helper-simple-access@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" - integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== dependencies: - "@babel/types" "^7.18.2" + "@babel/types" "^7.18.6" -"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== +"@babel/helper-skip-transparent-expression-wrappers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz#7dff00a5320ca4cf63270e5a0eca4b268b7380d9" + integrity sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.18.6" -"@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== +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@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-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== -"@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-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.16.8": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" - integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== +"@babel/helper-wrap-function@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" + integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== dependencies: - "@babel/helper-function-name" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" + "@babel/helper-function-name" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" -"@babel/helpers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" - integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== +"@babel/helpers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.6.tgz#4c966140eaa1fcaa3d5a8c09d7db61077d4debfd" + integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.7", "@babel/parser@^7.18.5": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c" - integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw== +"@babel/parser@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.6.tgz#845338edecad65ebffef058d3be851f1d28a63bc" + integrity sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": - version "7.17.12" - 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.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e" - integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + 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.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753" - integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz#b4e4dbc2cd1acd0133479918f7c6412961c9adb8" + integrity sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" - "@babel/plugin-proposal-optional-chaining" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.6" -"@babel/plugin-proposal-async-generator-functions@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03" - integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ== +"@babel/plugin-proposal-async-generator-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17" + integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4" - integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw== +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-class-static-block@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710" - integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA== +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@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== +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378" - integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ== +"@babel/plugin-proposal-export-namespace-from@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz#1016f0aa5ab383bbf8b3a85a2dcaedf6c8ee7491" + integrity sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664" - integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg== +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23" - integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz#3b9cac6f1ffc2aa459d111df80c12020dfc6b665" + integrity sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be" - integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@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== +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8" - integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw== +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz#ec93bba06bfb3e15ebd7da73e953d84b094d5daf" + integrity sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/compat-data" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.17.12" + "@babel/plugin-transform-parameters" "^7.18.6" -"@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== +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174" - integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ== +"@babel/plugin-proposal-optional-chaining@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz#46d4f2ffc20e87fad1d98bc4fa5d466366f6aa0b" + integrity sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c" - integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A== +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-private-property-in-object@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" - integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-create-class-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d" - integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A== +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -442,12 +444,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd" - integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw== +"@babel/plugin-syntax-import-assertions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -512,302 +514,302 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45" - integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA== +"@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832" - integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ== +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-remap-async-to-generator" "^7.16.8" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" -"@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== +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.17.12": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz#7988627b3e9186a13e4d7735dc9c34a056613fb9" - integrity sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw== +"@babel/plugin-transform-block-scoping@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz#b5f78318914615397d86a731ef2cc668796a726c" + integrity sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-classes@^7.17.12": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz#51310b812a090b846c784e47087fa6457baef814" - integrity sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A== +"@babel/plugin-transform-classes@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz#3501a8f3f4c7d5697c27a3eedbee71d68312669f" + integrity sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-replace-supers" "^7.18.2" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f" - integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ== +"@babel/plugin-transform-computed-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz#5d15eb90e22e69604f3348344c91165c5395d032" + integrity sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858" - integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw== +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz#a98b0e42c7ffbf5eefcbcf33280430f230895c6f" + integrity sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c" - integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw== +"@babel/plugin-transform-duplicate-keys@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz#e6c94e8cd3c9dd8a88144f7b78ae22975a7ff473" + integrity sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-for-of@^7.18.1": - version "7.18.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036" - integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg== +"@babel/plugin-transform-for-of@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz#e0fdb813be908e91ccc9ec87b30cc2eabf046f7c" + integrity sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-function-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz#6a7e4ae2893d336fd1b8f64c9f92276391d0f1b4" + integrity sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-literals@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae" - integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ== +"@babel/plugin-transform-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz#9d6af353b5209df72960baf4492722d56f39a205" + integrity sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed" - integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA== +"@babel/plugin-transform-modules-amd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e" - integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ== +"@babel/plugin-transform-modules-commonjs@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-simple-access" "^7.18.2" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.18.0": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz#87f11c44fbfd3657be000d4897e192d9cb535996" - integrity sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q== +"@babel/plugin-transform-modules-systemjs@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz#026511b7657d63bf5d4cf2fd4aeb963139914a54" + integrity sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g== dependencies: - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f" - integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA== +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931" - integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" + integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.17.12" - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-new-target@^7.17.12": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz#8c228c4a07501dd12c95c5f23d1622131cc23931" - integrity sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg== +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766" - integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA== +"@babel/plugin-transform-parameters@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz#cbe03d5a4c6385dd756034ac1baa63c04beab8dc" + integrity sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5" - integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw== +"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" regenerator-transform "^0.15.0" -"@babel/plugin-transform-reserved-words@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f" - integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA== +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-runtime@^7.15.0": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz#f4d3188ba6a8815793993c71c2c225d0ee1d7743" - integrity sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz#77b14416015ea93367ca06979710f5000ff34ccb" + integrity sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA== dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.17.12" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + babel-plugin-polyfill-corejs2 "^0.3.1" + babel-plugin-polyfill-corejs3 "^0.5.2" + babel-plugin-polyfill-regenerator "^0.3.1" semver "^6.3.0" -"@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== +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5" - integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg== +"@babel/plugin-transform-spread@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz#82b080241965f1689f0a60ecc6f1f6575dbdb9d6" + integrity sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" -"@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== +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28" - integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g== +"@babel/plugin-transform-template-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz#b763f4dc9d11a7cce58cf9a490d82e80547db9c2" + integrity sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-typeof-symbol@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889" - integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw== +"@babel/plugin-transform-typeof-symbol@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz#486bb39d5a18047358e0d04dc0d2f322f0b92e92" + integrity sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-unicode-escapes@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27" + integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@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== +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.15.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a" - integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.6.tgz#953422e98a5f66bc56cd0b9074eaea127ec86ace" + integrity sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/helper-validator-option" "^7.16.7" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12" - "@babel/plugin-proposal-async-generator-functions" "^7.17.12" - "@babel/plugin-proposal-class-properties" "^7.17.12" - "@babel/plugin-proposal-class-static-block" "^7.18.0" - "@babel/plugin-proposal-dynamic-import" "^7.16.7" - "@babel/plugin-proposal-export-namespace-from" "^7.17.12" - "@babel/plugin-proposal-json-strings" "^7.17.12" - "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12" - "@babel/plugin-proposal-numeric-separator" "^7.16.7" - "@babel/plugin-proposal-object-rest-spread" "^7.18.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.16.7" - "@babel/plugin-proposal-optional-chaining" "^7.17.12" - "@babel/plugin-proposal-private-methods" "^7.17.12" - "@babel/plugin-proposal-private-property-in-object" "^7.17.12" - "@babel/plugin-proposal-unicode-property-regex" "^7.17.12" + "@babel/compat-data" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.6" + "@babel/plugin-proposal-async-generator-functions" "^7.18.6" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.6" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.6" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.6" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" "@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" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.17.12" + "@babel/plugin-syntax-import-assertions" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -817,43 +819,43 @@ "@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.17.12" - "@babel/plugin-transform-async-to-generator" "^7.17.12" - "@babel/plugin-transform-block-scoped-functions" "^7.16.7" - "@babel/plugin-transform-block-scoping" "^7.17.12" - "@babel/plugin-transform-classes" "^7.17.12" - "@babel/plugin-transform-computed-properties" "^7.17.12" - "@babel/plugin-transform-destructuring" "^7.18.0" - "@babel/plugin-transform-dotall-regex" "^7.16.7" - "@babel/plugin-transform-duplicate-keys" "^7.17.12" - "@babel/plugin-transform-exponentiation-operator" "^7.16.7" - "@babel/plugin-transform-for-of" "^7.18.1" - "@babel/plugin-transform-function-name" "^7.16.7" - "@babel/plugin-transform-literals" "^7.17.12" - "@babel/plugin-transform-member-expression-literals" "^7.16.7" - "@babel/plugin-transform-modules-amd" "^7.18.0" - "@babel/plugin-transform-modules-commonjs" "^7.18.2" - "@babel/plugin-transform-modules-systemjs" "^7.18.0" - "@babel/plugin-transform-modules-umd" "^7.18.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12" - "@babel/plugin-transform-new-target" "^7.17.12" - "@babel/plugin-transform-object-super" "^7.16.7" - "@babel/plugin-transform-parameters" "^7.17.12" - "@babel/plugin-transform-property-literals" "^7.16.7" - "@babel/plugin-transform-regenerator" "^7.18.0" - "@babel/plugin-transform-reserved-words" "^7.17.12" - "@babel/plugin-transform-shorthand-properties" "^7.16.7" - "@babel/plugin-transform-spread" "^7.17.12" - "@babel/plugin-transform-sticky-regex" "^7.16.7" - "@babel/plugin-transform-template-literals" "^7.18.2" - "@babel/plugin-transform-typeof-symbol" "^7.17.12" - "@babel/plugin-transform-unicode-escapes" "^7.16.7" - "@babel/plugin-transform-unicode-regex" "^7.16.7" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.6" + "@babel/plugin-transform-classes" "^7.18.6" + "@babel/plugin-transform-computed-properties" "^7.18.6" + "@babel/plugin-transform-destructuring" "^7.18.6" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.6" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.6" + "@babel/plugin-transform-function-name" "^7.18.6" + "@babel/plugin-transform-literals" "^7.18.6" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.6" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.6" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.6" + "@babel/plugin-transform-typeof-symbol" "^7.18.6" + "@babel/plugin-transform-unicode-escapes" "^7.18.6" + "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.2" - babel-plugin-polyfill-corejs2 "^0.3.0" - babel-plugin-polyfill-corejs3 "^0.5.0" - babel-plugin-polyfill-regenerator "^0.3.0" + "@babel/types" "^7.18.6" + babel-plugin-polyfill-corejs2 "^0.3.1" + babel-plugin-polyfill-corejs3 "^0.5.2" + babel-plugin-polyfill-regenerator "^0.3.1" core-js-compat "^3.22.1" semver "^6.3.0" @@ -869,43 +871,43 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" - integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580" + integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== dependencies: regenerator-runtime "^0.13.4" -"@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== +"@babel/template@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" + integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.18.5": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.5.tgz#94a8195ad9642801837988ab77f36e992d9a20cd" - integrity sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.6.tgz#a228562d2f46e89258efa4ddd0416942e2fd671d" + integrity sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw== dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.5" - "@babel/types" "^7.18.4" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4", "@babel/types@^7.4.4": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" - integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== +"@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.4.4": + version "7.18.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.7.tgz#a4a2c910c15040ea52cdd1ddb1614a65c8041726" + integrity sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@csstools/convert-colors@^1.4.0": @@ -931,24 +933,24 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@jridgewell/set-array" "^1.0.0" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz#687cc2bbf243f4e9a868ecf2262318e2658873a1" + integrity sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/source-map@^0.3.2": version "0.3.2" @@ -959,14 +961,14 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + version "0.3.14" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1102,9 +1104,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.44.tgz#16dd0bb5338f016d8ca10631789f0d0612fe5d5b" - integrity sha512-gWYiOlu6Y4oyLYBvsJAPlwHbC8H4tX+tLsHy6Ee976wedwwZKrG2hFl3Y/HiH6bIyLTbDWQexQF/ohwKkOpUCg== + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" + integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1514,7 +1516,7 @@ babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-polyfill-corejs2@^0.3.0: +babel-plugin-polyfill-corejs2@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== @@ -1523,7 +1525,7 @@ babel-plugin-polyfill-corejs2@^0.3.0: "@babel/helper-define-polyfill-provider" "^0.3.1" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.0: +babel-plugin-polyfill-corejs3@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== @@ -1531,7 +1533,7 @@ babel-plugin-polyfill-corejs3@^0.5.0: "@babel/helper-define-polyfill-provider" "^0.3.1" core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.3.0: +babel-plugin-polyfill-regenerator@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== @@ -1745,16 +1747,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.20.4, browserslist@^4.6.4: - version "4.20.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477" - integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.0, browserslist@^4.6.4: + version "4.21.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" + integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== dependencies: - caniuse-lite "^1.0.30001349" - electron-to-chromium "^1.4.147" - escalade "^3.1.1" + caniuse-lite "^1.0.30001359" + electron-to-chromium "^1.4.172" node-releases "^2.0.5" - picocolors "^1.0.0" + update-browserslist-db "^1.0.4" buffer-from@^1.0.0: version "1.1.2" @@ -1902,10 +1903,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.30001349: - version "1.0.30001354" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001354.tgz#95c5efdb64148bb4870771749b9a619304755ce5" - integrity sha512-mImKeCkyGDAHNywYFA4bqnLAzTUvVkqPvhY4DV47X+Gl2c5Z8c3KNETnXp14GQt11LvxE8AwjzGxJ+rsikiOzg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001359: + version "1.0.30001361" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz#ba2adb2527566fb96f3ac7c67698ae7fc495a28d" + integrity sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2194,17 +2195,17 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.1.tgz#23d44d9f209086e60dabf9130cea7719af6e199b" - integrity sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A== + version "3.23.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.3.tgz#7d8503185be76bb6d8d592c291a4457a8e440aa9" + integrity sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw== dependencies: - browserslist "^4.20.4" + browserslist "^4.21.0" semver "7.0.0" core-js@^3.16.2: - version "3.23.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.1.tgz#9f9a9255115f62c512db56d567f636da32ca0b78" - integrity sha512-wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w== + version "3.23.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112" + integrity sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q== core-util-is@~1.0.0: version "1.0.3" @@ -2517,9 +2518,9 @@ d3-collection@^1.0.4: integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== d3-contour@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd" - integrity sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ== + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.1.0.tgz#708484a5d89be9558dfdda4a95b3df2fdebb65ab" + integrity sha512-vV3xtwrYK5p1J4vyukr70m57mtFTEQYqoaDC1ylBfht/hkdUF0nfWZ1b3V2EPBUVkUkoqq5/fbRoBImBWJgOsg== dependencies: d3-array "2 - 3" @@ -2954,10 +2955,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.147: - version "1.4.156" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.156.tgz#fc398e1bfbe586135351ebfaf198473a82923af5" - integrity sha512-/Wj5NC7E0wHaMCdqxWz9B0lv7CcycDTiHyXCtbbu3pXM9TV2AOp8BtMqkVuqvJNdEvltBG6LxT2Q+BxY4LUCIA== +electron-to-chromium@^1.4.172: + version "1.4.174" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz#ffdf57f26dd4558c5aabdb4b190c47af1c4e443b" + integrity sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ== elliptic@^6.5.3: version "6.5.4" @@ -3356,9 +3357,9 @@ findup-sync@^3.0.0: resolve-dir "^1.0.1" flatted@^3.2.2: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" + integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== flatten@^1.0.2: version "1.0.3" @@ -3763,9 +3764,9 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd" - integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA== + version "0.5.8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" + integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== http-proxy-middleware@0.19.1: version "0.19.1" @@ -4048,7 +4049,7 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.8.1: +is-core-module@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== @@ -4685,9 +4686,9 @@ minipass-pipeline@^1.2.2: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" @@ -6187,10 +6188,10 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpu-core@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== +regexpu-core@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== dependencies: regenerate "^1.4.2" regenerate-unicode-properties "^10.0.1" @@ -6272,11 +6273,11 @@ resolve-url@^0.2.1: integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -6373,9 +6374,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.52.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.3.tgz#b7cc7ffea2341ccc9a0c4fd372bf1b3f9be1b6cb" - integrity sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA== + version "1.53.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.53.0.tgz#eab73a7baac045cc57ddc1d1ff501ad2659952eb" + integrity sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7179,6 +7180,14 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== +update-browserslist-db@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" + integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" From 73327ca0f9daddc93508e7a13648820fd5cd9452 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Jul 2022 03:02:16 +0000 Subject: [PATCH 207/329] Bump rails-i18n from 7.0.3 to 7.0.5 Bumps [rails-i18n](https://github.com/svenfuchs/rails-i18n) from 7.0.3 to 7.0.5. - [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/v7.0.5) --- updated-dependencies: - dependency-name: rails-i18n 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 ff78ac06..27c0012e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -239,7 +239,7 @@ GEM mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.0) - minitest (5.16.1) + minitest (5.16.2) minitest-autotest (1.1.1) minitest-server (~> 1.0) path_expander (~> 1.0) @@ -305,7 +305,7 @@ GEM pundit (2.2.0) activesupport (>= 3.0.0) racc (1.6.0) - rack (2.2.3.1) + rack (2.2.4) rack-mini-profiler (3.0.0) rack (>= 1.2.0) rack-pjax (1.1.0) @@ -339,7 +339,7 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.3) loofah (~> 2.3) - rails-i18n (7.0.3) + rails-i18n (7.0.5) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) rails-timeago (2.20.0) From ec23e7433382cd102dc16eb82360e48bc0da7d2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Jul 2022 03:01:25 +0000 Subject: [PATCH 208/329] Bump rubocop-rails from 2.15.1 to 2.15.2 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.15.1 to 2.15.2. - [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.15.1...v2.15.2) --- 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 27c0012e..1b0881b3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -421,7 +421,7 @@ GEM rubocop-performance (1.14.2) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) - rubocop-rails (2.15.1) + rubocop-rails (2.15.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) From 41600ee15941a175da3056998fd52cd5afdc275a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Jul 2022 03:08:42 +0000 Subject: [PATCH 209/329] Bump moment from 2.29.3 to 2.29.4 Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4) --- updated-dependencies: - dependency-name: moment dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index fe1410c7..9c4a7770 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4737,9 +4737,9 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment@^2.18.1: - version "2.29.3" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.3.tgz#edd47411c322413999f7a5940d526de183c031f3" - integrity sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw== + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== move-concurrently@^1.0.1: version "1.0.1" From 460c955e6b13670436769f94d99bd218102dc08b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Jul 2022 03:01:29 +0000 Subject: [PATCH 210/329] Bump rubocop from 1.31.1 to 1.31.2 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.31.1 to 1.31.2. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.31.1...v1.31.2) --- updated-dependencies: - dependency-name: rubocop 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 1b0881b3..33b35583 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -406,7 +406,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.31.1) + rubocop (1.31.2) json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.0.0) From ddd2de5b6697bbc17041338ca33415c82d0d21b7 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 8 Jul 2022 10:13:24 +0200 Subject: [PATCH 211/329] Clarify usage of external URLs for Docker and Runner Management --- config/code_ocean.yml.example | 4 ++-- config/docker.yml.erb.example | 41 ++++++++--------------------------- 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/config/code_ocean.yml.example b/config/code_ocean.yml.example index df56be79..207038d5 100644 --- a/config/code_ocean.yml.example +++ b/config/code_ocean.yml.example @@ -40,10 +40,10 @@ default: &default enabled: false # The strategy to use. Possible values are: poseidon, docker_container_pool strategy: poseidon - # The root URL of the runner management to use + # The root URL of the runner management to use (include any API prefix if required) # If a hostname is specified and the target host is reachable via IPv6, the WebSocket # connection might not use the IPv6-to-IPv4 fallback but rather fail unexpectedly. - url: https://runners.example.org + url: https://runners.example.org/api/v1 # The root certificate authority to trust for TLS connections to the runner management (Poseidon only) ca_file: /example/certificates/ca.crt # The authorization token for connections to the runner management (Poseidon only) diff --git a/config/docker.yml.erb.example b/config/docker.yml.erb.example index 4ea13165..8fad3a8f 100644 --- a/config/docker.yml.erb.example +++ b/config/docker.yml.erb.example @@ -1,16 +1,12 @@ #Why erb? default: &default - connection_timeout: 3 - pool: - active: false - ports: !ruby/range 4500..4600 - -development: - <<: *default + # Specify the Docker host below, once for container management and once for output streaming. + # Always use the TCP socket (instead of a unix socket) and an IPv4 address for best compatibility. host: tcp://127.0.0.1:2376 ws_host: ws://127.0.0.1:2376 #url to connect rails server to docker host # Be sure to change the default ACL when modifying the workspace_root: `setfacl -Rdm user::rwx ` workspace_root: <%= Rails.root.join('tmp', 'files', Rails.env) %> + connection_timeout: 3 pool: active: true refill: @@ -18,37 +14,18 @@ development: batch_size: 8 interval: 15 timeout: 60 + ports: !ruby/range 4500..4600 + +development: + <<: *default production: <<: *default - host: unix:///var/run/docker.sock - pool: - active: true - refill: - async: false - batch_size: 8 - interval: 15 - timeout: 60 - # Be sure to change the default ACL when modifying the workspace_root: `setfacl -Rdm user::rwx ` - workspace_root: <%= Rails.root.join('tmp', 'files', Rails.env) %> - ws_host: ws://localhost:4243 #url to connect rails server to docker host staging: <<: *default - host: unix:///var/run/docker.sock - pool: - active: true - refill: - async: false - batch_size: 8 - interval: 15 - timeout: 60 - # Be sure to change the default ACL when modifying the workspace_root: `setfacl -Rdm user::rwx ` - workspace_root: <%= Rails.root.join('tmp', 'files', Rails.env) %> - ws_host: ws://localhost:4243 #url to connect rails server to docker host test: <<: *default - host: tcp://127.0.0.1:2376 - # Be sure to change the default ACL when modifying the workspace_root: `setfacl -Rdm user::rwx ` - workspace_root: <%= Rails.root.join('tmp', 'files', Rails.env) %> + pool: + active: false From deb6ffaa2871c863846855cd99c958c443ca483c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Jul 2022 03:19:35 +0000 Subject: [PATCH 212/329] Bump d3 from 7.5.0 to 7.6.1 Bumps [d3](https://github.com/d3/d3) from 7.5.0 to 7.6.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.5.0...v7.6.1) --- 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 | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index f3a04df2..b7a3f0d5 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.5.0", + "d3": "^7.6.1", "d3-tip": "^0.9.1", "highlight.js": "^11.5.1", "jquery": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 9c4a7770..7953fbf4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2477,10 +2477,10 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.1.6.tgz#0342c835925826f49b4d16eb7027aec334ffc97d" - integrity sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA== +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.0.tgz#15bf96cd9b7333e02eb8de8053d78962eafcff14" + integrity sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g== dependencies: internmap "1 - 2" @@ -2517,12 +2517,12 @@ d3-collection@^1.0.4: resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -d3-contour@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.1.0.tgz#708484a5d89be9558dfdda4a95b3df2fdebb65ab" - integrity sha512-vV3xtwrYK5p1J4vyukr70m57mtFTEQYqoaDC1ylBfht/hkdUF0nfWZ1b3V2EPBUVkUkoqq5/fbRoBImBWJgOsg== +d3-contour@4: + version "4.0.0" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.0.tgz#5a1337c6da0d528479acdb5db54bc81a0ff2ec6b" + integrity sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw== dependencies: - d3-array "2 - 3" + d3-array "^3.2.0" d3-delaunay@6: version "6.0.2" @@ -2703,17 +2703,17 @@ d3-zoom@3: d3-selection "2 - 3" d3-transition "2 - 3" -d3@^7.5.0: - version "7.5.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.5.0.tgz#495a2eb30159c34ad54dacf872ac056dd763f3ae" - integrity sha512-b0hUpzWOI99VOek1VpmARF67izlrvd6C83wAAP+Wm7c3Prx7080W26ETt51XTiUn5HDdgVytjrz1UX/0P48VdQ== +d3@^7.6.1: + version "7.6.1" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.6.1.tgz#b21af9563485ed472802f8c611cc43be6c37c40c" + integrity sha512-txMTdIHFbcpLx+8a0IFhZsbp+PfBBPt8yfbmukZTQFroKuFqIwqswF0qE5JXWefylaAVpSXFoKm3yP+jpNLFLw== dependencies: d3-array "3" d3-axis "3" d3-brush "3" d3-chord "3" d3-color "3" - d3-contour "3" + d3-contour "4" d3-delaunay "6" d3-dispatch "3" d3-drag "3" From ac453e841b8df1ffca6fb3a7cae8ec76c4e68abc Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 8 Jul 2022 15:19:48 +0200 Subject: [PATCH 213/329] Bundle update --- Gemfile.lock | 10 +++--- yarn.lock | 90 ++++++++++++++++++++++++++-------------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 33b35583..ec76b6be 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -248,7 +248,7 @@ GEM mnemosyne-ruby (1.13.0) activesupport (>= 4) bunny - msgpack (1.5.2) + msgpack (1.5.3) multi_json (1.15.0) multi_xml (0.6.0) nested_form (0.3.2) @@ -276,7 +276,7 @@ GEM nyan-cat-formatter (0.12.0) rspec (>= 2.99, >= 2.14.2, < 4) oauth (0.5.10) - oauth2 (1.4.9) + oauth2 (1.4.10) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -287,7 +287,7 @@ GEM parallel (1.22.1) parser (3.1.2.0) ast (~> 2.4.1) - path_expander (1.1.0) + path_expander (1.1.1) pg (1.4.1) prometheus_exporter (2.0.3) webrick @@ -425,8 +425,8 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - rubocop-rspec (2.11.1) - rubocop (~> 1.19) + rubocop-rspec (2.12.1) + rubocop (~> 1.31) ruby-progressbar (1.11.0) ruby-vips (2.1.4) ffi (~> 1.12) diff --git a/yarn.lock b/yarn.lock index 7953fbf4..55f342eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,9 +18,9 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.6.tgz#8b37d24e88e8e21c499d4328db80577d8882fa53" - integrity sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" + integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== "@babel/core@^7.15.0": version "7.18.6" @@ -43,7 +43,7 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.6": +"@babel/generator@^7.18.6", "@babel/generator@^7.18.7": version "7.18.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd" integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A== @@ -154,9 +154,9 @@ "@babel/types" "^7.18.6" "@babel/helper-module-transforms@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz#57e3ca669e273d55c3cda55e6ebf552f37f483c8" - integrity sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz#4f8408afead0188cfa48672f9d0e5787b61778c8" + integrity sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA== dependencies: "@babel/helper-environment-visitor" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" @@ -164,8 +164,8 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.18.6" "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.8" + "@babel/types" "^7.18.8" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -259,10 +259,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.6.tgz#845338edecad65ebffef058d3be851f1d28a63bc" - integrity sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw== +"@babel/parser@^7.18.6", "@babel/parser@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf" + integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -545,9 +545,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-classes@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz#3501a8f3f4c7d5697c27a3eedbee71d68312669f" - integrity sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz#7e85777e622e979c85c701a095280360b818ce49" + integrity sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.6" @@ -596,9 +596,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-for-of@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz#e0fdb813be908e91ccc9ec87b30cc2eabf046f7c" - integrity sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -687,9 +687,9 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz#cbe03d5a4c6385dd756034ac1baa63c04beab8dc" - integrity sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A== + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -886,26 +886,26 @@ "@babel/parser" "^7.18.6" "@babel/types" "^7.18.6" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.6.tgz#a228562d2f46e89258efa4ddd0416942e2fd671d" - integrity sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.8": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.8.tgz#f095e62ab46abf1da35e5a2011f43aee72d8d5b0" + integrity sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.6" + "@babel/generator" "^7.18.7" "@babel/helper-environment-visitor" "^7.18.6" "@babel/helper-function-name" "^7.18.6" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/parser" "^7.18.8" + "@babel/types" "^7.18.8" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.4.4": - version "7.18.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.7.tgz#a4a2c910c15040ea52cdd1ddb1614a65c8041726" - integrity sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ== +"@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.18.8", "@babel/types@^7.4.4": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.8.tgz#c5af199951bf41ba4a6a9a6d0d8ad722b30cd42f" + integrity sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw== dependencies: "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" @@ -943,9 +943,9 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz#687cc2bbf243f4e9a868ecf2262318e2658873a1" - integrity sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" @@ -1104,9 +1104,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" - integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== + version "18.0.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" + integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1904,9 +1904,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.30001359: - version "1.0.30001361" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz#ba2adb2527566fb96f3ac7c67698ae7fc495a28d" - integrity sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ== + version "1.0.30001363" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz#26bec2d606924ba318235944e1193304ea7c4f15" + integrity sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2956,9 +2956,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.172: - version "1.4.174" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.174.tgz#ffdf57f26dd4558c5aabdb4b190c47af1c4e443b" - integrity sha512-JER+w+9MV2MBVFOXxP036bLlNOnzbYAWrWU8sNUwoOO69T3w4564WhM5H5atd8VVS8U4vpi0i0kdoYzm1NPQgQ== + version "1.4.184" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.184.tgz#381d4d111fc82d3376ed690dfb621e675f9078a9" + integrity sha512-IADi390FRdvxWfVX3hjzfTDNVHiTqVo9ar53/7em/SfhUG9YcjVhyQecY/XwmBHRKden/wFud7RWOUH7+7LFng== elliptic@^6.5.3: version "6.5.4" From 5e9bf9141c83ec4812a858b70e14733f745aeacd Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 8 Jul 2022 15:23:55 +0200 Subject: [PATCH 214/329] Fix Rubocop offenses --- .../admin/dashboard_controller_spec.rb | 4 +-- .../application_controller_spec.rb | 2 +- .../code_ocean/files_controller_spec.rb | 4 +-- .../codeharbor_links_controller_spec.rb | 4 +-- spec/controllers/consumers_controller_spec.rb | 12 ++++----- ...ror_template_attributes_controller_spec.rb | 8 +++--- .../error_templates_controller_spec.rb | 8 +++--- spec/controllers/events_controller_spec.rb | 6 ++--- .../execution_environments_controller_spec.rb | 18 ++++++------- spec/controllers/exercises_controller_spec.rb | 26 +++++++++---------- .../external_users_controller_spec.rb | 4 +-- .../controllers/file_types_controller_spec.rb | 12 ++++----- .../internal_users_controller_spec.rb | 22 ++++++++-------- .../request_for_comments_controller_spec.rb | 6 ++--- spec/controllers/sessions_controller_spec.rb | 4 +-- .../controllers/statistics_controller_spec.rb | 6 ++--- .../submissions_controller_spec.rb | 24 ++++++++--------- spec/support/controllers.rb | 4 +-- 18 files changed, 87 insertions(+), 87 deletions(-) diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb index 21db904e..e0c581b2 100644 --- a/spec/controllers/admin/dashboard_controller_spec.rb +++ b/spec/controllers/admin/dashboard_controller_spec.rb @@ -9,7 +9,7 @@ describe Admin::DashboardController do describe 'with format HTML' do before { get :show } - expect_status(200) + expect_http_status(:ok) expect_template(:show) end @@ -17,7 +17,7 @@ describe Admin::DashboardController do before { get :show, format: :json } expect_json - expect_status(200) + expect_http_status(:ok) end end end diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 307c6498..d6e4f672 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -78,7 +78,7 @@ describe ApplicationController do describe 'GET #welcome' do before { get :welcome } - expect_status(200) + expect_http_status(:ok) expect_template(:welcome) end end diff --git a/spec/controllers/code_ocean/files_controller_spec.rb b/spec/controllers/code_ocean/files_controller_spec.rb index 759ab849..2c555b08 100644 --- a/spec/controllers/code_ocean/files_controller_spec.rb +++ b/spec/controllers/code_ocean/files_controller_spec.rb @@ -25,7 +25,7 @@ describe CodeOcean::FilesController do end expect_json - expect_status(201) + expect_http_status(:created) end context 'with an invalid file' do @@ -36,7 +36,7 @@ describe CodeOcean::FilesController do expect_assigns(file: CodeOcean::File) expect_json - expect_status(422) + expect_http_status(:unprocessable_entity) end end diff --git a/spec/controllers/codeharbor_links_controller_spec.rb b/spec/controllers/codeharbor_links_controller_spec.rb index 092e9f38..fdca2047 100644 --- a/spec/controllers/codeharbor_links_controller_spec.rb +++ b/spec/controllers/codeharbor_links_controller_spec.rb @@ -19,7 +19,7 @@ describe CodeharborLinksController do get :new end - expect_status(200) + expect_http_status(:ok) end describe 'GET #edit' do @@ -27,7 +27,7 @@ describe CodeharborLinksController do before { get :edit, params: {id: codeharbor_link.id} } - expect_status(200) + expect_http_status(:ok) end describe 'POST #create' do diff --git a/spec/controllers/consumers_controller_spec.rb b/spec/controllers/consumers_controller_spec.rb index b5e5a1a8..2766e49f 100644 --- a/spec/controllers/consumers_controller_spec.rb +++ b/spec/controllers/consumers_controller_spec.rb @@ -27,7 +27,7 @@ describe ConsumersController do before { post :create, params: {consumer: {}} } expect_assigns(consumer: Consumer) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end end @@ -49,7 +49,7 @@ describe ConsumersController do before { get :edit, params: {id: consumer.id} } expect_assigns(consumer: Consumer) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end @@ -60,7 +60,7 @@ describe ConsumersController do end expect_assigns(consumers: Consumer.all) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -68,7 +68,7 @@ describe ConsumersController do before { get :new } expect_assigns(consumer: Consumer) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end @@ -76,7 +76,7 @@ describe ConsumersController do before { get :show, params: {id: consumer.id} } expect_assigns(consumer: :consumer) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end @@ -92,7 +92,7 @@ describe ConsumersController do before { put :update, params: {consumer: {name: ''}, id: consumer.id} } expect_assigns(consumer: Consumer) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end end diff --git a/spec/controllers/error_template_attributes_controller_spec.rb b/spec/controllers/error_template_attributes_controller_spec.rb index 521052df..e3e28f44 100644 --- a/spec/controllers/error_template_attributes_controller_spec.rb +++ b/spec/controllers/error_template_attributes_controller_spec.rb @@ -10,13 +10,13 @@ describe ErrorTemplateAttributesController do it 'gets index' do get :index - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) expect(assigns(:error_template_attributes)).not_to be_nil end it 'gets new' do get :new - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) end it 'creates error_template_attribute' do @@ -26,12 +26,12 @@ describe ErrorTemplateAttributesController do it 'shows error_template_attribute' do get :show, params: {id: error_template_attribute} - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) end it 'gets edit' do get :edit, params: {id: error_template_attribute} - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) end it 'updates error_template_attribute' do diff --git a/spec/controllers/error_templates_controller_spec.rb b/spec/controllers/error_templates_controller_spec.rb index 5a79cddf..830cf68f 100644 --- a/spec/controllers/error_templates_controller_spec.rb +++ b/spec/controllers/error_templates_controller_spec.rb @@ -10,13 +10,13 @@ describe ErrorTemplatesController do it 'gets index' do get :index - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) expect(assigns(:error_templates)).not_to be_nil end it 'gets new' do get :new - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) end it 'creates error_template' do @@ -26,12 +26,12 @@ describe ErrorTemplatesController do it 'shows error_template' do get :show, params: {id: error_template} - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) end it 'gets edit' do get :edit, params: {id: error_template} - expect(response.status).to eq(200) + expect(response).to have_http_status(:ok) end it 'updates error_template' do diff --git a/spec/controllers/events_controller_spec.rb b/spec/controllers/events_controller_spec.rb index f9baf1c8..888d9280 100644 --- a/spec/controllers/events_controller_spec.rb +++ b/spec/controllers/events_controller_spec.rb @@ -20,20 +20,20 @@ describe EventsController do expect { perform_request.call }.to change(Event, :count).by(1) end - expect_status(201) + expect_http_status(:created) end context 'with an invalid event' do before { post :create, params: {event: {exercise_id: 847_482}} } expect_assigns(event: Event) - expect_status(422) + expect_http_status(:unprocessable_entity) end context 'with no event' do before { post :create } - expect_status(422) + expect_http_status(:unprocessable_entity) end end end diff --git a/spec/controllers/execution_environments_controller_spec.rb b/spec/controllers/execution_environments_controller_spec.rb index 8ab91cc6..aee51f6d 100644 --- a/spec/controllers/execution_environments_controller_spec.rb +++ b/spec/controllers/execution_environments_controller_spec.rb @@ -46,7 +46,7 @@ describe ExecutionEnvironmentsController do end expect_assigns(execution_environment: ExecutionEnvironment) - expect_status(200) + expect_http_status(:ok) expect_template(:new) it 'does not register the execution environment with the runner management' do @@ -82,7 +82,7 @@ describe ExecutionEnvironmentsController do expect_assigns(docker_images: Array) expect_assigns(execution_environment: :execution_environment) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end @@ -98,7 +98,7 @@ describe ExecutionEnvironmentsController do expect_assigns(execution_environment: :execution_environment) expect_json - expect_status(200) + expect_http_status(:ok) end describe 'GET #index' do @@ -108,7 +108,7 @@ describe ExecutionEnvironmentsController do end expect_assigns(execution_environments: ExecutionEnvironment.all) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -119,7 +119,7 @@ describe ExecutionEnvironmentsController do expect_assigns(docker_images: Array) expect_assigns(execution_environment: ExecutionEnvironment) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end @@ -158,7 +158,7 @@ describe ExecutionEnvironmentsController do before { get :shell, params: {id: execution_environment.id} } expect_assigns(execution_environment: :execution_environment) - expect_status(200) + expect_http_status(:ok) expect_template(:shell) end @@ -166,7 +166,7 @@ describe ExecutionEnvironmentsController do before { get :statistics, params: {id: execution_environment.id} } expect_assigns(execution_environment: :execution_environment) - expect_status(200) + expect_http_status(:ok) expect_template(:statistics) end @@ -174,7 +174,7 @@ describe ExecutionEnvironmentsController do before { get :show, params: {id: execution_environment.id} } expect_assigns(execution_environment: :execution_environment) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end @@ -206,7 +206,7 @@ describe ExecutionEnvironmentsController do end expect_assigns(execution_environment: ExecutionEnvironment) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) it 'does not update the execution environment at the runner management' do diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index caf76a98..847dc805 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -20,7 +20,7 @@ describe ExercisesController do end expect_json - expect_status(200) + expect_http_status(:ok) end describe 'POST #clone' do @@ -122,7 +122,7 @@ describe ExercisesController do before { post :create, params: {exercise: {}} } expect_assigns(exercise: Exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end end @@ -144,7 +144,7 @@ describe ExercisesController do before { get :edit, params: {id: exercise.id} } expect_assigns(exercise: :exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end @@ -173,7 +173,7 @@ describe ExercisesController do end end - expect_status(200) + expect_http_status(:ok) expect_template(:implement) end @@ -195,7 +195,7 @@ describe ExercisesController do end expect_assigns(exercises: :scope) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -204,7 +204,7 @@ describe ExercisesController do expect_assigns(execution_environments: ExecutionEnvironment.all, exercise: Exercise) expect_assigns(exercise: Exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end @@ -213,7 +213,7 @@ describe ExercisesController do before { get :show, params: {id: exercise.id} } expect_assigns(exercise: :exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end end @@ -223,7 +223,7 @@ describe ExercisesController do before { get :reload, format: :json, params: {id: exercise.id} } expect_assigns(exercise: :exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:reload) end end @@ -232,7 +232,7 @@ describe ExercisesController do before { get :statistics, params: {id: exercise.id} } expect_assigns(exercise: :exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:statistics) end @@ -285,7 +285,7 @@ describe ExercisesController do end expect_json - expect_status(200) + expect_http_status(:ok) end context 'when the score transmission fails' do @@ -301,7 +301,7 @@ describe ExercisesController do end expect_json - expect_status(503) + expect_http_status(:service_unavailable) end end @@ -322,7 +322,7 @@ describe ExercisesController do end expect_json - expect_status(200) + expect_http_status(:ok) end end @@ -340,7 +340,7 @@ describe ExercisesController do before { put :update, params: {exercise: {title: ''}, id: exercise.id} } expect_assigns(exercise: Exercise) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end end diff --git a/spec/controllers/external_users_controller_spec.rb b/spec/controllers/external_users_controller_spec.rb index d39acb26..4530c78a 100644 --- a/spec/controllers/external_users_controller_spec.rb +++ b/spec/controllers/external_users_controller_spec.rb @@ -12,7 +12,7 @@ describe ExternalUsersController do before { get :index } expect_assigns(users: ExternalUser.all) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -20,7 +20,7 @@ describe ExternalUsersController do before { get :show, params: {id: users.first.id} } expect_assigns(user: ExternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end end diff --git a/spec/controllers/file_types_controller_spec.rb b/spec/controllers/file_types_controller_spec.rb index 3f13df2d..45f327b7 100644 --- a/spec/controllers/file_types_controller_spec.rb +++ b/spec/controllers/file_types_controller_spec.rb @@ -29,7 +29,7 @@ describe FileTypesController do expect_assigns(editor_modes: Array) expect_assigns(file_type: FileType) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end end @@ -52,7 +52,7 @@ describe FileTypesController do expect_assigns(editor_modes: Array) expect_assigns(file_type: FileType) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end @@ -63,7 +63,7 @@ describe FileTypesController do end expect_assigns(file_types: FileType.all) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -72,7 +72,7 @@ describe FileTypesController do expect_assigns(editor_modes: Array) expect_assigns(file_type: FileType) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end @@ -80,7 +80,7 @@ describe FileTypesController do before { get :show, params: {id: file_type.id} } expect_assigns(file_type: :file_type) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end @@ -98,7 +98,7 @@ describe FileTypesController do expect_assigns(editor_modes: Array) expect_assigns(file_type: FileType) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end end diff --git a/spec/controllers/internal_users_controller_spec.rb b/spec/controllers/internal_users_controller_spec.rb index 7ff2fb7b..cde7e530 100644 --- a/spec/controllers/internal_users_controller_spec.rb +++ b/spec/controllers/internal_users_controller_spec.rb @@ -33,7 +33,7 @@ describe InternalUsersController do before { get :activate, params: {id: user.id, token: user.activation_token} } expect_assigns(user: InternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:activate) end end @@ -138,7 +138,7 @@ describe InternalUsersController do before { post :create, params: {internal_user: {}} } expect_assigns(user: InternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end end @@ -165,7 +165,7 @@ describe InternalUsersController do end expect_assigns(user: InternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end @@ -178,7 +178,7 @@ describe InternalUsersController do get :forgot_password end - expect_status(200) + expect_http_status(:ok) expect_template(:forgot_password) end @@ -213,7 +213,7 @@ describe InternalUsersController do context 'without an email address' do before { post :forgot_password } - expect_status(200) + expect_http_status(:ok) expect_template(:forgot_password) end end @@ -225,7 +225,7 @@ describe InternalUsersController do end expect_assigns(users: InternalUser.all) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -236,7 +236,7 @@ describe InternalUsersController do end expect_assigns(user: InternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:new) end @@ -256,7 +256,7 @@ describe InternalUsersController do end expect_assigns(user: :user) - expect_status(200) + expect_http_status(:ok) expect_template(:reset_password) end end @@ -295,7 +295,7 @@ describe InternalUsersController do end expect_assigns(user: :user) - expect_status(200) + expect_http_status(:ok) expect_template(:reset_password) end end @@ -308,7 +308,7 @@ describe InternalUsersController do end expect_assigns(user: InternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end @@ -326,7 +326,7 @@ describe InternalUsersController do before { put :update, params: {internal_user: {email: ''}, id: users.first.id} } expect_assigns(user: InternalUser) - expect_status(200) + expect_http_status(:ok) expect_template(:edit) end end diff --git a/spec/controllers/request_for_comments_controller_spec.rb b/spec/controllers/request_for_comments_controller_spec.rb index 1950ff24..f607fac2 100644 --- a/spec/controllers/request_for_comments_controller_spec.rb +++ b/spec/controllers/request_for_comments_controller_spec.rb @@ -35,14 +35,14 @@ describe RequestForCommentsController do describe 'GET #my_comment_requests' do before { get :my_comment_requests } - expect_status(200) + expect_http_status(:ok) expect_template(:index) end describe 'GET #rfcs_with_my_comments' do before { get :rfcs_with_my_comments } - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -52,7 +52,7 @@ describe RequestForCommentsController do get :rfcs_for_exercise, params: {exercise_id: exercise.id} end - expect_status(200) + expect_http_status(:ok) expect_template(:index) end end diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 3cf9b490..f4edd27d 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -217,7 +217,7 @@ describe SessionsController do perform_request.call end - expect_status(200) + expect_http_status(:ok) expect_template(:destroy_through_lti) end @@ -230,7 +230,7 @@ describe SessionsController do get :new end - expect_status(200) + expect_http_status(:ok) expect_template(:new) end diff --git a/spec/controllers/statistics_controller_spec.rb b/spec/controllers/statistics_controller_spec.rb index 9a0cbcb6..78d367e6 100644 --- a/spec/controllers/statistics_controller_spec.rb +++ b/spec/controllers/statistics_controller_spec.rb @@ -11,7 +11,7 @@ describe StatisticsController do describe "GET ##{route}" do before { get route } - expect_status(200) + expect_http_status(:ok) expect_template(route) end end @@ -20,7 +20,7 @@ describe StatisticsController do describe "GET ##{route}" do before { get route } - expect_status(200) + expect_http_status(:ok) expect_template(:activity_history) end end @@ -29,7 +29,7 @@ describe StatisticsController do describe "GET ##{route}.json" do before { get route, format: :json } - expect_status(200) + expect_http_status(:ok) expect_json end end diff --git a/spec/controllers/submissions_controller_spec.rb b/spec/controllers/submissions_controller_spec.rb index cb764d86..41539eb3 100644 --- a/spec/controllers/submissions_controller_spec.rb +++ b/spec/controllers/submissions_controller_spec.rb @@ -26,7 +26,7 @@ describe SubmissionsController do end expect_json - expect_status(201) + expect_http_status(:created) end context 'with an invalid submission' do @@ -34,7 +34,7 @@ describe SubmissionsController do expect_assigns(submission: Submission) expect_json - expect_status(422) + expect_http_status(:unprocessable_entity) end end @@ -42,7 +42,7 @@ describe SubmissionsController do context 'with an invalid filename' do before { get :download_file, params: {filename: SecureRandom.hex, id: submission.id} } - expect_status(404) + expect_http_status(:not_found) end context 'with a valid binary filename' do @@ -56,7 +56,7 @@ describe SubmissionsController do expect_assigns(file: :file) expect_assigns(submission: :submission) expect_content_type('application/octet-stream') - expect_status(200) + expect_http_status(:ok) it 'sets the correct filename' do expect(response.headers['Content-Disposition']).to include("attachment; filename=\"#{file.name_with_extension}\"") @@ -75,7 +75,7 @@ describe SubmissionsController do expect_assigns(file: :file) expect_assigns(submission: :submission) expect_content_type('video/mp4') - expect_status(200) + expect_http_status(:ok) it 'sets the correct filename' do expect(response.headers['Content-Disposition']).to include("attachment; filename=\"#{file.name_with_extension}\"") @@ -88,7 +88,7 @@ describe SubmissionsController do expect_assigns(file: :file) expect_assigns(submission: :submission) expect_content_type('text/javascript') - expect_status(200) + expect_http_status(:ok) it 'sets the correct filename' do expect(response.headers['Content-Disposition']).to include("attachment; filename=\"#{file.name_with_extension}\"") @@ -104,7 +104,7 @@ describe SubmissionsController do end expect_assigns(submissions: Submission.all) - expect_status(200) + expect_http_status(:ok) expect_template(:index) end @@ -114,7 +114,7 @@ describe SubmissionsController do context 'with an invalid filename' do before { get :render_file, params: {filename: SecureRandom.hex, id: submission.id} } - expect_status(404) + expect_http_status(:not_found) end context 'with a valid filename' do @@ -128,7 +128,7 @@ describe SubmissionsController do expect_assigns(file: :file) expect_assigns(submission: :submission) expect_content_type('video/mp4') - expect_status(200) + expect_http_status(:ok) it 'renders the file content' do expect(response.body).to eq(file.native_file.read) @@ -141,7 +141,7 @@ describe SubmissionsController do expect_assigns(file: :file) expect_assigns(submission: :submission) expect_content_type('text/javascript') - expect_status(200) + expect_http_status(:ok) it 'renders the file content' do expect(response.body).to eq(file.content) @@ -167,7 +167,7 @@ describe SubmissionsController do before { get :show, params: {id: submission.id} } expect_assigns(submission: :submission) - expect_status(200) + expect_http_status(:ok) expect_template(:show) end @@ -179,7 +179,7 @@ describe SubmissionsController do before { get :show, params: {id: submission.id}, format: :json } expect_assigns(submission: :submission) - expect_status(200) + expect_http_status(:ok) %i[render run test].each do |action| describe "##{action}_url" do diff --git a/spec/support/controllers.rb b/spec/support/controllers.rb index 9246911a..3c50c350 100644 --- a/spec/support/controllers.rb +++ b/spec/support/controllers.rb @@ -49,9 +49,9 @@ def expect_redirect(path = nil) end end -def expect_status(status) +def expect_http_status(status) it "responds with status #{status}" do - expect(response.status).to eq(status) + expect(response).to have_http_status(status) end end From 7477e45282d5c73030b338a3daf8267c45751d41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Jul 2022 03:01:44 +0000 Subject: [PATCH 215/329] Bump nokogiri from 1.13.6 to 1.13.7 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.6 to 1.13.7. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.6...v1.13.7) --- updated-dependencies: - dependency-name: nokogiri 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 ec76b6be..24d0897d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -270,7 +270,7 @@ GEM timeout netrc (0.11.0) nio4r (2.5.8) - nokogiri (1.13.6) + nokogiri (1.13.7) mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) From ae4e8dab6d87a77f4b0a1714b99c31f0a081f316 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Jul 2022 03:01:18 +0000 Subject: [PATCH 216/329] Bump rails from 6.1.6 to 6.1.6.1 Bumps [rails](https://github.com/rails/rails) from 6.1.6 to 6.1.6.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.6...v6.1.6.1) --- 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 24d0897d..1133cd3b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,64 +13,64 @@ GEM remote: https://rubygems.org/ specs: ZenTest (4.12.1) - actioncable (6.1.6) - actionpack (= 6.1.6) - activesupport (= 6.1.6) + actioncable (6.1.6.1) + actionpack (= 6.1.6.1) + activesupport (= 6.1.6.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.6) - actionpack (= 6.1.6) - activejob (= 6.1.6) - activerecord (= 6.1.6) - activestorage (= 6.1.6) - activesupport (= 6.1.6) + actionmailbox (6.1.6.1) + actionpack (= 6.1.6.1) + activejob (= 6.1.6.1) + activerecord (= 6.1.6.1) + activestorage (= 6.1.6.1) + activesupport (= 6.1.6.1) mail (>= 2.7.1) - actionmailer (6.1.6) - actionpack (= 6.1.6) - actionview (= 6.1.6) - activejob (= 6.1.6) - activesupport (= 6.1.6) + actionmailer (6.1.6.1) + actionpack (= 6.1.6.1) + actionview (= 6.1.6.1) + activejob (= 6.1.6.1) + activesupport (= 6.1.6.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.6) - actionview (= 6.1.6) - activesupport (= 6.1.6) + actionpack (6.1.6.1) + actionview (= 6.1.6.1) + activesupport (= 6.1.6.1) 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.6) - actionpack (= 6.1.6) - activerecord (= 6.1.6) - activestorage (= 6.1.6) - activesupport (= 6.1.6) + actiontext (6.1.6.1) + actionpack (= 6.1.6.1) + activerecord (= 6.1.6.1) + activestorage (= 6.1.6.1) + activesupport (= 6.1.6.1) nokogiri (>= 1.8.5) - actionview (6.1.6) - activesupport (= 6.1.6) + actionview (6.1.6.1) + activesupport (= 6.1.6.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.6) - activesupport (= 6.1.6) + activejob (6.1.6.1) + activesupport (= 6.1.6.1) globalid (>= 0.3.6) - activemodel (6.1.6) - activesupport (= 6.1.6) + activemodel (6.1.6.1) + activesupport (= 6.1.6.1) activemodel-serializers-xml (1.0.2) activemodel (> 5.x) activesupport (> 5.x) builder (~> 3.1) - activerecord (6.1.6) - activemodel (= 6.1.6) - activesupport (= 6.1.6) - activestorage (6.1.6) - actionpack (= 6.1.6) - activejob (= 6.1.6) - activerecord (= 6.1.6) - activesupport (= 6.1.6) + activerecord (6.1.6.1) + activemodel (= 6.1.6.1) + activesupport (= 6.1.6.1) + activestorage (6.1.6.1) + actionpack (= 6.1.6.1) + activejob (= 6.1.6.1) + activerecord (= 6.1.6.1) + activesupport (= 6.1.6.1) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.6) + activesupport (6.1.6.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -176,7 +176,7 @@ GEM http-accept (1.7.0) http-cookie (1.0.5) domain_name (~> 0.5) - i18n (1.10.0) + i18n (1.11.0) concurrent-ruby (~> 1.0) i18n-js (3.9.2) i18n (>= 0.6.6) @@ -315,20 +315,20 @@ GEM rack rack-test (2.0.2) rack (>= 1.3) - rails (6.1.6) - actioncable (= 6.1.6) - actionmailbox (= 6.1.6) - actionmailer (= 6.1.6) - actionpack (= 6.1.6) - actiontext (= 6.1.6) - actionview (= 6.1.6) - activejob (= 6.1.6) - activemodel (= 6.1.6) - activerecord (= 6.1.6) - activestorage (= 6.1.6) - activesupport (= 6.1.6) + rails (6.1.6.1) + actioncable (= 6.1.6.1) + actionmailbox (= 6.1.6.1) + actionmailer (= 6.1.6.1) + actionpack (= 6.1.6.1) + actiontext (= 6.1.6.1) + actionview (= 6.1.6.1) + activejob (= 6.1.6.1) + activemodel (= 6.1.6.1) + activerecord (= 6.1.6.1) + activestorage (= 6.1.6.1) + activesupport (= 6.1.6.1) bundler (>= 1.15.0) - railties (= 6.1.6) + railties (= 6.1.6.1) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -357,9 +357,9 @@ GEM rails (>= 5.0, < 7) remotipart (~> 1.3) sassc-rails (>= 1.3, < 3) - railties (6.1.6) - actionpack (= 6.1.6) - activesupport (= 6.1.6) + railties (6.1.6.1) + actionpack (= 6.1.6.1) + activesupport (= 6.1.6.1) method_source rake (>= 12.2) thor (~> 1.0) From 5707e4c9146cd7785cfad992a7d320a0552b7f11 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 00:35:09 +0200 Subject: [PATCH 217/329] Use secure cookies for production and staging --- config/initializers/session_store.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb index 234f4f22..57edb098 100644 --- a/config/initializers/session_store.rb +++ b/config/initializers/session_store.rb @@ -5,4 +5,5 @@ Rails.application.config.session_store :cookie_store, key: '_code_ocean_session', expire_after: 1.month, + secure: Rails.env.production? || Rails.env.staging?, path: Rails.application.config.relative_url_root From 56eab88f8866c96ddb900853ff40d3031ddeb0b8 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 00:35:43 +0200 Subject: [PATCH 218/329] Gracefully handle the deletion of non-existing runners --- lib/runner/strategy/poseidon.rb | 2 ++ spec/lib/runner/strategy/poseidon_spec.rb | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/runner/strategy/poseidon.rb b/lib/runner/strategy/poseidon.rb index e6d68de7..2991aa34 100644 --- a/lib/runner/strategy/poseidon.rb +++ b/lib/runner/strategy/poseidon.rb @@ -101,6 +101,8 @@ class Runner::Strategy::Poseidon < Runner::Strategy Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Destroying runner at #{runner_url}" } response = self.class.http_connection.delete runner_url self.class.handle_error response unless response.status == 204 + rescue Runner::Error::RunnerNotFound + Rails.logger.debug { "#{Time.zone.now.getutc.inspect}: Runner not found, nothing to destroy" } rescue Faraday::Error => e raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}") ensure diff --git a/spec/lib/runner/strategy/poseidon_spec.rb b/spec/lib/runner/strategy/poseidon_spec.rb index 73259815..e3e24c26 100644 --- a/spec/lib/runner/strategy/poseidon_spec.rb +++ b/spec/lib/runner/strategy/poseidon_spec.rb @@ -312,8 +312,15 @@ describe Runner::Strategy::Poseidon do end end + context 'when Poseidon returns NotFound (404)' do + let(:response_status) { 404 } + + it 'raises an error' do + expect { action.call }.not_to raise_error(Runner::Error::RunnerNotFound) + end + end + include_examples 'Unauthorized (401) error handling' - include_examples 'NotFound (404) error handling' include_examples 'InternalServerError (500) error handling' include_examples 'unknown response status error handling' include_examples 'Faraday error handling' From 1183f5cdcd7e602f701830d048c886c5070d56c0 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 00:36:37 +0200 Subject: [PATCH 219/329] Ensure that the testrun[:status] is available in more cases --- app/controllers/submissions_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 707275c2..836fa319 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -93,7 +93,7 @@ class SubmissionsController < ApplicationController client_socket.onclose do |_event| runner_socket&.close(:terminated_by_client) - # We do not update the @testrun[:status] by design, it would be missleading + @testrun[:status] ||= :terminated_by_client end client_socket.onmessage do |raw_event| @@ -187,11 +187,13 @@ class SubmissionsController < ApplicationController send_and_store client_socket, {cmd: :status, status: :timeout} close_client_connection(client_socket) Rails.logger.debug { "Running a submission timed out: #{e.message}" } + @testrun[:status] ||= :timeout @testrun[:output] = "timeout: #{@testrun[:output]}" extract_durations(e) rescue Runner::Error => e send_and_store client_socket, {cmd: :status, status: :container_depleted} close_client_connection(client_socket) + @testrun[:status] ||= :container_depleted Rails.logger.debug { "Runner error while running a submission: #{e.message}" } extract_durations(e) ensure From 9587ecb2b11205701067c0749809e64c895387fb Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 00:37:05 +0200 Subject: [PATCH 220/329] Resolve bug where duration of not-started runner cannot be calculated --- app/controllers/submissions_controller.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/submissions_controller.rb b/app/controllers/submissions_controller.rb index 836fa319..22aac5f3 100644 --- a/app/controllers/submissions_controller.rb +++ b/app/controllers/submissions_controller.rb @@ -308,7 +308,11 @@ class SubmissionsController < ApplicationController end def send_and_store(client_socket, message) - message[:timestamp] = ActiveSupport::Duration.build(Time.zone.now - @testrun[:starting_time]) + message[:timestamp] = if @testrun[:starting_time] + ActiveSupport::Duration.build(Time.zone.now - @testrun[:starting_time]) + else + 0.seconds + end @testrun[:messages].push message @testrun[:status] = message[:status] if message[:status] client_socket.send_data JSON.dump(message) From 390e4f8f35d7b726f94da2bd15372b4974548025 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 00:40:14 +0200 Subject: [PATCH 221/329] Bundle update --- Gemfile.lock | 4 +-- yarn.lock | 82 ++++++++++++++++++++++++++-------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1133cd3b..ea9bdbf0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -176,7 +176,7 @@ GEM http-accept (1.7.0) http-cookie (1.0.5) domain_name (~> 0.5) - i18n (1.11.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) i18n-js (3.9.2) i18n (>= 0.6.6) @@ -416,7 +416,7 @@ GEM rubocop-ast (>= 1.18.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.18.0) + rubocop-ast (1.19.1) parser (>= 3.1.1.0) rubocop-performance (1.14.2) rubocop (>= 1.7.0, < 2.0) diff --git a/yarn.lock b/yarn.lock index 55f342eb..101af6e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1104,9 +1104,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "18.0.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" - integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== + version "18.0.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.4.tgz#48aedbf35efb3af1248e4cd4d792c730290cd5d6" + integrity sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1747,14 +1747,14 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.0, browserslist@^4.6.4: - version "4.21.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.1, browserslist@^4.6.4: + version "4.21.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.2.tgz#59a400757465535954946a400b841ed37e2b4ecf" + integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA== dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" + caniuse-lite "^1.0.30001366" + electron-to-chromium "^1.4.188" + node-releases "^2.0.6" update-browserslist-db "^1.0.4" buffer-from@^1.0.0: @@ -1903,10 +1903,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.30001359: - version "1.0.30001363" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz#26bec2d606924ba318235944e1193304ea7c4f15" - integrity sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001366: + version "1.0.30001366" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001366.tgz#c73352c83830a9eaf2dea0ff71fb4b9a4bbaa89c" + integrity sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2195,17 +2195,17 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.3.tgz#7d8503185be76bb6d8d592c291a4457a8e440aa9" - integrity sha512-WSzUs2h2vvmKsacLHNTdpyOC9k43AEhcGoFlVgCY4L7aw98oSBKtPL6vD0/TqZjRWRQYdDSLkzZIni4Crbbiqw== + version "3.23.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.4.tgz#56ad4a352884317a15f6b04548ff7139d23b917f" + integrity sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q== dependencies: - browserslist "^4.21.0" + browserslist "^4.21.1" semver "7.0.0" core-js@^3.16.2: - version "3.23.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.3.tgz#3b977612b15da6da0c9cc4aec487e8d24f371112" - integrity sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q== + version "3.23.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.4.tgz#92d640faa7f48b90bbd5da239986602cfc402aa6" + integrity sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ== core-util-is@~1.0.0: version "1.0.3" @@ -2955,10 +2955,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.172: - version "1.4.184" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.184.tgz#381d4d111fc82d3376ed690dfb621e675f9078a9" - integrity sha512-IADi390FRdvxWfVX3hjzfTDNVHiTqVo9ar53/7em/SfhUG9YcjVhyQecY/XwmBHRKden/wFud7RWOUH7+7LFng== +electron-to-chromium@^1.4.188: + version "1.4.190" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.190.tgz#c356196bd469cec230fe78e666b4d8628f12eb8a" + integrity sha512-dDW9D5xT+ODGh9rlK2sQeJR0xgV1nrNn3/K4IV8k74QbmKN61dm5GKMSwerdpTpazrrkK6wwcgjGBoQ/Nx6L5A== elliptic@^6.5.3: version "6.5.4" @@ -3692,9 +3692,9 @@ hex-color-regex@^1.1.0: integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== highlight.js@^11.5.1: - version "11.5.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.5.1.tgz#027c24e4509e2f4dcd00b4a6dda542ce0a1f7aea" - integrity sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q== + version "11.6.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.6.0.tgz#a50e9da05763f1bb0c1322c8f4f755242cff3f5a" + integrity sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw== hmac-drbg@^1.0.1: version "1.0.1" @@ -4284,9 +4284,9 @@ jest-worker@^26.5.0: supports-color "^7.0.0" jquery-ui@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.1.tgz#d0b7a42e73a04c31bb5706adf86f6f8942f64eaa" - integrity sha512-2VlU59N5P4HaumDK1Z3XEVjSvegFbEOQRgpHUBaB2Ak98Axl3hFhJ6RFcNQNuk9SfL6WxIbuLst8dW/U56NSiA== + version "1.13.2" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.2.tgz#de03580ae6604773602f8d786ad1abfb75232034" + integrity sha512-wBZPnqWs5GaYJmo1Jj0k/mrSkzdQzKDwhXNtHKcBdAcKVxMM3KNYFq+iJ2i1rwiG53Z8M4mTn3Qxrm17uH1D4Q== dependencies: jquery ">=1.8.0 <4.0.0" @@ -4852,10 +4852,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== normalize-path@^2.1.1: version "2.1.1" @@ -6967,18 +6967,18 @@ terser-webpack-plugin@^4.2.3: webpack-sources "^1.4.3" terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + version "4.8.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" + integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== dependencies: commander "^2.20.0" source-map "~0.6.1" source-map-support "~0.5.12" terser@^5.3.4: - version "5.14.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" - integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== + version "5.14.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" + integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" From baf70a0c069bf06d7b9657bbc1345b3335eab18d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 13:35:18 +0200 Subject: [PATCH 222/329] Sanitize locale input. Closes CODEOCEAN-9E --- app/controllers/application_controller.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index dd5882f5..bb42b239 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -71,7 +71,7 @@ class ApplicationController < ActionController::Base private :render_error def switch_locale(&action) - session[:locale] = params[:custom_locale] || params[:locale] || session[:locale] + session[:locale] = sanitize_locale(params[:custom_locale] || params[:locale] || session[:locale]) locale = session[:locale] || I18n.default_locale Sentry.set_extras(locale: locale) I18n.with_locale(locale, &action) @@ -96,4 +96,18 @@ class ApplicationController < ActionController::Base @embed_options end private :load_embed_options + + # Sanitize given locale. + # + # Return `nil` if the locale is blank or not available. + # + def sanitize_locale(locale) + return if locale.blank? + + locale = locale.downcase.to_sym + return unless I18n.available_locales.include?(locale) + + locale + end + private :sanitize_locale end From c792b99523211e92d3d0496b801e340090c50ad9 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 15 Jul 2022 14:02:10 +0200 Subject: [PATCH 223/329] Fix tests for latest locale change --- spec/controllers/application_controller_spec.rb | 4 ++-- spec/controllers/sessions_controller_spec.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index d6e4f672..26332f6b 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -43,14 +43,14 @@ describe ApplicationController do context "when using the 'custom_locale' parameter" do it 'overwrites the session' do - expect(session).to receive(:[]=).with(:locale, locale.to_s) + expect(session).to receive(:[]=).with(:locale, locale) get :welcome, params: {custom_locale: locale} end end context "when using the 'locale' parameter" do it 'overwrites the session' do - expect(session).to receive(:[]=).with(:locale, locale.to_s) + expect(session).to receive(:[]=).with(:locale, locale) get :welcome, params: {locale: locale} end end diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index f4edd27d..df3a7351 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -86,9 +86,9 @@ describe SessionsController do it 'sets the specified locale' do expect(controller).to receive(:switch_locale).and_call_original - i18n = class_double I18n, locale: locale.to_s + i18n = class_double I18n, locale: locale allow(I18n).to receive(:locale=).with(I18n.default_locale).and_call_original - allow(I18n).to receive(:locale=).with(locale.to_s).and_return(i18n) + allow(I18n).to receive(:locale=).with(locale).and_return(i18n) perform_request expect(i18n.locale.to_sym).to eq(locale) end From 3a80d5ea101152f9e2d9c83635206162047ed6ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 03:01:29 +0000 Subject: [PATCH 224/329] Bump rubocop-performance from 1.14.2 to 1.14.3 Bumps [rubocop-performance](https://github.com/rubocop/rubocop-performance) from 1.14.2 to 1.14.3. - [Release notes](https://github.com/rubocop/rubocop-performance/releases) - [Changelog](https://github.com/rubocop/rubocop-performance/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-performance/compare/v1.14.2...v1.14.3) --- updated-dependencies: - dependency-name: rubocop-performance 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 ea9bdbf0..6cd8742d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -418,7 +418,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.19.1) parser (>= 3.1.1.0) - rubocop-performance (1.14.2) + rubocop-performance (1.14.3) rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) rubocop-rails (2.15.2) From d7c5e89624bf324dede325dd1aa610b5f6c0d178 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 19 Jul 2022 15:24:41 +0200 Subject: [PATCH 225/329] Remove unused columns from schema.rb --- db/schema.rb | 2709 +------------------------------------------------- 1 file changed, 10 insertions(+), 2699 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index d60b830b..c042354f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -18,8 +18,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do enable_extension "plpgsql" create_table "anomaly_notifications", id: :serial, force: :cascade do |t| - t.integer "user_id" t.string "user_type" + t.integer "user_id" t.integer "exercise_id" t.integer "exercise_collection_id" t.string "reason" @@ -34,10 +34,10 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.string "api_key" t.datetime "created_at" t.datetime "updated_at" + t.string "user_type" t.integer "user_id" t.string "push_url" t.string "check_uuid_url" - t.string "user_type" t.index ["user_type", "user_id"], name: "index_codeharbor_links_on_user_type_and_user_id" end @@ -124,8 +124,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "events", id: :serial, force: :cascade do |t| t.string "category" t.string "data" - t.integer "user_id" t.string "user_type" + t.integer "user_id" t.integer "exercise_id" t.integer "file_id" t.datetime "created_at", null: false @@ -165,8 +165,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "created_at" t.datetime "updated_at" t.boolean "use_anomaly_detection", default: false - t.integer "user_id" t.string "user_type" + t.integer "user_id" t.index ["user_type", "user_id"], name: "index_exercise_collections_on_user_type_and_user_id" end @@ -228,22 +228,6 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "created_at" t.datetime "updated_at" t.string "role", default: "learner", null: false - t.string "gender" - t.string "age" - t.integer "skill_level_pre_java17" - t.integer "skill_level_pre_java20" - t.integer "skill_level_pre_java21" - t.integer "skill_level_pre_python20" - t.boolean "tips_group_python20" - t.boolean "linter_group_python20" - t.string "intervention_group_java21" - t.boolean "community_solution_group_java21" - t.integer "skill_level_post_java21" - t.integer "skill_level_post_python20" - t.float "points_java17" - t.float "points_java20" - t.float "points_java21" - t.float "points_python20" end create_table "file_templates", id: :serial, force: :cascade do |t| @@ -270,8 +254,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "files", id: :serial, force: :cascade do |t| t.text "content" - t.integer "context_id" t.string "context_type" + t.integer "context_id" t.integer "file_id" t.integer "file_type_id" t.boolean "hidden" @@ -322,819 +306,6 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "updated_at" end - create_table "java17_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "warum_nimmst_du_am_kurs_teil" - t.text "motivation_wenn_vorgaenger_kurs_belegt" - t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" - t.text "andere_antwort" - t.text "was_ist_ziel_und_motivation_zur_belegung" - end - - create_table "java17_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java" - t.text "wie_sicher_klassen_und_objekte_in_java" - t.text "wie_sicher_kontrollstrukturen_in_java" - t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" - end - - create_table "java17_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "welche_haupt__aufgabe_hat_ein_interface" - t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" - t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" - t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" - t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" - t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" - t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" - t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" - t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" - t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" - t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" - t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" - t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" - t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" - t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" - t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" - t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" - t.text "welche_fehler.zeile_5_von_papageijava" - t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" - t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" - t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" - t.text "welche_fehler.zeile_3_von_zoojava" - t.text "welche_fehler.zeile_4_von_zoojava" - t.text "welche_fehler.zeilen_5___9_von_zoojava" - t.text "welche_fehler.zeile_11_von_zoojava" - t.text "welche_fehler.zeile_13_von_zoojava" - t.text "welche_fehler.zeile_14_von_zoojava" - t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" - end - - create_table "java17_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java_nach_w1_w2" - t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" - t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "java17_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" - t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" - end - - create_table "java17_5-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" - t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "java17_6-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "wrdest_du_diesen_kurs_weiterempfehlen" - t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" - t.text "grundstzlich_finde_ich_die_mglichkeit_aufgaben_im_team_zu_bearb" - t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" - t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" - t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" - t.text "interventions_hilfreich" - t.text "interventions_zeitpunkt" - t.text "videotelefonie.andere_teilnehmer" - t.text "videotelefonie.kursbetreuer_oder_tutoren" - t.text "videotelefonie.ich_wre_bereit_fr_das_individuelle_tutoring_durc" - t.text "videotelefonie.ich_habe_nicht_die_technische_mglichkeit_zur_vid" - t.text "vieotelefonie.ich_wrde_dieses_feature_aus_bedenken_bezglich_des" - t.text "whrend_bearbeitung_habe_ich" - t.text "wie_alt_bist_du" - t.text "welches_geschlecht_hast_du" - t.text "wrdest_du_open_hpi_weiterempfehlen" - end - - create_table "java17_6-2_generelles_feedback", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "rahmenhandlung_wnscht_du_dir_beispielsweise_mehr_rahmenhandlung" - t.text "code_ocean_wnscht_du_dir_vielleicht_umfangreichere_bungen_in_co" - t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zur_g" - end - - create_table "java17_7_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "age_group" - t.text "birth_date" - t.text "access_groups" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.integer "sessions" - t.integer "avg_session_duration" - t.decimal "total_session_duration" - t.integer "video_play_activity" - t.decimal "video_play_activity_percentage" - t.integer "video_downloads_activity" - t.decimal "video_downloads_activity_percentage" - t.integer "slide_downloads_activity" - t.decimal "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.decimal "quiz_performance" - t.integer "graded_quiz_performance" - t.decimal "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.decimal "points_percentage" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.decimal "woche_3_visited_percentage_section" - t.decimal "exkurs__modellierung_visited_percentage_section" - t.decimal "woche_4_visited_percentage_section" - t.text "exkurs__speicherverwaltung_visited_percentage_section" - t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" - t.decimal "i_like_i_wish_visited_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.decimal "woche_2_self_tests_percentage_section" - t.decimal "woche_3_self_tests_percentage_section" - t.text "exkurs__modellierung_self_tests_percentage_section" - t.integer "woche_4_self_tests_percentage_section" - t.text "exkurs__speicherverwaltung_self_tests_percentage_section" - t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" - t.text "i_like_i_wish_self_tests_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.integer "woche_3_assignments_percentage_section" - t.text "exkurs__modellierung_assignments_percentage_section" - t.integer "woche_4_assignments_percentage_section" - t.text "exkurs__speicherverwaltung_assignments_percentage_section" - t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" - t.text "i_like_i_wish_assignments_percentage_section" - t.integer "woche_1_bonus_percentage_section" - t.integer "woche_2_bonus_percentage_section" - t.integer "woche_3_bonus_percentage_section" - t.integer "exkurs__modellierung_bonus_percentage_section" - t.integer "woche_4_bonus_percentage_section" - t.text "exkurs__speicherverwaltung_bonus_percentage_section" - t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "woche_1___11_ein_erstes_programm_percentage_quiz" - t.text "woche_1___12_klassen_und_objekte_percentage_quiz" - t.text "woche_1___13_variablen_1_percentage_quiz" - t.text "woche_1___14_variablen_2_percentage_quiz" - t.text "woche_1___15_attribute_percentage_quiz" - t.text "woche_1___16_methoden_percentage_quiz" - t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" - t.text "woche_1___hausaufgabe_woche_1_percentage_quiz" - t.text "woche_2___recap_percentage_quiz" - t.text "woche_2___21_parameter_percentage_quiz" - t.text "woche_2___221_boolean_percentage_quiz" - t.text "woche_2___222_boolean_percentage_quiz" - t.text "woche_2___23_verzweigungen_percentage_quiz" - t.text "woche_2___24_schleifen_percentage_quiz" - t.text "woche_2___25_primitive_arrays_percentage_quiz" - t.text "woche_2___26_konstruktoren_percentage_quiz" - t.text "woche_2___hausaufgabe_woche_2_percentage_quiz" - t.text "woche_3___31_vererbung_percentage_quiz" - t.text "woche_3___32_sichtbarkeiten_percentage_quiz" - t.text "woche_3___33_kapselung_percentage_quiz" - t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" - t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" - t.text "woche_3___36_abstrakte_klassen_percentage_quiz" - t.text "woche_3___37_polymorphie_percentage_quiz" - t.text "woche_3___38_this_is_super_percentage_quiz" - t.text "woche_3___hausaufgabe_woche_3_percentage_quiz" - t.text "woche_4___41_objektdatentypen_percentage_quiz" - t.text "woche_4___42_type_casting_percentage_quiz" - t.text "woche_4___43_collections_percentage_quiz" - t.text "woche_4___44_foreach_schleifen_percentage_quiz" - t.text "woche_4___45_interfaces_percentage_quiz" - t.text "woche_4___hausaufgabe_woche_4_percentage_quiz" - t.text "course_code" - end - - create_table "java20_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "warum_nimmst_du_am_kurs_teil" - t.text "motivation_wenn_vorgaenger_kurs_belegt" - t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" - t.text "andere_antwort" - t.text "was_ist_ziel_und_motivation_zur_belegung" - end - - create_table "java20_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java" - t.text "wie_sicher_klassen_und_objekte_in_java" - t.text "wie_sicher_kontrollstrukturen_in_java" - t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" - t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" - end - - create_table "java20_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "welche_haupt__aufgabe_hat_ein_interface" - t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" - t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" - t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" - t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" - t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" - t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" - t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" - t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" - t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" - t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" - t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" - t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" - t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" - t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" - t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" - t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" - t.text "welche_fehler.zeile_5_von_papageijava" - t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" - t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" - t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" - t.text "welche_fehler.zeile_3_von_zoojava" - t.text "welche_fehler.zeile_4_von_zoojava" - t.text "welche_fehler.zeilen_5___9_von_zoojava" - t.text "welche_fehler.zeile_11_von_zoojava" - t.text "welche_fehler.zeile_13_von_zoojava" - t.text "welche_fehler.zeile_14_von_zoojava" - t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" - end - - create_table "java20_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java_nach_w1_w2" - t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" - t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" - t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "java20_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" - t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" - end - - create_table "java20_4-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" - t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" - t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "java20_5-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "wrdest_du_diesen_kurs_weiterempfehlen" - t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" - t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" - t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" - t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" - t.text "co_support_convention.eigenen_programme_verbessern_und_alle_hin" - t.text "co_support_convention.eigenen_programme_verbessern_und_einige_h" - t.text "co_support_convention.mich_wrde_das_feedback_in_code_ocean_zwar" - t.text "co_support_convention.das_zustzliche_feedback_in_code_ocean_wrd" - t.text "co_support_convention.feedback_zur_struktur_des_codes_ist_grund" - t.text "whrend_bearbeitung_habe_ich._mich_meistens_nur_mit_der_aufgabe_" - t.text "whrend_bearbeitung_habe_ich._nebenbei_oft_was_anderes_gemacht_d" - t.text "whrend_bearbeitung_habe_ich._mich_mal_nur_mit_der_aufgabe_besch" - t.text "whrend_bearbeitung_habe_ich._mir_das_video__die_folien_der_vorh" - t.text "whrend_bearbeitung_habe_ich._im_forum_fragen_gestellt_oder_bean" - t.text "whrend_bearbeitung_habe_ich._in_code_ocean_kommentaranfragen_vo" - t.text "wie_alt_bist_du" - t.text "welches_geschlecht_hast_du" - t.text "wrdest_du_open_hpi_weiterempfehlen" - end - - create_table "java20_5-2_generelles_feedback", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "rahmenhandlung_erzhle_uns_bitte_ein_bisschen_mehr_darber_wie_di" - t.text "code_ocean_gerne_mchten_wir_von_dir_mehr_ber_deine_nutzung_von_" - t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zum_s" - end - - create_table "java20_6_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "age_group" - t.text "birth_date" - t.text "access_groups" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.integer "sessions" - t.integer "avg_session_duration" - t.decimal "total_session_duration" - t.integer "video_play_activity" - t.decimal "video_play_activity_percentage" - t.integer "video_downloads_activity" - t.decimal "video_downloads_activity_percentage" - t.integer "slide_downloads_activity" - t.decimal "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.decimal "quiz_performance" - t.integer "graded_quiz_performance" - t.decimal "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.integer "points_percentage" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.decimal "woche_3_visited_percentage_section" - t.decimal "woche_4_visited_percentage_section" - t.text "exkurs__speicherverwaltung_visited_percentage_section" - t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" - t.decimal "i_like_i_wish_visited_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.integer "woche_2_self_tests_percentage_section" - t.integer "woche_3_self_tests_percentage_section" - t.integer "woche_4_self_tests_percentage_section" - t.text "exkurs__speicherverwaltung_self_tests_percentage_section" - t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" - t.text "i_like_i_wish_self_tests_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.integer "woche_3_assignments_percentage_section" - t.integer "woche_4_assignments_percentage_section" - t.text "exkurs__speicherverwaltung_assignments_percentage_section" - t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" - t.text "i_like_i_wish_assignments_percentage_section" - t.integer "woche_1_bonus_percentage_section" - t.integer "woche_2_bonus_percentage_section" - t.integer "woche_3_bonus_percentage_section" - t.integer "woche_4_bonus_percentage_section" - t.text "exkurs__speicherverwaltung_bonus_percentage_section" - t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "woche_1___11_ein_erstes_programm_percentage_quiz" - t.text "woche_1___12_klassen_und_objekte_percentage_quiz" - t.text "woche_1___13_variablen_1_percentage_quiz" - t.text "woche_1___14_variablen_2_percentage_quiz" - t.text "woche_1___15_attribute_percentage_quiz" - t.text "woche_1___16_methoden_percentage_quiz" - t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" - t.text "woche_1___18_hausaufgabe_percentage_quiz" - t.text "woche_1___hausaufgabe_woche_1_original_percentage_quiz" - t.text "woche_2___recap_percentage_quiz" - t.text "woche_2___21_parameter_percentage_quiz" - t.text "woche_2___221_boolean_percentage_quiz" - t.text "woche_2___222_boolean_percentage_quiz" - t.text "woche_2___23_verzweigungen_percentage_quiz" - t.text "woche_2___24_schleifen_percentage_quiz" - t.text "woche_2___25_primitive_arrays_percentage_quiz" - t.text "woche_2___26_konstruktoren_percentage_quiz" - t.text "woche_2___27_hausaufgabe_percentage_quiz" - t.text "woche_2___hausaufgabe_woche_2_original_percentage_quiz" - t.text "woche_3___31_vererbung_percentage_quiz" - t.text "woche_3___32_sichtbarkeiten_percentage_quiz" - t.text "woche_3___33_kapselung_percentage_quiz" - t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" - t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" - t.text "woche_3___36_abstrakte_klassen_percentage_quiz" - t.text "woche_3___37_polymorphie_percentage_quiz" - t.text "woche_3___38_this_is_super_percentage_quiz" - t.text "woche_3___deep_dive_konventionen_in_java_percentage_quiz" - t.text "woche_3___deep_dive_best_practices_percentage_quiz" - t.text "woche_3___39_hausaufgabe_percentage_quiz" - t.text "woche_3___hausaufgabe_woche_3_original_percentage_quiz" - t.text "woche_4___41_objektdatentypen_percentage_quiz" - t.text "woche_4___42_type_casting_percentage_quiz" - t.text "woche_4___43_collections_percentage_quiz" - t.text "woche_4___44_foreach_schleifen_percentage_quiz" - t.text "woche_4___45_interfaces_percentage_quiz" - t.text "woche_4___46_hausaufgabe_percentage_quiz" - t.text "woche_4___hausaufgabe_woche_4_original_percentage_quiz" - t.text "course_code" - end - - create_table "java21_0-1_umfrage_zum_kursstart", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.decimal "points" - t.text "wie_alt_bist_du" - t.text "was_ist_dein_primres_ziel_und_die_motivation_den_kurs_zu_belege" - t.text "andere_ziele" - t.text "in_welchem_rahmen_nimmst_du_an_dem_kurs_teil" - t.text "erwartungen_lerninhalte_und_lernziele" - t.text "kennengelernt.mooc_aggregator" - t.text "kennengelernt.zeitung_oder_zeitschrift" - t.text "kennengelernt.facebook" - t.text "kennengelernt.twitter" - t.text "kennengelernt.open_hpi_seite" - t.text "kennengelernt.freunde_oder_bekannte" - t.text "kennengelernt.linked_in" - t.text "kennengelernt.xing" - t.text "kennengelernt.andere" - t.text "geplante_zeit_pro_woche" - t.text "medien_zum_lernen.bilder_und_grafiken" - t.text "medien_zum_lernen.videos_und_animationen" - t.text "medien_zum_lernen.podcasts__audio_bcher" - t.text "medien_zum_lernen.texte_digital_nicht_ausgedruckt" - t.text "medien_zum_lernen.texte_auf_papier_ausgedruckt" - t.text "medien_zum_lernen.persnlicher_austausch_mit_anderen" - t.text "kennst_du_das_konzept_der_lerntypen" - t.text "lerntyp_relevant" - t.text "welcher_lerntyp_bist_du.visuell" - t.text "welcher_lerntyp_bist_du.haptisch_motorisch" - t.text "welcher_lerntyp_bist_du.auditiv" - t.text "welcher_lerntyp_bist_du.kommunikativ" - t.text "welcher_lerntyp_bist_du.medienorientiert" - t.text "welcher_lerntyp_bist_du.keiner_davon" - end - - create_table "java21_0-2_deine_vorkenntnisse", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.decimal "points" - t.text "vorheriger_programmierkurs.ja_genau_einen_auf_open_hpi" - t.text "vorheriger_programmierkurs.ja_mehrere_auf_open_hpi" - t.text "vorheriger_programmierkurs.ja_auf_einer_anderen_plattform" - t.text "vorheriger_programmierkurs.ja_in_prsenz_zb_in_der_schule_univer" - t.text "vorheriger_programmierkurs.nein_noch_gar_nicht" - t.text "wie_schtzt_du_deine_programmiererfahrung_im_allgemeinen_ein" - t.text "openhpi_kurs_mit_codeocean" - t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_feedback_von_anderen" - t.text "gemeinsam_entwickeln.ich_habe_anderen_schon_einmal_feedback_zu_" - t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_mit_anderen_gemeinsa" - t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_gleichzeitig_mit_and" - t.text "gemeinsam_entwickeln.nein_noch_gar_nicht" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_arrays_und_listen_m" - t.text "hast_du_zum_thema_arrays_und_listen_bereits_praktische_programm" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_queues_und_stacks_m" - t.text "hast_du_zum_thema_queues_und_stacks_bereits_praktische_programm" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_java_generics_mit" - t.text "hast_du_zum_thema_java_generics_bereits_praktische_programmiere" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_foreach_schleifen_m" - t.text "hast_du_zum_thema_foreach_schleifen_bereits_praktische_programm" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_iteratoren_mit" - t.text "hast_du_zum_thema_iteratoren_bereits_praktische_programmiererfa" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_suchen_in_listen_mi" - t.text "hast_du_zum_thema_suchen_in_listen_bereits_praktische_programmi" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sortieralgorithmen_" - t.text "hast_du_zum_thema_sortieralgorithmen_bereits_praktische_program" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_equals_mit" - t.text "hast_du_zum_thema_equals_bereits_praktische_programmiererfahrun" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_compare_to_mit" - t.text "hast_du_zum_thema_compare_to_bereits_praktische_programmiererfa" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_bestimmung_der_prog" - t.text "hast_du_zum_thema_bestimmung_der_programmlaufzeit_bereits_prakt" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_rekursion_mit" - t.text "hast_du_zum_thema_rekursion_bereits_praktische_programmiererfah" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sets_und_maps_mit" - t.text "hast_du_zum_thema_sets_und_maps_bereits_praktische_programmiere" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_trees__bume_mit" - t.text "hast_du_zum_thema_trees__bume_bereits_praktische_programmiererf" - end - - create_table "java21_2-2_umfrage_sets_maps", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "hast_du_das_gefhl_das_thema_sets_und_maps_mit_den_von_uns_angeb" - t.text "hast_du_ein_verstndnis_dafr_entwickelt_fr_welche_anwendungsflle" - t.text "wie_sicher_fhlst_du_dich_gerade_damit_sets_oder_maps_im_eigenen" - t.text "was_wrde_dir_am_meisten_helfen_die_themen_set_und_map_noch_bess" - t.text "falls_du_in_der_letzten_frage_sonstiges_geantwortet_hast_freuen" - end - - create_table "java21_3-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.decimal "points" - t.text "hast_du_deine_persnlichen_lernziele_erreicht" - t.text "wie_schtzt_du_dein_wissen_zu_dem_thema_algorithmen_und_datenstr" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfehlen_w" - t.text "die_tipps_in_code_ocean_waren_hilfreich" - t.text "die_tipps_in_code_ocean_waren_einfach_zu_finden" - t.text "die_tipps_in_code_ocean_haben_zur_jeweiligen_aufgabe_gepasst" - t.text "durch_tipps_habe_ich_seltener_frage_oder_rfc_gestellt" - t.text "die_tipps_in_code_ocean_waren_zu_sehr_auf_die_jeweilige_aufgabe" - t.text "ich_knnte_mir_vorstellen_selbst_zustzliche_tipps_fr_die_aufgabe" - t.text "hast_du_weitere_wnsche_oder_ideen_wie_wir_die_tipps_verbessern_" - t.text "nenne_1_2_anwendungsflle_fr_sets_undoder_maps_die_dir_einfallen" - t.text "nach_welcher_zeit_wrdest_du_dir_einen_solchen_hinweise_wnschen" - t.text "unabhngig_von_der_zeit_wie_hilfreich_findest_du_diese_hinweise_" - t.text "unabhngig_von_der_zeit_wie_strend_findest_du_diese_hinweise_in_" - t.text "wunschinteraktion.eine_neue_kommentaranfrage_stellen" - t.text "wunschinteraktion.antworten_auf_eine_eigene_kommentaranfragen_l" - t.text "wunschinteraktion.fremde_kommentaranfragen_lesen" - t.text "wunschinteraktion.tipps_zur_aufgabe_ansehen" - t.text "wunschinteraktion.link_zum_kursforum_auf_open_hpi" - t.text "wunschinteraktion.link_zum_zugehrigen_video_oder_selbsttest_auf" - t.text "wunschinteraktion.erinnerung_daran_eine_pause_zu_machen" - t.text "wunschinteraktion.etwas_anderes" - t.text "wunschinteraktion.gar_nichts_ich_finde_die_hinweise_nicht_gut" - t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_hinweisen_wenn_du_in_d" - t.text "ich_fand_rfc_stellen_einfach_zu_finden" - t.text "ich_wnsche_mir_die_mglichkeit_gemeinsam_eine_musterlsung_zu_ers" - t.text "ich_traue_mir_zu_eine_nderung_an_der_musterlsung_vorzuschlagen" - t.text "ich_habe_freude_daran_an_der_musterlsung_mitzuwirken" - t.text "ich_wnsche_mir_eine_mglichkeit_vorherige_versionen_der_musterls" - t.text "ich_wnsche_mir_eine_mglichkeit_in_co_darueber_zu_diskutieren" - t.text "ich_bin_nur_an_der_finalen_musterlsung_interessiert_das_mitarbe" - t.text "ich_fnde_es_gut_wenn_es_mehrere_musterlsungen_zur_selben_aufgab" - t.text "ich_vertraue_einer_solchen_musterlsung_auch_wenn_diese_nicht_du" - t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_musterlsungen" - t.text "wir_hatten_euch_dazu_angeregt_alleine_oder_gemeinsam_mit_andere" - t.text "lernlogbuch.ich_habe_das_etherpad_in_den_collab_spaces_der_plat" - t.text "lernlogbuch.ich_habe_den_dateiupload_in_den_collab_spaces_genut" - t.text "lernlogbuch.ich_habe_das_private_forum_in_den_collab_spaces_gen" - t.text "lernlogbuch.ich_habe_ein_analoges_logbuch_gefhrt_papier_holz_st" - t.text "lernlogbuch.ich_habe_ein_anderes_online_tool_oder_eine_lokale_s" - t.text "lernlogbuch.ich_habe_kein_logbuch_gefhrt" - t.text "weiteres_zum_lernlogbuch" - t.text "beispiel_set_erinnern.das_schraubenzieherset_bei_dem_unterschie" - t.text "beispiel_set_erinnern.das_hash_set_von_detectives_bei_dem_versu" - t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_500_dateneintrg" - t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_die_unterschied" - t.text "beispiel_set_erinnern.die_zahlenmenge_bei_der_alle_zahlen_nur_e" - t.text "beispiel_set_erinnern.die_unterschiedlichen_brentatzen_die_die_" - t.text "beispiel_set_erinnern.das_beispiel_mit_den_blttern_unterschiedl" - t.text "beispiel_map_erinnern.das_weltkarten_beispiel_bei_dem_jedem_lan" - t.text "beispiel_map_erinnern.das_adressbuch_beispiel_bei_dem_jeder_per" - t.text "beispiel_map_erinnern.das_beispiel_wo_jedem_charakter_wie_detek" - t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_fr_jeden_der_10" - t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_insgesamt_500_h" - t.text "beispiel_map_erinnern.das_beispiel_mit_den_unterschiedlichen_ti" - t.text "beispiel_map_erinnern.das_beispiel_bei_dem_unterschiedliche_blt" - t.text "weiteres_feedback" - end - - create_table "java21_4_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "age_group" - t.text "birth_date" - t.text "access_groups" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.integer "sessions" - t.integer "avg_session_duration" - t.decimal "total_session_duration" - t.integer "video_play_activity" - t.decimal "video_play_activity_percentage" - t.integer "video_downloads_activity" - t.decimal "video_downloads_activity_percentage" - t.integer "slide_downloads_activity" - t.decimal "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.decimal "quiz_performance" - t.integer "graded_quiz_performance" - t.decimal "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.integer "points_percentage" - t.decimal "intro_visited_percentage_section" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.decimal "i_like_i_wish_visited_percentage_section" - t.integer "intro_self_tests_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.integer "woche_2_self_tests_percentage_section" - t.text "i_like_i_wish_self_tests_percentage_section" - t.text "intro_assignments_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.text "i_like_i_wish_assignments_percentage_section" - t.text "intro_bonus_percentage_section" - t.text "woche_1_bonus_percentage_section" - t.integer "woche_2_bonus_percentage_section" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "woche_1___11_wiederholung_arrays_und_listen_percentage_quiz" - t.text "woche_1___12_queues_und_stacks_percentage_quiz" - t.text "woche_1___14_schleifen_for_each_percentage_quiz" - t.text "woche_1___16_iteratoren_while_next_percentage_quiz" - t.text "woche_1___17_suchen_in_listen_percentage_quiz" - t.text "woche_1___17_suchen_in_unsortierten_listen_fragen_zur_bung_perc" - t.text "woche_1___19_sortieralgorithmen_bubble_sort_percentage_quiz" - t.text "woche_1___113_hausaufgabe_woche_1_percentage_quiz" - t.text "woche_1___110_equals_percentage_quiz" - t.text "woche_1___111_compare_to_und_equals___e_tivity_percentage_quiz" - t.text "woche_1___112_laufzeit_big_o___e_tivity_percentage_quiz" - t.text "woche_1___111_compare_to_percentage_quiz" - t.text "woche_1___112_laufzeit_big_o_percentage_quiz" - t.text "woche_2___25_sets_teil_33_percentage_quiz" - t.text "woche_2___25_sets_teil_23_percentage_quiz" - t.text "woche_2___29_balancierte_suchbume___interaktiver_simulator_perc" - t.text "woche_2___213_graphen___e_tivity_percentage_quiz" - t.text "woche_2___22_sortieralgorithmen_quick_sort_percentage_quiz" - t.text "woche_2___21_rekursion_percentage_quiz" - t.text "woche_2___24_datenstrukturen_percentage_quiz" - t.text "woche_2___25_sets_teil_13_percentage_quiz" - t.text "woche_2___26_maps_percentage_quiz" - t.text "woche_2___28_tree_operationen_percentage_quiz" - t.text "woche_2___29_balancierte_suchbume_percentage_quiz" - t.text "woche_2___210_suchen_in_bumen_percentage_quiz" - t.text "woche_2___211_weitere_trees_percentage_quiz" - t.text "woche_2___213_graphen_percentage_quiz" - t.text "woche_2___27_trees_percentage_quiz" - t.text "woche_2___216_abschlussprfung_percentage_quiz" - t.text "course_code" - end - create_table "linter_check_runs", force: :cascade do |t| t.bigint "linter_check_id", null: false t.string "scope" @@ -1165,1234 +336,6 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["external_users_id"], name: "index_lti_parameters_on_external_users_id" end - create_table "old_java17_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "warum_nimmst_du_am_kurs_teil" - t.text "motivation_wenn_vorgaenger_kurs_belegt" - t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" - t.text "andere_antwort" - t.text "was_ist_ziel_und_motivation_zur_belegung" - end - - create_table "old_java17_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java" - t.text "wie_sicher_klassen_und_objekte_in_java" - t.text "wie_sicher_kontrollstrukturen_in_java" - t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" - end - - create_table "old_java17_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "welche_haupt__aufgabe_hat_ein_interface" - t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" - t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" - t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" - t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" - t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" - t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" - t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" - t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" - t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" - t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" - t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" - t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" - t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" - t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" - t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" - t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" - t.text "welche_fehler.zeile_5_von_papageijava" - t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" - t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" - t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" - t.text "welche_fehler.zeile_3_von_zoojava" - t.text "welche_fehler.zeile_4_von_zoojava" - t.text "welche_fehler.zeilen_5___9_von_zoojava" - t.text "welche_fehler.zeile_11_von_zoojava" - t.text "welche_fehler.zeile_13_von_zoojava" - t.text "welche_fehler.zeile_14_von_zoojava" - t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" - end - - create_table "old_java17_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java_nach_w1_w2" - t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" - t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "old_java17_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" - t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" - end - - create_table "old_java17_5-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" - t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "old_java17_6-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "wrdest_du_diesen_kurs_weiterempfehlen" - t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" - t.text "grundstzlich_finde_ich_die_mglichkeit_aufgaben_im_team_zu_bearb" - t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" - t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" - t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" - t.text "interventions_hilfreich" - t.text "interventions_zeitpunkt" - t.text "videotelefonie.andere_teilnehmer" - t.text "videotelefonie.kursbetreuer_oder_tutoren" - t.text "videotelefonie.ich_wre_bereit_fr_das_individuelle_tutoring_durc" - t.text "videotelefonie.ich_habe_nicht_die_technische_mglichkeit_zur_vid" - t.text "vieotelefonie.ich_wrde_dieses_feature_aus_bedenken_bezglich_des" - t.text "whrend_bearbeitung_habe_ich" - t.text "wie_alt_bist_du" - t.text "welches_geschlecht_hast_du" - t.text "wrdest_du_open_hpi_weiterempfehlen" - end - - create_table "old_java17_6-2_generelles_feedback", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "rahmenhandlung_wnscht_du_dir_beispielsweise_mehr_rahmenhandlung" - t.text "code_ocean_wnscht_du_dir_vielleicht_umfangreichere_bungen_in_co" - t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zur_g" - end - - create_table "old_java17_7_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "age_group" - t.text "birth_date" - t.text "access_groups" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.integer "sessions" - t.integer "avg_session_duration" - t.decimal "total_session_duration" - t.integer "video_play_activity" - t.decimal "video_play_activity_percentage" - t.integer "video_downloads_activity" - t.decimal "video_downloads_activity_percentage" - t.integer "slide_downloads_activity" - t.decimal "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.decimal "quiz_performance" - t.integer "graded_quiz_performance" - t.decimal "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.decimal "points_percentage" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.decimal "woche_3_visited_percentage_section" - t.decimal "exkurs__modellierung_visited_percentage_section" - t.decimal "woche_4_visited_percentage_section" - t.text "exkurs__speicherverwaltung_visited_percentage_section" - t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" - t.decimal "i_like_i_wish_visited_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.decimal "woche_2_self_tests_percentage_section" - t.decimal "woche_3_self_tests_percentage_section" - t.text "exkurs__modellierung_self_tests_percentage_section" - t.integer "woche_4_self_tests_percentage_section" - t.text "exkurs__speicherverwaltung_self_tests_percentage_section" - t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" - t.text "i_like_i_wish_self_tests_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.integer "woche_3_assignments_percentage_section" - t.text "exkurs__modellierung_assignments_percentage_section" - t.integer "woche_4_assignments_percentage_section" - t.text "exkurs__speicherverwaltung_assignments_percentage_section" - t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" - t.text "i_like_i_wish_assignments_percentage_section" - t.integer "woche_1_bonus_percentage_section" - t.integer "woche_2_bonus_percentage_section" - t.integer "woche_3_bonus_percentage_section" - t.integer "exkurs__modellierung_bonus_percentage_section" - t.integer "woche_4_bonus_percentage_section" - t.text "exkurs__speicherverwaltung_bonus_percentage_section" - t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "woche_1___11_ein_erstes_programm_percentage_quiz" - t.text "woche_1___12_klassen_und_objekte_percentage_quiz" - t.text "woche_1___13_variablen_1_percentage_quiz" - t.text "woche_1___14_variablen_2_percentage_quiz" - t.text "woche_1___15_attribute_percentage_quiz" - t.text "woche_1___16_methoden_percentage_quiz" - t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" - t.text "woche_1___hausaufgabe_woche_1_percentage_quiz" - t.text "woche_2___recap_percentage_quiz" - t.text "woche_2___21_parameter_percentage_quiz" - t.text "woche_2___221_boolean_percentage_quiz" - t.text "woche_2___222_boolean_percentage_quiz" - t.text "woche_2___23_verzweigungen_percentage_quiz" - t.text "woche_2___24_schleifen_percentage_quiz" - t.text "woche_2___25_primitive_arrays_percentage_quiz" - t.text "woche_2___26_konstruktoren_percentage_quiz" - t.text "woche_2___hausaufgabe_woche_2_percentage_quiz" - t.text "woche_3___31_vererbung_percentage_quiz" - t.text "woche_3___32_sichtbarkeiten_percentage_quiz" - t.text "woche_3___33_kapselung_percentage_quiz" - t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" - t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" - t.text "woche_3___36_abstrakte_klassen_percentage_quiz" - t.text "woche_3___37_polymorphie_percentage_quiz" - t.text "woche_3___38_this_is_super_percentage_quiz" - t.text "woche_3___hausaufgabe_woche_3_percentage_quiz" - t.text "woche_4___41_objektdatentypen_percentage_quiz" - t.text "woche_4___42_type_casting_percentage_quiz" - t.text "woche_4___43_collections_percentage_quiz" - t.text "woche_4___44_foreach_schleifen_percentage_quiz" - t.text "woche_4___45_interfaces_percentage_quiz" - t.text "woche_4___hausaufgabe_woche_4_percentage_quiz" - t.text "course_code" - t.index ["user_id"], name: "old_java17_7_course_report_user_id_uindex", unique: true - end - - create_table "old_java20_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "warum_nimmst_du_am_kurs_teil" - t.text "motivation_wenn_vorgaenger_kurs_belegt" - t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt" - t.text "andere_antwort" - t.text "was_ist_ziel_und_motivation_zur_belegung" - end - - create_table "old_java20_1-2_selbsteinschaetzung", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java" - t.text "wie_sicher_klassen_und_objekte_in_java" - t.text "wie_sicher_kontrollstrukturen_in_java" - t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" - t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein" - end - - create_table "old_java20_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "welche_haupt__aufgabe_hat_ein_interface" - t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts" - t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr" - t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode" - t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru" - t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi" - t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code" - t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt" - t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen" - t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko" - t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist" - t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre" - t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj" - t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt" - t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_" - t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_" - t.text "welche_fehler.zeile_2__zeile_3_von_papageijava" - t.text "welche_fehler.zeile_5_von_papageijava" - t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija" - t.text "welche_fehler.zeilen_13_bis_15_von_papageijava" - t.text "welche_fehler.zeilen_17_bis_19_von_papageijava" - t.text "welche_fehler.zeile_3_von_zoojava" - t.text "welche_fehler.zeile_4_von_zoojava" - t.text "welche_fehler.zeilen_5___9_von_zoojava" - t.text "welche_fehler.zeile_11_von_zoojava" - t.text "welche_fehler.zeile_13_von_zoojava" - t.text "welche_fehler.zeile_14_von_zoojava" - t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag" - end - - create_table "old_java20_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_methoden_in_java_nach_w1_w2" - t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2" - t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2" - t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "old_java20_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop" - t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections" - end - - create_table "old_java20_4-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4" - t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4" - t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4" - t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions" - t.text "was_hat_dir_zum_verstaendnis_gefehlt" - end - - create_table "old_java20_5-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "wrdest_du_diesen_kurs_weiterempfehlen" - t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich" - t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_" - t.text "die_anzahl_der_bonus_aufgaben_fand_ich_" - t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich" - t.text "co_support_convention.eigenen_programme_verbessern_und_alle_hin" - t.text "co_support_convention.eigenen_programme_verbessern_und_einige_h" - t.text "co_support_convention.mich_wrde_das_feedback_in_code_ocean_zwar" - t.text "co_support_convention.das_zustzliche_feedback_in_code_ocean_wrd" - t.text "co_support_convention.feedback_zur_struktur_des_codes_ist_grund" - t.text "whrend_bearbeitung_habe_ich._mich_meistens_nur_mit_der_aufgabe_" - t.text "whrend_bearbeitung_habe_ich._nebenbei_oft_was_anderes_gemacht_d" - t.text "whrend_bearbeitung_habe_ich._mich_mal_nur_mit_der_aufgabe_besch" - t.text "whrend_bearbeitung_habe_ich._mir_das_video__die_folien_der_vorh" - t.text "whrend_bearbeitung_habe_ich._im_forum_fragen_gestellt_oder_bean" - t.text "whrend_bearbeitung_habe_ich._in_code_ocean_kommentaranfragen_vo" - t.text "wie_alt_bist_du" - t.text "welches_geschlecht_hast_du" - t.text "wrdest_du_open_hpi_weiterempfehlen" - end - - create_table "old_java20_5-2_generelles_feedback", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "rahmenhandlung_erzhle_uns_bitte_ein_bisschen_mehr_darber_wie_di" - t.text "code_ocean_gerne_mchten_wir_von_dir_mehr_ber_deine_nutzung_von_" - t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zum_s" - end - - create_table "old_java20_6_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "age_group" - t.text "birth_date" - t.text "access_groups" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.integer "sessions" - t.integer "avg_session_duration" - t.decimal "total_session_duration" - t.integer "video_play_activity" - t.decimal "video_play_activity_percentage" - t.integer "video_downloads_activity" - t.decimal "video_downloads_activity_percentage" - t.integer "slide_downloads_activity" - t.decimal "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.decimal "quiz_performance" - t.integer "graded_quiz_performance" - t.decimal "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.integer "points_percentage" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.decimal "woche_3_visited_percentage_section" - t.decimal "woche_4_visited_percentage_section" - t.text "exkurs__speicherverwaltung_visited_percentage_section" - t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section" - t.decimal "i_like_i_wish_visited_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.integer "woche_2_self_tests_percentage_section" - t.integer "woche_3_self_tests_percentage_section" - t.integer "woche_4_self_tests_percentage_section" - t.text "exkurs__speicherverwaltung_self_tests_percentage_section" - t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti" - t.text "i_like_i_wish_self_tests_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.integer "woche_3_assignments_percentage_section" - t.integer "woche_4_assignments_percentage_section" - t.text "exkurs__speicherverwaltung_assignments_percentage_section" - t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect" - t.text "i_like_i_wish_assignments_percentage_section" - t.integer "woche_1_bonus_percentage_section" - t.integer "woche_2_bonus_percentage_section" - t.integer "woche_3_bonus_percentage_section" - t.integer "woche_4_bonus_percentage_section" - t.text "exkurs__speicherverwaltung_bonus_percentage_section" - t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "woche_1___11_ein_erstes_programm_percentage_quiz" - t.text "woche_1___12_klassen_und_objekte_percentage_quiz" - t.text "woche_1___13_variablen_1_percentage_quiz" - t.text "woche_1___14_variablen_2_percentage_quiz" - t.text "woche_1___15_attribute_percentage_quiz" - t.text "woche_1___16_methoden_percentage_quiz" - t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz" - t.text "woche_1___18_hausaufgabe_percentage_quiz" - t.text "woche_1___hausaufgabe_woche_1_original_percentage_quiz" - t.text "woche_2___recap_percentage_quiz" - t.text "woche_2___21_parameter_percentage_quiz" - t.text "woche_2___221_boolean_percentage_quiz" - t.text "woche_2___222_boolean_percentage_quiz" - t.text "woche_2___23_verzweigungen_percentage_quiz" - t.text "woche_2___24_schleifen_percentage_quiz" - t.text "woche_2___25_primitive_arrays_percentage_quiz" - t.text "woche_2___26_konstruktoren_percentage_quiz" - t.text "woche_2___27_hausaufgabe_percentage_quiz" - t.text "woche_2___hausaufgabe_woche_2_original_percentage_quiz" - t.text "woche_3___31_vererbung_percentage_quiz" - t.text "woche_3___32_sichtbarkeiten_percentage_quiz" - t.text "woche_3___33_kapselung_percentage_quiz" - t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz" - t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz" - t.text "woche_3___36_abstrakte_klassen_percentage_quiz" - t.text "woche_3___37_polymorphie_percentage_quiz" - t.text "woche_3___38_this_is_super_percentage_quiz" - t.text "woche_3___deep_dive_konventionen_in_java_percentage_quiz" - t.text "woche_3___deep_dive_best_practices_percentage_quiz" - t.text "woche_3___39_hausaufgabe_percentage_quiz" - t.text "woche_3___hausaufgabe_woche_3_original_percentage_quiz" - t.text "woche_4___41_objektdatentypen_percentage_quiz" - t.text "woche_4___42_type_casting_percentage_quiz" - t.text "woche_4___43_collections_percentage_quiz" - t.text "woche_4___44_foreach_schleifen_percentage_quiz" - t.text "woche_4___45_interfaces_percentage_quiz" - t.text "woche_4___46_hausaufgabe_percentage_quiz" - t.text "woche_4___hausaufgabe_woche_4_original_percentage_quiz" - t.text "course_code" - end - - create_table "old_java21_0-1_umfrage_zum_kursstart", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.decimal "points" - t.text "wie_alt_bist_du" - t.text "was_ist_dein_primres_ziel_und_die_motivation_den_kurs_zu_belege" - t.text "andere_ziele" - t.text "in_welchem_rahmen_nimmst_du_an_dem_kurs_teil" - t.text "erwartungen_lerninhalte_und_lernziele" - t.text "kennengelernt.mooc_aggregator" - t.text "kennengelernt.zeitung_oder_zeitschrift" - t.text "kennengelernt.facebook" - t.text "kennengelernt.twitter" - t.text "kennengelernt.open_hpi_seite" - t.text "kennengelernt.freunde_oder_bekannte" - t.text "kennengelernt.linked_in" - t.text "kennengelernt.xing" - t.text "kennengelernt.andere" - t.text "geplante_zeit_pro_woche" - t.text "medien_zum_lernen.bilder_und_grafiken" - t.text "medien_zum_lernen.videos_und_animationen" - t.text "medien_zum_lernen.podcasts__audio_bcher" - t.text "medien_zum_lernen.texte_digital_nicht_ausgedruckt" - t.text "medien_zum_lernen.texte_auf_papier_ausgedruckt" - t.text "medien_zum_lernen.persnlicher_austausch_mit_anderen" - t.text "kennst_du_das_konzept_der_lerntypen" - t.text "lerntyp_relevant" - t.text "welcher_lerntyp_bist_du.visuell" - t.text "welcher_lerntyp_bist_du.haptisch_motorisch" - t.text "welcher_lerntyp_bist_du.auditiv" - t.text "welcher_lerntyp_bist_du.kommunikativ" - t.text "welcher_lerntyp_bist_du.medienorientiert" - t.text "welcher_lerntyp_bist_du.keiner_davon" - end - - create_table "old_java21_0-2_deine_vorkenntnisse", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.decimal "points" - t.text "vorheriger_programmierkurs.ja_genau_einen_auf_open_hpi" - t.text "vorheriger_programmierkurs.ja_mehrere_auf_open_hpi" - t.text "vorheriger_programmierkurs.ja_auf_einer_anderen_plattform" - t.text "vorheriger_programmierkurs.ja_in_prsenz_zb_in_der_schule_univer" - t.text "vorheriger_programmierkurs.nein_noch_gar_nicht" - t.text "wie_schtzt_du_deine_programmiererfahrung_im_allgemeinen_ein" - t.text "openhpi_kurs_mit_codeocean" - t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_feedback_von_anderen" - t.text "gemeinsam_entwickeln.ich_habe_anderen_schon_einmal_feedback_zu_" - t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_mit_anderen_gemeinsa" - t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_gleichzeitig_mit_and" - t.text "gemeinsam_entwickeln.nein_noch_gar_nicht" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_arrays_und_listen_m" - t.text "hast_du_zum_thema_arrays_und_listen_bereits_praktische_programm" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_queues_und_stacks_m" - t.text "hast_du_zum_thema_queues_und_stacks_bereits_praktische_programm" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_java_generics_mit" - t.text "hast_du_zum_thema_java_generics_bereits_praktische_programmiere" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_foreach_schleifen_m" - t.text "hast_du_zum_thema_foreach_schleifen_bereits_praktische_programm" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_iteratoren_mit" - t.text "hast_du_zum_thema_iteratoren_bereits_praktische_programmiererfa" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_suchen_in_listen_mi" - t.text "hast_du_zum_thema_suchen_in_listen_bereits_praktische_programmi" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sortieralgorithmen_" - t.text "hast_du_zum_thema_sortieralgorithmen_bereits_praktische_program" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_equals_mit" - t.text "hast_du_zum_thema_equals_bereits_praktische_programmiererfahrun" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_compare_to_mit" - t.text "hast_du_zum_thema_compare_to_bereits_praktische_programmiererfa" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_bestimmung_der_prog" - t.text "hast_du_zum_thema_bestimmung_der_programmlaufzeit_bereits_prakt" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_rekursion_mit" - t.text "hast_du_zum_thema_rekursion_bereits_praktische_programmiererfah" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sets_und_maps_mit" - t.text "hast_du_zum_thema_sets_und_maps_bereits_praktische_programmiere" - t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_trees__bume_mit" - t.text "hast_du_zum_thema_trees__bume_bereits_praktische_programmiererf" - end - - create_table "old_java21_2-2_umfrage_sets_maps", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "hast_du_das_gefhl_das_thema_sets_und_maps_mit_den_von_uns_angeb" - t.text "hast_du_ein_verstndnis_dafr_entwickelt_fr_welche_anwendungsflle" - t.text "wie_sicher_fhlst_du_dich_gerade_damit_sets_oder_maps_im_eigenen" - t.text "was_wrde_dir_am_meisten_helfen_die_themen_set_und_map_noch_bess" - t.text "falls_du_in_der_letzten_frage_sonstiges_geantwortet_hast_freuen" - end - - create_table "old_java21_3-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.decimal "points" - t.text "hast_du_deine_persnlichen_lernziele_erreicht" - t.text "wie_schtzt_du_dein_wissen_zu_dem_thema_algorithmen_und_datenstr" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfehlen_w" - t.text "die_tipps_in_code_ocean_waren_hilfreich" - t.text "die_tipps_in_code_ocean_waren_einfach_zu_finden" - t.text "die_tipps_in_code_ocean_haben_zur_jeweiligen_aufgabe_gepasst" - t.text "durch_tipps_habe_ich_seltener_frage_oder_rfc_gestellt" - t.text "die_tipps_in_code_ocean_waren_zu_sehr_auf_die_jeweilige_aufgabe" - t.text "ich_knnte_mir_vorstellen_selbst_zustzliche_tipps_fr_die_aufgabe" - t.text "hast_du_weitere_wnsche_oder_ideen_wie_wir_die_tipps_verbessern_" - t.text "nenne_1_2_anwendungsflle_fr_sets_undoder_maps_die_dir_einfallen" - t.text "nach_welcher_zeit_wrdest_du_dir_einen_solchen_hinweise_wnschen" - t.text "unabhngig_von_der_zeit_wie_hilfreich_findest_du_diese_hinweise_" - t.text "unabhngig_von_der_zeit_wie_strend_findest_du_diese_hinweise_in_" - t.text "wunschinteraktion.eine_neue_kommentaranfrage_stellen" - t.text "wunschinteraktion.antworten_auf_eine_eigene_kommentaranfragen_l" - t.text "wunschinteraktion.fremde_kommentaranfragen_lesen" - t.text "wunschinteraktion.tipps_zur_aufgabe_ansehen" - t.text "wunschinteraktion.link_zum_kursforum_auf_open_hpi" - t.text "wunschinteraktion.link_zum_zugehrigen_video_oder_selbsttest_auf" - t.text "wunschinteraktion.erinnerung_daran_eine_pause_zu_machen" - t.text "wunschinteraktion.etwas_anderes" - t.text "wunschinteraktion.gar_nichts_ich_finde_die_hinweise_nicht_gut" - t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_hinweisen_wenn_du_in_d" - t.text "ich_fand_rfc_stellen_einfach_zu_finden" - t.text "ich_wnsche_mir_die_mglichkeit_gemeinsam_eine_musterlsung_zu_ers" - t.text "ich_traue_mir_zu_eine_nderung_an_der_musterlsung_vorzuschlagen" - t.text "ich_habe_freude_daran_an_der_musterlsung_mitzuwirken" - t.text "ich_wnsche_mir_eine_mglichkeit_vorherige_versionen_der_musterls" - t.text "ich_wnsche_mir_eine_mglichkeit_in_co_darueber_zu_diskutieren" - t.text "ich_bin_nur_an_der_finalen_musterlsung_interessiert_das_mitarbe" - t.text "ich_fnde_es_gut_wenn_es_mehrere_musterlsungen_zur_selben_aufgab" - t.text "ich_vertraue_einer_solchen_musterlsung_auch_wenn_diese_nicht_du" - t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_musterlsungen" - t.text "wir_hatten_euch_dazu_angeregt_alleine_oder_gemeinsam_mit_andere" - t.text "lernlogbuch.ich_habe_das_etherpad_in_den_collab_spaces_der_plat" - t.text "lernlogbuch.ich_habe_den_dateiupload_in_den_collab_spaces_genut" - t.text "lernlogbuch.ich_habe_das_private_forum_in_den_collab_spaces_gen" - t.text "lernlogbuch.ich_habe_ein_analoges_logbuch_gefhrt_papier_holz_st" - t.text "lernlogbuch.ich_habe_ein_anderes_online_tool_oder_eine_lokale_s" - t.text "lernlogbuch.ich_habe_kein_logbuch_gefhrt" - t.text "weiteres_zum_lernlogbuch" - t.text "beispiel_set_erinnern.das_schraubenzieherset_bei_dem_unterschie" - t.text "beispiel_set_erinnern.das_hash_set_von_detectives_bei_dem_versu" - t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_500_dateneintrg" - t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_die_unterschied" - t.text "beispiel_set_erinnern.die_zahlenmenge_bei_der_alle_zahlen_nur_e" - t.text "beispiel_set_erinnern.die_unterschiedlichen_brentatzen_die_die_" - t.text "beispiel_set_erinnern.das_beispiel_mit_den_blttern_unterschiedl" - t.text "beispiel_map_erinnern.das_weltkarten_beispiel_bei_dem_jedem_lan" - t.text "beispiel_map_erinnern.das_adressbuch_beispiel_bei_dem_jeder_per" - t.text "beispiel_map_erinnern.das_beispiel_wo_jedem_charakter_wie_detek" - t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_fr_jeden_der_10" - t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_insgesamt_500_h" - t.text "beispiel_map_erinnern.das_beispiel_mit_den_unterschiedlichen_ti" - t.text "beispiel_map_erinnern.das_beispiel_bei_dem_unterschiedliche_blt" - t.text "weiteres_feedback" - end - - create_table "old_java21_4_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "age_group" - t.text "birth_date" - t.text "access_groups" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.integer "sessions" - t.integer "avg_session_duration" - t.decimal "total_session_duration" - t.integer "video_play_activity" - t.decimal "video_play_activity_percentage" - t.integer "video_downloads_activity" - t.decimal "video_downloads_activity_percentage" - t.integer "slide_downloads_activity" - t.decimal "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.decimal "quiz_performance" - t.integer "graded_quiz_performance" - t.decimal "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.integer "points_percentage" - t.decimal "intro_visited_percentage_section" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.decimal "i_like_i_wish_visited_percentage_section" - t.integer "intro_self_tests_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.integer "woche_2_self_tests_percentage_section" - t.text "i_like_i_wish_self_tests_percentage_section" - t.text "intro_assignments_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.text "i_like_i_wish_assignments_percentage_section" - t.text "intro_bonus_percentage_section" - t.text "woche_1_bonus_percentage_section" - t.integer "woche_2_bonus_percentage_section" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "woche_1___11_wiederholung_arrays_und_listen_percentage_quiz" - t.text "woche_1___12_queues_und_stacks_percentage_quiz" - t.text "woche_1___14_schleifen_for_each_percentage_quiz" - t.text "woche_1___16_iteratoren_while_next_percentage_quiz" - t.text "woche_1___17_suchen_in_listen_percentage_quiz" - t.text "woche_1___17_suchen_in_unsortierten_listen_fragen_zur_bung_perc" - t.text "woche_1___19_sortieralgorithmen_bubble_sort_percentage_quiz" - t.text "woche_1___113_hausaufgabe_woche_1_percentage_quiz" - t.text "woche_1___110_equals_percentage_quiz" - t.text "woche_1___111_compare_to_und_equals___e_tivity_percentage_quiz" - t.text "woche_1___112_laufzeit_big_o___e_tivity_percentage_quiz" - t.text "woche_1___111_compare_to_percentage_quiz" - t.text "woche_1___112_laufzeit_big_o_percentage_quiz" - t.text "woche_2___25_sets_teil_33_percentage_quiz" - t.text "woche_2___25_sets_teil_23_percentage_quiz" - t.text "woche_2___29_balancierte_suchbume___interaktiver_simulator_perc" - t.text "woche_2___213_graphen___e_tivity_percentage_quiz" - t.text "woche_2___22_sortieralgorithmen_quick_sort_percentage_quiz" - t.text "woche_2___21_rekursion_percentage_quiz" - t.text "woche_2___24_datenstrukturen_percentage_quiz" - t.text "woche_2___25_sets_teil_13_percentage_quiz" - t.text "woche_2___26_maps_percentage_quiz" - t.text "woche_2___28_tree_operationen_percentage_quiz" - t.text "woche_2___29_balancierte_suchbume_percentage_quiz" - t.text "woche_2___210_suchen_in_bumen_percentage_quiz" - t.text "woche_2___211_weitere_trees_percentage_quiz" - t.text "woche_2___213_graphen_percentage_quiz" - t.text "woche_2___27_trees_percentage_quiz" - t.text "woche_2___216_abschlussprfung_percentage_quiz" - t.text "course_code" - end - - create_table "old_python20_0-1_kennenlern_quiz", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "herzlich_willkommen_zu_diesem_kennenlern_quiz_es_handelt_sich_d" - t.text "ich_habe_schon_einmal_quellcode_in_einer_beliebigen_programmier" - t.text "ich_habe_schon_einmal_etwas_in_einer_beliebigen_programmierspra" - t.text "ich_habe_bereits_einen_online_kurs_zu_python_besucht" - t.text "ich_habe_bereits_einen_prsenz_kurs_zu_python_besucht" - t.text "ich_wei_was_sich_hinter_dem_begriff_syntax_versteckt" - t.text "ich_wei_was_sich_hinter_dem_begriff_datentyp_versteckt" - t.text "ich_wei_was_sich_hinter_dem_begriff_funktion_versteckt" - t.text "ich_wei_was_sich__hinter_dem_begriff_bibliothek_versteckt" - t.text "ich_habe_bereits_erfahrung_im_umgang_mit_python" - t.text "ich_habe_bereits_einen_kurs_mit_co_gemacht" - end - - create_table "old_python20_1-1_selbsteinschatzungs_quiz_woche_1", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "schn_dass_du_wieder_dabei_bist_bei_diesem_selbsteinschtzungs_qu" - t.text "eine_hohe_punktwertung_im_kurs_zu_erhalten_ist_mir" - t.text "besonders_wichtig_an_einem_kurs_ist_fr_mich" - t.text "ich_mchte_im_kurs" - t.text "den_austausch_mit_anderen_finde_ich" - t.text "die_lernmaterialien_einer_woche_bearbeite_ich_lieber" - t.text "nicht_gleich_auf_die_lsung_zu_kommen_empfinde_ich" - t.text "bearbeitung_effektiver_wenn" - t.text "meine_bevorzugte_herangehensweise_an_probleme_ist" - t.text "wenn_ich_ein_problem_beim_lsen_einer_aufgabe_habe_mchte_ich" - t.text "zu_wissen_dass_andere_am_gleichen_thema_arbeiten" - t.text "ber_die_lerninhalte_im_kurs_sollte_entscheiden_" - t.text "weiteres_feedback_selbsteinschaetzung" - end - - create_table "old_python20_2-1_selbsteinschatzungs_quiz_woche_2", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_ist_selbsteinschtzungsquiz_mit_grafischer_auswertung" - t.text "auswertungen_geben_mir_das_gefhl_teil_der_kurs_community_zu_sei" - t.text "das_bearbeiten_der_bisherigen_aufgaben_fiel_mir_leicht" - t.text "herausfordernde_lektion_w1.11_erstes_programmierbeispiel" - t.text "herausfordernde_lektion_w1.12_code_ocean_einfhrung" - t.text "herausfordernde_lektion_w1.13_variablen" - t.text "herausfordernde_lektion_w1.14_strings" - t.text "herausfordernde_lektion_w1.15_datentypen" - t.text "herausfordernde_lektion_w1.16_turtle_12" - t.text "herausfordernde_lektion_w1.17_turtle_22" - t.text "herausfordernde_lektion_w1.keine" - t.text "neben_lerninhalten_habe_ich.mich_aktiv_im_forum_beteiligt" - t.text "neben_lerninhalten_habe_ich.mehrere_beitrge_im_forum_gelesen" - t.text "neben_den_bereitgestellten_lerninhalten_habe_ich__mehrfachantwo" - t.text "neben_lerninhalten_habe_ich.kommentaranfragen_auf_code_ocean_be" - t.text "neben_lerninhalten_habe_ich.zustzliche_tipps_in_anspruch_genomm" - t.text "neben_lerninhalten_habe_ich.hilfe_auerhalb_des_kurses_erhalten_" - t.text "neben_lerninhalten_habe_ich.externe_lern__undoder_infomateriali" - t.text "die_diskussionbeitrge_im_forum_empfinde_ich_als" - t.text "hilfe_gebeten_hat_mir" - t.text "hilfe_gebeten_habe_ich" - t.text "die_mglichkeit_an_video_fragerunde_teilzunehmen_finde_ich" - t.text "feedback_selbsteinschaetzung" - end - - create_table "old_python20_3-1_selbsteinschatzungs_quiz_woche_3", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "richtige_kommunikationsmedium_fr_mich_gefunden" - t.text "das_bearbeiten_der_aufgaben_aus_woche_2_fiel_mir_leicht" - t.text "herausfordernde_lektion_w2.21_verzweigungen_12" - t.text "herausfordernde_lektion_w2.22_verzweigungen_22" - t.text "herausfordernde_lektion_w2.23_schleifen" - t.text "herausfordernde_lektion_w2.24_listen_13" - t.text "herausfordernde_lektion_w2.25_listen_23" - t.text "herausfordernde_lektion_w2.26_listen_33" - t.text "herausfordernde_lektion_w2.keine" - t.text "offene_inhaltliche_fragen" - t.text "forum_oder_rfc_genutzt" - t.text "warum_frage_nicht_gestellt.ich_habe_nicht_genug_zeit_oder_will_" - t.text "warum_frage_nicht_gestellt.ich_bin_nicht_motiviert_die_frage_we" - t.text "warum_frage_nicht_gestellt.die_frage_kommt_mir_nicht_wichtig_ge" - t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_mir_keiner_a" - t.text "warum_frage_nicht_gestellt.ich_wei_nicht_wen_ich_fragen_bzw_wo_" - t.text "warum_frage_nicht_gestellt.ich_kann_meine_frage_nicht_gut_genug" - t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_die_frage_zu" - t.text "warum_frage_nicht_gestellt.anderer_grund" - t.text "anderer_grund" - t.text "tipps_zu_erhalten_war" - t.text "die_aufgabe_zur_selbstreflexion_aus_woche_2_hat_mir__gefallen" - t.text "ich_plane_meine_aufgabenlsungen_weiter_zu_reflektieren_oder_tu_" - t.text "feedback_selbsteinschaetzung" - end - - create_table "old_python20_4-1_selbsteinschatzungs_quiz_woche_4", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "das_bearbeiten_der_aufgaben_aus_woche_3_fiel_mir_leicht" - t.text "herausfordernde_lektion_w3.31_funktionen_ohne_parameter" - t.text "herausfordernde_lektion_w3.32_funktionen_mit_parametern" - t.text "herausfordernde_lektion_w3.33_dictionaries" - t.text "herausfordernde_lektion_w3.34_zufallszahlen" - t.text "herausfordernde_lektion_w3.exkurs_konventionen_in_python" - t.text "herausfordernde_lektion_w3.keine" - t.text "hilfe_durch_krusteilnehmer" - t.text "hilfe_durch_dritte" - t.text "wie_bewertest_du_exkurs_und_linter" - t.text "das_feedback_des_linters_hat_mir" - t.text "das_feedback_des_linters_habe_ich" - t.text "wie_hat_dir_aufgabe_314_gefallen" - t.text "a314_verstaendnis.ich_habe_ein_besseres_verstndnis_des_linter_f" - t.text "a314_verstaendnis.ich_habe_die_relevanz_von_code_formatierungen" - t.text "a314_verstaendnis.ich_habe_mir_bewusst_gedanken_ber_die_benennu" - t.text "a314_verstaendnis.mir_ist_der_unterschied_zwischen_return__und_" - t.text "a314_verstaendnis.ich_habe_verstanden_inwiefern_funktionen_und_" - t.text "a314_verstaendnis.etwas_anderes_bitte_in_der_nchsten_frage_ergn" - t.text "a314_verstaendnis.gar_nicht" - t.text "feedback_selbsteinschaetzung" - end - - create_table "old_python20_4-3_selbsteinschatzungs_quiz_zum_kursende", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "das_bearbeiten_der_aufgaben_aus_woche_4_fiel_mir_leicht" - t.text "herausfordernde_lektion_w4.41_eingabe" - t.text "herausfordernde_lektion_w4.42_zahlenraten" - t.text "herausfordernde_lektion_w4.43_snake_spiel_13" - t.text "herausfordernde_lektion_w4.44_snake_spiel_23" - t.text "herausfordernde_lektion_w4.45_snake_spiel_33" - t.text "herausfordernde_lektion_w4.exkurs_installieren_unter_windows_10" - t.text "herausfordernde_lektion_w4.keine" - t.text "wie_erfahren_mit_python_nach_kurs" - t.text "retrospektiv_wie_viel_erfahrung_hattest_du_vorher_mit_python" - t.text "wie_viel_hast_du_gelernt" - t.text "ich_bin_stolz_darauf_was_ich_in_kurs_geschafft_habe" - t.text "feedback_selbsteinschaetzung" - end - - create_table "old_python20_6-1_snapshot_umfrage_zum_kurs", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" - t.text "wie_alt_bist_du" - t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" - t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "snake_abschlussprojekt_fand_ich" - t.text "snake_abschlussprojekt_war_hilfreich" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" - t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" - t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" - t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" - t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" - t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" - t.text "mehr_inhalte_wuenschen.keine" - t.text "kurselement_einfluss_lernerfolg.videos" - t.text "kurselement_einfluss_lernerfolg.selbsttests" - t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" - t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" - t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" - t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" - t.text "kurselement_einfluss_lernerfolg.die_reflexionen" - t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" - t.text "kurselement_einfluss_lernerfolg.keine" - t.text "naechste_schritte.weiteren_programmierkurs_belegen" - t.text "naechste_schritte.eigene_programme_schreiben" - t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" - t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" - t.text "naechste_schritte.nichts_weiter" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" - t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" - t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" - t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" - t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" - t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" - t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" - t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" - t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" - t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" - t.text "kommentare_in_co_zu_erbitten_war_fr_mich" - t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" - t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" - t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" - t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" - t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" - t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" - t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" - t.text "intevention_eine_frage_zu_stellen" - t.text "intevention_nach_hilfe_zu_fragen" - t.text "uebersetzung_linter" - t.text "wie_kann_co_weiter_untersetuetzen" - t.text "email_interview" - t.text "feedback_selbsteinschaetzung" - end - - create_table "old_python20_6-1_umfrage_zum_kurs", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" - t.text "wie_alt_bist_du" - t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" - t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "snake_abschlussprojekt_fand_ich" - t.text "snake_abschlussprojekt_war_hilfreich" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" - t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" - t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" - t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" - t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" - t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" - t.text "mehr_inhalte_wuenschen.keine" - t.text "kurselement_einfluss_lernerfolg.videos" - t.text "kurselement_einfluss_lernerfolg.selbsttests" - t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" - t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" - t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" - t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" - t.text "kurselement_einfluss_lernerfolg.die_reflexionen" - t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" - t.text "kurselement_einfluss_lernerfolg.keine" - t.text "naechste_schritte.weiteren_programmierkurs_belegen" - t.text "naechste_schritte.eigene_programme_schreiben" - t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" - t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" - t.text "naechste_schritte.nichts_weiter" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" - t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" - t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" - t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" - t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" - t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" - t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" - t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" - t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" - t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" - t.text "kommentare_in_co_zu_erbitten_war_fr_mich" - t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" - t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" - t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" - t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" - t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" - t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" - t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" - t.text "intevention_eine_frage_zu_stellen" - t.text "intevention_nach_hilfe_zu_fragen" - t.text "uebersetzung_linter" - t.text "wie_kann_co_weiter_untersetuetzen" - t.text "email_interview" - t.text "feedback_selbsteinschaetzung" - end - - create_table "old_python20_7_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "affiliated" - t.text "birth_date" - t.text "age" - t.text "age_group" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.text "sessions" - t.text "avg_session_duration" - t.text "total_session_duration" - t.text "video_play_activity" - t.text "video_play_activity_percentage" - t.text "video_downloads_activity" - t.text "video_downloads_activity_percentage" - t.text "slide_downloads_activity" - t.text "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.text "quiz_performance" - t.text "graded_quiz_performance" - t.text "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.integer "points_percentage" - t.decimal "woche_0_visited_percentage_section" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.integer "woche_3_visited_percentage_section" - t.integer "woche_4_visited_percentage_section" - t.text "zustzliche_woche_visited_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_visited_percentage_sec" - t.text "i_like_i_wish_visited_percentage_section" - t.text "lsungen_visited_percentage_section" - t.decimal "woche_0_self_tests_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.decimal "woche_2_self_tests_percentage_section" - t.integer "woche_3_self_tests_percentage_section" - t.integer "woche_4_self_tests_percentage_section" - t.text "zustzliche_woche_self_tests_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_self_tests_percentage_" - t.integer "i_like_i_wish_self_tests_percentage_section" - t.text "lsungen_self_tests_percentage_section" - t.text "woche_0_assignments_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.integer "woche_3_assignments_percentage_section" - t.integer "woche_4_assignments_percentage_section" - t.text "zustzliche_woche_assignments_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_assignments_percentage" - t.text "i_like_i_wish_assignments_percentage_section" - t.text "lsungen_assignments_percentage_section" - t.text "woche_0_bonus_percentage_section" - t.text "woche_1_bonus_percentage_section" - t.text "woche_2_bonus_percentage_section" - t.integer "woche_3_bonus_percentage_section" - t.text "woche_4_bonus_percentage_section" - t.text "zustzliche_woche_bonus_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_bonus_percentage_secti" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "lsungen_bonus_percentage_section" - t.text "woche_0___kennenlern_quiz_percentage_quiz" - t.text "woche_0___auswertung_des_kennenlern_quiz_percentage_quiz" - t.text "woche_1___selbsteinschtzungs_quiz_percentage_quiz" - t.text "woche_1___11_erstes_programmierbeispiel_percentage_quiz" - t.text "woche_1___13_variablen_percentage_quiz" - t.text "woche_1___14_strings_percentage_quiz" - t.text "woche_1___15_datentypen_percentage_quiz" - t.text "woche_1___16_turtle_12_percentage_quiz" - t.text "woche_1___17_turtle_22_percentage_quiz" - t.text "woche_1___hausaufgabe_1_percentage_quiz" - t.text "woche_2___selbsteinschtzungs_quiz_woche_2_percentage_quiz" - t.text "woche_2___21_verzweigungen_12_percentage_quiz" - t.text "woche_2___22_verzweigungen_22_percentage_quiz" - t.text "woche_2___23_schleifen_percentage_quiz" - t.text "woche_2___24_listen_13_percentage_quiz" - t.text "woche_2___25_listen_23_percentage_quiz" - t.text "woche_2___26_listen_33_percentage_quiz" - t.text "woche_2___26_reflexion_aufgabe_2_percentage_quiz" - t.text "woche_2___hausaufgabe_2_percentage_quiz" - t.text "woche_3___selbsteinschtzungs_quiz_woche_3_percentage_quiz" - t.text "woche_3___31_funktionen_ohne_parameter_percentage_quiz" - t.text "woche_3___exkurs_konventionen_percentage_quiz" - t.text "woche_3___32_funktionen_mit_parametern_percentage_quiz" - t.text "woche_3___33_dictionaries_percentage_quiz" - t.text "woche_3___34_zufallszahlen_percentage_quiz" - t.text "woche_3___34_reflexion_aufgabe_2_percentage_quiz" - t.text "woche_3___hausaufgabe_3_percentage_quiz" - t.text "woche_4___selbsteinschtzungs_quiz_woche_4_percentage_quiz" - t.text "woche_4___41_eingabe_percentage_quiz" - t.text "woche_4___44_reflexion_aufgabe_1_percentage_quiz" - t.text "woche_4___hausaufgabe_4_percentage_quiz" - t.text "woche_4___selbsteinschtzungs_quiz_zum_kursende_percentage_quiz" - t.text "i_like_i_wish___selbsteinschtzung_zum_i_like_i_wish_percentage_" - t.text "course_code" - end - create_table "proxy_exercises", id: :serial, force: :cascade do |t| t.string "title" t.string "description" @@ -2405,572 +348,6 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_proxy_exercises_on_user_type_and_user_id" end - create_table "python20_0-1_kennenlern_quiz", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "herzlich_willkommen_zu_diesem_kennenlern_quiz_es_handelt_sich_d" - t.text "ich_habe_schon_einmal_quellcode_in_einer_beliebigen_programmier" - t.text "ich_habe_schon_einmal_etwas_in_einer_beliebigen_programmierspra" - t.text "ich_habe_bereits_einen_online_kurs_zu_python_besucht" - t.text "ich_habe_bereits_einen_prsenz_kurs_zu_python_besucht" - t.text "ich_wei_was_sich_hinter_dem_begriff_syntax_versteckt" - t.text "ich_wei_was_sich_hinter_dem_begriff_datentyp_versteckt" - t.text "ich_wei_was_sich_hinter_dem_begriff_funktion_versteckt" - t.text "ich_wei_was_sich__hinter_dem_begriff_bibliothek_versteckt" - t.text "ich_habe_bereits_erfahrung_im_umgang_mit_python" - t.text "ich_habe_bereits_einen_kurs_mit_co_gemacht" - end - - create_table "python20_1-1_selbsteinschatzungs_quiz_woche_1", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "schn_dass_du_wieder_dabei_bist_bei_diesem_selbsteinschtzungs_qu" - t.text "eine_hohe_punktwertung_im_kurs_zu_erhalten_ist_mir" - t.text "besonders_wichtig_an_einem_kurs_ist_fr_mich" - t.text "ich_mchte_im_kurs" - t.text "den_austausch_mit_anderen_finde_ich" - t.text "die_lernmaterialien_einer_woche_bearbeite_ich_lieber" - t.text "nicht_gleich_auf_die_lsung_zu_kommen_empfinde_ich" - t.text "bearbeitung_effektiver_wenn" - t.text "meine_bevorzugte_herangehensweise_an_probleme_ist" - t.text "wenn_ich_ein_problem_beim_lsen_einer_aufgabe_habe_mchte_ich" - t.text "zu_wissen_dass_andere_am_gleichen_thema_arbeiten" - t.text "ber_die_lerninhalte_im_kurs_sollte_entscheiden_" - t.text "weiteres_feedback_selbsteinschaetzung" - end - - create_table "python20_2-1_selbsteinschatzungs_quiz_woche_2", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "wie_ist_selbsteinschtzungsquiz_mit_grafischer_auswertung" - t.text "auswertungen_geben_mir_das_gefhl_teil_der_kurs_community_zu_sei" - t.text "das_bearbeiten_der_bisherigen_aufgaben_fiel_mir_leicht" - t.text "herausfordernde_lektion_w1.11_erstes_programmierbeispiel" - t.text "herausfordernde_lektion_w1.12_code_ocean_einfhrung" - t.text "herausfordernde_lektion_w1.13_variablen" - t.text "herausfordernde_lektion_w1.14_strings" - t.text "herausfordernde_lektion_w1.15_datentypen" - t.text "herausfordernde_lektion_w1.16_turtle_12" - t.text "herausfordernde_lektion_w1.17_turtle_22" - t.text "herausfordernde_lektion_w1.keine" - t.text "neben_lerninhalten_habe_ich.mich_aktiv_im_forum_beteiligt" - t.text "neben_lerninhalten_habe_ich.mehrere_beitrge_im_forum_gelesen" - t.text "neben_den_bereitgestellten_lerninhalten_habe_ich__mehrfachantwo" - t.text "neben_lerninhalten_habe_ich.kommentaranfragen_auf_code_ocean_be" - t.text "neben_lerninhalten_habe_ich.zustzliche_tipps_in_anspruch_genomm" - t.text "neben_lerninhalten_habe_ich.hilfe_auerhalb_des_kurses_erhalten_" - t.text "neben_lerninhalten_habe_ich.externe_lern__undoder_infomateriali" - t.text "die_diskussionbeitrge_im_forum_empfinde_ich_als" - t.text "hilfe_gebeten_hat_mir" - t.text "hilfe_gebeten_habe_ich" - t.text "die_mglichkeit_an_video_fragerunde_teilzunehmen_finde_ich" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_3-1_selbsteinschatzungs_quiz_woche_3", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "richtige_kommunikationsmedium_fr_mich_gefunden" - t.text "das_bearbeiten_der_aufgaben_aus_woche_2_fiel_mir_leicht" - t.text "herausfordernde_lektion_w2.21_verzweigungen_12" - t.text "herausfordernde_lektion_w2.22_verzweigungen_22" - t.text "herausfordernde_lektion_w2.23_schleifen" - t.text "herausfordernde_lektion_w2.24_listen_13" - t.text "herausfordernde_lektion_w2.25_listen_23" - t.text "herausfordernde_lektion_w2.26_listen_33" - t.text "herausfordernde_lektion_w2.keine" - t.text "offene_inhaltliche_fragen" - t.text "forum_oder_rfc_genutzt" - t.text "warum_frage_nicht_gestellt.ich_habe_nicht_genug_zeit_oder_will_" - t.text "warum_frage_nicht_gestellt.ich_bin_nicht_motiviert_die_frage_we" - t.text "warum_frage_nicht_gestellt.die_frage_kommt_mir_nicht_wichtig_ge" - t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_mir_keiner_a" - t.text "warum_frage_nicht_gestellt.ich_wei_nicht_wen_ich_fragen_bzw_wo_" - t.text "warum_frage_nicht_gestellt.ich_kann_meine_frage_nicht_gut_genug" - t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_die_frage_zu" - t.text "warum_frage_nicht_gestellt.anderer_grund" - t.text "anderer_grund" - t.text "tipps_zu_erhalten_war" - t.text "die_aufgabe_zur_selbstreflexion_aus_woche_2_hat_mir__gefallen" - t.text "ich_plane_meine_aufgabenlsungen_weiter_zu_reflektieren_oder_tu_" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_4-1_selbsteinschatzungs_quiz_woche_4", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "das_bearbeiten_der_aufgaben_aus_woche_3_fiel_mir_leicht" - t.text "herausfordernde_lektion_w3.31_funktionen_ohne_parameter" - t.text "herausfordernde_lektion_w3.32_funktionen_mit_parametern" - t.text "herausfordernde_lektion_w3.33_dictionaries" - t.text "herausfordernde_lektion_w3.34_zufallszahlen" - t.text "herausfordernde_lektion_w3.exkurs_konventionen_in_python" - t.text "herausfordernde_lektion_w3.keine" - t.text "hilfe_durch_krusteilnehmer" - t.text "hilfe_durch_dritte" - t.text "wie_bewertest_du_exkurs_und_linter" - t.text "das_feedback_des_linters_hat_mir" - t.text "das_feedback_des_linters_habe_ich" - t.text "wie_hat_dir_aufgabe_314_gefallen" - t.text "a314_verstaendnis.ich_habe_ein_besseres_verstndnis_des_linter_f" - t.text "a314_verstaendnis.ich_habe_die_relevanz_von_code_formatierungen" - t.text "a314_verstaendnis.ich_habe_mir_bewusst_gedanken_ber_die_benennu" - t.text "a314_verstaendnis.mir_ist_der_unterschied_zwischen_return__und_" - t.text "a314_verstaendnis.ich_habe_verstanden_inwiefern_funktionen_und_" - t.text "a314_verstaendnis.etwas_anderes_bitte_in_der_nchsten_frage_ergn" - t.text "a314_verstaendnis.gar_nicht" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_4-3_selbsteinschatzungs_quiz_zum_kursende", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "das_bearbeiten_der_aufgaben_aus_woche_4_fiel_mir_leicht" - t.text "herausfordernde_lektion_w4.41_eingabe" - t.text "herausfordernde_lektion_w4.42_zahlenraten" - t.text "herausfordernde_lektion_w4.43_snake_spiel_13" - t.text "herausfordernde_lektion_w4.44_snake_spiel_23" - t.text "herausfordernde_lektion_w4.45_snake_spiel_33" - t.text "herausfordernde_lektion_w4.exkurs_installieren_unter_windows_10" - t.text "herausfordernde_lektion_w4.keine" - t.text "wie_erfahren_mit_python_nach_kurs" - t.text "retrospektiv_wie_viel_erfahrung_hattest_du_vorher_mit_python" - t.text "wie_viel_hast_du_gelernt" - t.text "ich_bin_stolz_darauf_was_ich_in_kurs_geschafft_habe" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_6-1_snapshot_umfrage_zum_kurs", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" - t.text "wie_alt_bist_du" - t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" - t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "snake_abschlussprojekt_fand_ich" - t.text "snake_abschlussprojekt_war_hilfreich" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" - t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" - t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" - t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" - t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" - t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" - t.text "mehr_inhalte_wuenschen.keine" - t.text "kurselement_einfluss_lernerfolg.videos" - t.text "kurselement_einfluss_lernerfolg.selbsttests" - t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" - t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" - t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" - t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" - t.text "kurselement_einfluss_lernerfolg.die_reflexionen" - t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" - t.text "kurselement_einfluss_lernerfolg.keine" - t.text "naechste_schritte.weiteren_programmierkurs_belegen" - t.text "naechste_schritte.eigene_programme_schreiben" - t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" - t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" - t.text "naechste_schritte.nichts_weiter" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" - t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" - t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" - t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" - t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" - t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" - t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" - t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" - t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" - t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" - t.text "kommentare_in_co_zu_erbitten_war_fr_mich" - t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" - t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" - t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" - t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" - t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" - t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" - t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" - t.text "intevention_eine_frage_zu_stellen" - t.text "intevention_nach_hilfe_zu_fragen" - t.text "uebersetzung_linter" - t.text "wie_kann_co_weiter_untersetuetzen" - t.text "email_interview" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_6-1_umfrage_all", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" - t.text "wie_alt_bist_du" - t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" - t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "snake_abschlussprojekt_fand_ich" - t.text "snake_abschlussprojekt_war_hilfreich" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" - t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" - t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" - t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" - t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" - t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" - t.text "mehr_inhalte_wuenschen.keine" - t.text "kurselement_einfluss_lernerfolg.videos" - t.text "kurselement_einfluss_lernerfolg.selbsttests" - t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" - t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" - t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" - t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" - t.text "kurselement_einfluss_lernerfolg.die_reflexionen" - t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" - t.text "kurselement_einfluss_lernerfolg.keine" - t.text "naechste_schritte.weiteren_programmierkurs_belegen" - t.text "naechste_schritte.eigene_programme_schreiben" - t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" - t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" - t.text "naechste_schritte.nichts_weiter" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" - t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" - t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" - t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" - t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" - t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" - t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" - t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" - t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" - t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" - t.text "kommentare_in_co_zu_erbitten_war_fr_mich" - t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" - t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" - t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" - t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" - t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" - t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" - t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" - t.text "intevention_eine_frage_zu_stellen" - t.text "intevention_nach_hilfe_zu_fragen" - t.text "uebersetzung_linter" - t.text "wie_kann_co_weiter_untersetuetzen" - t.text "email_interview" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_6-1_umfrage_for_union", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" - t.text "wie_alt_bist_du" - t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" - t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "snake_abschlussprojekt_fand_ich" - t.text "snake_abschlussprojekt_war_hilfreich" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" - t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" - t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" - t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" - t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" - t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" - t.text "mehr_inhalte_wuenschen.keine" - t.text "kurselement_einfluss_lernerfolg.videos" - t.text "kurselement_einfluss_lernerfolg.selbsttests" - t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" - t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" - t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" - t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" - t.text "kurselement_einfluss_lernerfolg.die_reflexionen" - t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" - t.text "kurselement_einfluss_lernerfolg.keine" - t.text "naechste_schritte.weiteren_programmierkurs_belegen" - t.text "naechste_schritte.eigene_programme_schreiben" - t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" - t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" - t.text "naechste_schritte.nichts_weiter" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" - t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" - t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" - t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" - t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" - t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" - t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" - t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" - t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" - t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" - t.text "kommentare_in_co_zu_erbitten_war_fr_mich" - t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" - t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" - t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" - t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" - t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" - t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" - t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" - t.text "intevention_eine_frage_zu_stellen" - t.text "intevention_nach_hilfe_zu_fragen" - t.text "uebersetzung_linter" - t.text "wie_kann_co_weiter_untersetuetzen" - t.text "email_interview" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_6-1_umfrage_zum_kurs", id: false, force: :cascade do |t| - t.text "user_id" - t.text "accessed_at" - t.text "submitted_at" - t.integer "submit_duration" - t.integer "points" - t.text "welchem_geschlecht_fhlst_du_dich_zugehrig" - t.text "wie_alt_bist_du" - t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache" - t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn" - t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt" - t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses" - t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses" - t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein" - t.text "snake_abschlussprojekt_fand_ich" - t.text "snake_abschlussprojekt_war_hilfreich" - t.text "wurden_deine_erwartungen_an_den_kurs_erfllt" - t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features" - t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code" - t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis" - t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler" - t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_" - t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben" - t.text "mehr_inhalte_wuenschen.keine" - t.text "kurselement_einfluss_lernerfolg.videos" - t.text "kurselement_einfluss_lernerfolg.selbsttests" - t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum" - t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben" - t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic" - t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben" - t.text "kurselement_einfluss_lernerfolg.die_reflexionen" - t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen" - t.text "kurselement_einfluss_lernerfolg.keine" - t.text "naechste_schritte.weiteren_programmierkurs_belegen" - t.text "naechste_schritte.eigene_programme_schreiben" - t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere" - t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben" - t.text "naechste_schritte.nichts_weiter" - t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst" - t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie" - t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten" - t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_" - t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem" - t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st" - t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in" - t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern" - t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben" - t.text "wo_zukuenftig_hilfe_suchen.gar_nicht" - t.text "kommentare_in_co_zu_erbitten_war_fr_mich" - t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich" - t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant" - t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_" - t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen" - t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt" - t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean" - t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw" - t.text "intevention_eine_frage_zu_stellen" - t.text "intevention_nach_hilfe_zu_fragen" - t.text "uebersetzung_linter" - t.text "wie_kann_co_weiter_untersetuetzen" - t.text "email_interview" - t.text "feedback_selbsteinschaetzung" - end - - create_table "python20_7_course_report", id: false, force: :cascade do |t| - t.text "user_id" - t.text "enrollment_date" - t.text "first_enrollment" - t.text "user_created" - t.text "lang" - t.text "affiliated" - t.text "birth_date" - t.text "age" - t.text "age_group" - t.text "profile_picture" - t.text "affiliation" - t.text "career_status" - t.text "highest_degree" - t.text "professional_life" - t.text "job_position" - t.text "city" - t.text "gender" - t.text "country" - t.text "main_motivation_for_joining_open_hpi" - t.text "regular_computer_use" - t.text "top_country_code" - t.text "top_country_name" - t.text "top_city" - t.integer "desktop_web_activity" - t.integer "mobile_web_activity" - t.integer "mobile_app_activity" - t.text "first_action_timestamp" - t.text "first_visited_item_timestamp" - t.text "last_action_timestamp" - t.text "last_visited_item_timestamp" - t.text "last_visited_item" - t.text "sessions" - t.text "avg_session_duration" - t.text "total_session_duration" - t.text "video_play_activity" - t.text "video_play_activity_percentage" - t.text "video_downloads_activity" - t.text "video_downloads_activity_percentage" - t.text "slide_downloads_activity" - t.text "slide_downloads_activity_percentage" - t.integer "forum_activity" - t.decimal "forum_activity_per_day" - t.integer "forum_posting_activity" - t.text "quiz_performance" - t.text "graded_quiz_performance" - t.text "ungraded_quiz_performance" - t.integer "enrollment_delta_in_days" - t.integer "forum_posts" - t.integer "forum_threads" - t.text "reactivated" - t.text "reactivated_submission_date" - t.text "confirmation_of_participation" - t.text "record_of_achievement" - t.text "qualified_certificate" - t.text "course_completed" - t.text "un_enrolled" - t.text "quantile" - t.text "top_performance" - t.integer "items_visited" - t.decimal "items_visited_percentage" - t.integer "points" - t.integer "points_percentage" - t.decimal "woche_0_visited_percentage_section" - t.decimal "woche_1_visited_percentage_section" - t.decimal "woche_2_visited_percentage_section" - t.integer "woche_3_visited_percentage_section" - t.integer "woche_4_visited_percentage_section" - t.text "zustzliche_woche_visited_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_visited_percentage_sec" - t.text "i_like_i_wish_visited_percentage_section" - t.text "lsungen_visited_percentage_section" - t.decimal "woche_0_self_tests_percentage_section" - t.decimal "woche_1_self_tests_percentage_section" - t.decimal "woche_2_self_tests_percentage_section" - t.integer "woche_3_self_tests_percentage_section" - t.integer "woche_4_self_tests_percentage_section" - t.text "zustzliche_woche_self_tests_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_self_tests_percentage_" - t.integer "i_like_i_wish_self_tests_percentage_section" - t.text "lsungen_self_tests_percentage_section" - t.text "woche_0_assignments_percentage_section" - t.integer "woche_1_assignments_percentage_section" - t.integer "woche_2_assignments_percentage_section" - t.integer "woche_3_assignments_percentage_section" - t.integer "woche_4_assignments_percentage_section" - t.text "zustzliche_woche_assignments_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_assignments_percentage" - t.text "i_like_i_wish_assignments_percentage_section" - t.text "lsungen_assignments_percentage_section" - t.text "woche_0_bonus_percentage_section" - t.text "woche_1_bonus_percentage_section" - t.text "woche_2_bonus_percentage_section" - t.integer "woche_3_bonus_percentage_section" - t.text "woche_4_bonus_percentage_section" - t.text "zustzliche_woche_bonus_percentage_section" - t.text "zusammenfassungen_und_andere_materialien_bonus_percentage_secti" - t.text "i_like_i_wish_bonus_percentage_section" - t.text "lsungen_bonus_percentage_section" - t.text "woche_0___kennenlern_quiz_percentage_quiz" - t.text "woche_0___auswertung_des_kennenlern_quiz_percentage_quiz" - t.text "woche_1___selbsteinschtzungs_quiz_percentage_quiz" - t.text "woche_1___11_erstes_programmierbeispiel_percentage_quiz" - t.text "woche_1___13_variablen_percentage_quiz" - t.text "woche_1___14_strings_percentage_quiz" - t.text "woche_1___15_datentypen_percentage_quiz" - t.text "woche_1___16_turtle_12_percentage_quiz" - t.text "woche_1___17_turtle_22_percentage_quiz" - t.text "woche_1___hausaufgabe_1_percentage_quiz" - t.text "woche_2___selbsteinschtzungs_quiz_woche_2_percentage_quiz" - t.text "woche_2___21_verzweigungen_12_percentage_quiz" - t.text "woche_2___22_verzweigungen_22_percentage_quiz" - t.text "woche_2___23_schleifen_percentage_quiz" - t.text "woche_2___24_listen_13_percentage_quiz" - t.text "woche_2___25_listen_23_percentage_quiz" - t.text "woche_2___26_listen_33_percentage_quiz" - t.text "woche_2___26_reflexion_aufgabe_2_percentage_quiz" - t.text "woche_2___hausaufgabe_2_percentage_quiz" - t.text "woche_3___selbsteinschtzungs_quiz_woche_3_percentage_quiz" - t.text "woche_3___31_funktionen_ohne_parameter_percentage_quiz" - t.text "woche_3___exkurs_konventionen_percentage_quiz" - t.text "woche_3___32_funktionen_mit_parametern_percentage_quiz" - t.text "woche_3___33_dictionaries_percentage_quiz" - t.text "woche_3___34_zufallszahlen_percentage_quiz" - t.text "woche_3___34_reflexion_aufgabe_2_percentage_quiz" - t.text "woche_3___hausaufgabe_3_percentage_quiz" - t.text "woche_4___selbsteinschtzungs_quiz_woche_4_percentage_quiz" - t.text "woche_4___41_eingabe_percentage_quiz" - t.text "woche_4___44_reflexion_aufgabe_1_percentage_quiz" - t.text "woche_4___hausaufgabe_4_percentage_quiz" - t.text "woche_4___selbsteinschtzungs_quiz_zum_kursende_percentage_quiz" - t.text "i_like_i_wish___selbsteinschtzung_zum_i_like_i_wish_percentage_" - t.text "course_code" - end - - create_table "r_java21_tips", id: false, force: :cascade do |t| - t.integer "user_id" - t.string "user_gender" - t.string "age" - t.integer "skill_level_pre_java17" - t.integer "skill_level_pre_java20" - t.integer "skill_level_pre_java21" - t.integer "skill_level_pre_python20" - t.boolean "tips_group_python20" - t.boolean "linter_group_python20" - t.string "intervention_group_java21" - t.boolean "community_solution_group_java21" - t.integer "skill_level_post_java21" - t.integer "skill_level_post_python20" - t.float "points_java17" - t.float "points_java20" - t.float "points_java21" - t.float "points_python20" - t.integer "event_id" - t.string "event_category" - t.string "tip_id" - t.integer "exercise_id" - t.integer "file_id" - t.interval "working_time" - t.float "max_score" - t.float "max_reachable_points" - end - create_table "remote_evaluation_mappings", id: :serial, force: :cascade do |t| t.integer "user_id", null: false t.integer "exercise_id", null: false @@ -3013,8 +390,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "searches", id: :serial, force: :cascade do |t| t.integer "exercise_id", null: false - t.integer "user_id", null: false t.string "user_type", null: false + t.integer "user_id", null: false t.string "search" t.datetime "created_at" t.datetime "updated_at" @@ -3070,8 +447,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "subscriptions", id: :serial, force: :cascade do |t| - t.integer "user_id" t.string "user_type" + t.integer "user_id" t.integer "request_for_comment_id" t.string "subscription_type" t.datetime "created_at", null: false @@ -3136,57 +513,10 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_tips_on_user" end - create_table "tmp", id: false, force: :cascade do |t| - t.integer "user_id" - t.string "user_gender" - t.string "age" - t.integer "skill_level_pre_java17" - t.integer "skill_level_pre_java20" - t.integer "skill_level_pre_java21" - t.integer "skill_level_pre_python20" - t.boolean "tips_group_python20" - t.boolean "linter_group_python20" - t.string "intervention_group_java21" - t.boolean "community_solution_group_java21" - t.integer "skill_level_post_java21" - t.integer "skill_level_post_python20" - t.float "points_java17" - t.float "points_java20" - t.float "points_java21" - t.float "points_python20" - t.integer "exercise_id" - t.integer "rfc_id" - end - - create_table "tmp3", id: false, force: :cascade do |t| - t.integer "user_id" - t.string "user_gender" - t.string "age" - t.integer "skill_level_pre_java17" - t.integer "skill_level_pre_java20" - t.integer "skill_level_pre_java21" - t.integer "skill_level_pre_python20" - t.boolean "tips_group_python20" - t.boolean "linter_group_python20" - t.string "intervention_group_java21" - t.boolean "community_solution_group_java21" - t.integer "skill_level_post_java21" - t.integer "skill_level_post_python20" - t.float "points_java17" - t.float "points_java20" - t.float "points_java21" - t.float "points_python20" - t.integer "exercise_id" - t.float "tip_count_per_exercise" - t.bigint "tip_count" - t.decimal "avg_tips_per_exercise" - t.decimal "relative_tip_count" - end - create_table "user_exercise_feedbacks", id: :serial, force: :cascade do |t| t.integer "exercise_id", null: false - t.integer "user_id", null: false t.string "user_type", null: false + t.integer "user_id", null: false t.integer "difficulty" t.integer "working_time_seconds" t.string "feedback_text" @@ -3199,8 +529,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "user_exercise_interventions", id: :serial, force: :cascade do |t| - t.integer "user_id" t.string "user_type" + t.integer "user_id" t.integer "exercise_id" t.integer "intervention_id" t.integer "accumulated_worktime_s" @@ -3210,8 +540,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "user_proxy_exercise_exercises", id: :serial, force: :cascade do |t| - t.integer "user_id" t.string "user_type" + t.integer "user_id" t.integer "proxy_exercise_id" t.integer "exercise_id" t.datetime "created_at" @@ -3222,25 +552,6 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_user_proxy_exercise_exercises_on_user" end - create_table "wk2020_until_rfc_reply", id: false, force: :cascade do |t| - t.integer "user_id" - t.integer "exercise_id" - t.interval "working_time_until_rfc_reply" - end - - create_table "wk2020_with_wk_until_rfc", id: false, force: :cascade do |t| - t.string "external_user_id", limit: 255 - t.integer "user_id" - t.integer "exercise_id" - t.float "max_score" - t.float "max_reachable_points" - t.interval "working_time" - t.interval "working_time_until_rfc" - t.interval "working_time_until_rfc_reply" - t.time "percentile75" - t.time "percentile90" - end - add_foreign_key "community_solution_contributions", "community_solution_locks" add_foreign_key "community_solution_contributions", "community_solutions" add_foreign_key "community_solution_contributions", "study_groups" From 7e01389a6f4099857c1bcaed87233d624688561f Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 19 Jul 2022 15:27:42 +0200 Subject: [PATCH 226/329] Update schema.rb according to prodcution environment --- db/schema.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index c042354f..141de618 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -18,8 +18,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do enable_extension "plpgsql" create_table "anomaly_notifications", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "exercise_id" t.integer "exercise_collection_id" t.string "reason" @@ -34,10 +34,10 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.string "api_key" t.datetime "created_at" t.datetime "updated_at" - t.string "user_type" t.integer "user_id" t.string "push_url" t.string "check_uuid_url" + t.string "user_type" t.index ["user_type", "user_id"], name: "index_codeharbor_links_on_user_type_and_user_id" end @@ -124,8 +124,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "events", id: :serial, force: :cascade do |t| t.string "category" t.string "data" - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "exercise_id" t.integer "file_id" t.datetime "created_at", null: false @@ -165,8 +165,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.datetime "created_at" t.datetime "updated_at" t.boolean "use_anomaly_detection", default: false - t.string "user_type" t.integer "user_id" + t.string "user_type" t.index ["user_type", "user_id"], name: "index_exercise_collections_on_user_type_and_user_id" end @@ -254,8 +254,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "files", id: :serial, force: :cascade do |t| t.text "content" - t.string "context_type" t.integer "context_id" + t.string "context_type" t.integer "file_id" t.integer "file_type_id" t.boolean "hidden" @@ -390,8 +390,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "searches", id: :serial, force: :cascade do |t| t.integer "exercise_id", null: false - t.string "user_type", null: false t.integer "user_id", null: false + t.string "user_type", null: false t.string "search" t.datetime "created_at" t.datetime "updated_at" @@ -447,8 +447,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "subscriptions", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "request_for_comment_id" t.string "subscription_type" t.datetime "created_at", null: false @@ -474,7 +474,7 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "testrun_messages", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.bigint "testrun_id", null: false t.interval "timestamp", default: "PT0S", null: false - t.integer "cmd", limit: 2, default: 0, null: false, comment: "Used as enum in Rails" + t.integer "cmd", limit: 2, default: 1, null: false, comment: "Used as enum in Rails" t.integer "stream", limit: 2, comment: "Used as enum in Rails" t.text "log" t.jsonb "data" @@ -515,8 +515,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do create_table "user_exercise_feedbacks", id: :serial, force: :cascade do |t| t.integer "exercise_id", null: false - t.string "user_type", null: false t.integer "user_id", null: false + t.string "user_type", null: false t.integer "difficulty" t.integer "working_time_seconds" t.string "feedback_text" @@ -529,8 +529,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "user_exercise_interventions", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "exercise_id" t.integer "intervention_id" t.integer "accumulated_worktime_s" @@ -540,8 +540,8 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do end create_table "user_proxy_exercise_exercises", id: :serial, force: :cascade do |t| - t.string "user_type" t.integer "user_id" + t.string "user_type" t.integer "proxy_exercise_id" t.integer "exercise_id" t.datetime "created_at" From 48e0afb4843406f1eec936b3071828af14aaf99b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 03:02:13 +0000 Subject: [PATCH 227/329] Bump bootstrap from 4.6.1 to 4.6.2 Bumps [bootstrap](https://github.com/twbs/bootstrap) from 4.6.1 to 4.6.2. - [Release notes](https://github.com/twbs/bootstrap/releases) - [Commits](https://github.com/twbs/bootstrap/compare/v4.6.1...v4.6.2) --- updated-dependencies: - dependency-name: bootstrap 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 b7a3f0d5..ec629730 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "@fortawesome/fontawesome-free": "^5.15.4", "@rails/webpacker": "^5.4.3", "@sentry/browser": "^6.11.0", - "bootstrap": "^4.6.1", + "bootstrap": "^4.6.2", "bootswatch": "^4.6.0", "chosen-js": "^1.8.7", "d3": "^7.6.1", diff --git a/yarn.lock b/yarn.lock index 101af6e3..7be404c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1640,10 +1640,10 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== -bootstrap@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.1.tgz#bc25380c2c14192374e8dec07cf01b2742d222a2" - integrity sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og== +bootstrap@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.2.tgz#8e0cd61611728a5bf65a3a2b8d6ff6c77d5d7479" + integrity sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ== bootswatch@^4.6.0: version "4.6.1" From f17f987b89891f700f63405f61c76040f8a11d5b Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Wed, 20 Jul 2022 10:01:46 +0200 Subject: [PATCH 228/329] added toggle autosave translation to the config yml files --- config/locales/de.yml | 4 ++++ config/locales/en.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/config/locales/de.yml b/config/locales/de.yml index bccf33b9..4a011c4f 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -521,6 +521,10 @@ de: after_late_deadline: Verspätete Abgabe addendum: '* Differenzen von mehr als %{delta} Minuten werden ignoriert.' filter: "Hinweis: Nur die letzte Abgabe vor einer Abgabefrist ist sichtbar." + toggle_autosave_on: Zwischenspeicherungen anzeigen + toggle_autosave_off: Zwischenspeicherungen ausblenden + toggle_status_on: Zwischenspeicherungen sind eingeblendet + toggle_status_off: Zwischenspeicherungen sind ausgeblendet proxy_exercises: index: clone: Duplizieren diff --git a/config/locales/en.yml b/config/locales/en.yml index 946f58b9..97693a08 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -521,6 +521,10 @@ en: after_late_deadline: Too Late addendum: "* Deltas longer than %{delta} minutes are ignored." filter: "Remember: Only the last submission per deadline is shown." + toggle_autosave_on: Show Autosaves + toggle_autosave_off: Hide Autosaves + toggle_status_on: Autosaves are currently visible + toggle_status_off: Autosaves are currently hidden proxy_exercises: index: clone: Duplicate From 0f84e4627284cb3a75dfdc51bd55550940747ee9 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Wed, 20 Jul 2022 10:06:23 +0200 Subject: [PATCH 229/329] added logic to the statistics method to be able to toggle autosave submissions depending on the show_autosaves param --- app/controllers/exercises_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index f8d82147..245c4598 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -472,6 +472,8 @@ working_time_accumulated: working_time_accumulated}) if policy(@exercise).detailed_statistics? @submissions = Submission.where(user: @external_user, exercise_id: @exercise.id).in_study_group_of(current_user).order('created_at') + @show_autosaves = params[:show_autosaves] == 'true' + @submissions = @submissions.where.not(cause: 'autosave') unless @show_autosaves interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id, @exercise.id) @all_events = (@submissions + interventions).sort_by(&:created_at) From a83bff80ed20d90021fd14490ba36282a7f0bf75 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Wed, 20 Jul 2022 10:07:46 +0200 Subject: [PATCH 230/329] added a button to toggle autosave submissions as well as a label to indicate current toggle status --- .../exercises/external_users/statistics.html.slim | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index e37622fd..fcdf5c6b 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -38,6 +38,17 @@ h1 option data-submission=submission =index - index += 1 + .bg-light.w-100.p-2.mb-4.align-items-center.d-flex.justify-content-between + - if @show_autosaves + span.pl-1.pb-1 + i.fa.fa-info-circle.align-middle + small.mr-5.ml-1 = t('.toggle_status_on') + = link_to t('.toggle_autosave_off'), statistics_external_user_exercise_path(show_autosaves: false), class: "btn btn-outline-dark float-right btn-sm" + - else + span.pl-1.pb-1 + i.fa.fa-info-circle.align-middle + small.mr-5.ml-1 = t('.toggle_status_off') + = link_to t('.toggle_autosave_on'), statistics_external_user_exercise_path(show_autosaves: true), class: "btn btn-outline-dark float-right btn-sm" #timeline .table-responsive table.table From 67dd8566b604193089e7d9cca7ab62f4a4972462 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Wed, 20 Jul 2022 10:08:59 +0200 Subject: [PATCH 231/329] added a test scenario to check if autosave submissions are being toggled right --- spec/controllers/exercises_controller_spec.rb | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index 847dc805..e2404225 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -236,6 +236,40 @@ describe ExercisesController do expect_template(:statistics) end + describe 'GET #statistics for external users' do + let(:perform_request) { get :statistics, params: params } + let(:params) { {id: exercise.id, external_user_id: external_user.id} } + let(:external_user) { create(:external_user) } + + before do + 2.times { create(:submission, cause: 'autosave', user: external_user, exercise: exercise) } + 2.times { create(:submission, cause: 'run', user: external_user, exercise: exercise) } + create(:submission, cause: 'assess', user: external_user, exercise: exercise) + end + + context 'when viewing the default submission statistics page without a parameter' do + it 'does not list autosaved submissions' do + perform_request + expect(assigns(:submissions)).to match_array [ + an_object_having_attributes(cause: 'run', user_id: external_user.id), + an_object_having_attributes(cause: 'assess', user_id: external_user.id), + an_object_having_attributes(cause: 'run', user_id: external_user.id), + ] + end + end + + context 'when including autosaved submissions via the query parameter' do + let(:params) { super().merge(show_autosaves: 'true') } + + it 'lists all submissions, including autosaved submissions' do + perform_request + submissions = assigns(:submissions) + expect(submissions).to match_array Submission.all + expect(submissions).to include an_object_having_attributes(cause: 'autosave', user_id: external_user.id) + end + end + end + describe 'POST #submit' do let(:output) { {} } let(:perform_request) { post :submit, format: :json, params: {id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id}} } From 184c9cba6d7a568e6ba9c6051d206b50bf3fc84c Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Wed, 20 Jul 2022 16:22:35 +0200 Subject: [PATCH 232/329] created new feature test to check that only users with the right permission are able to see the new autosave-hide feature --- .../features/external_user_statistics_spec.rb | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 spec/features/external_user_statistics_spec.rb diff --git a/spec/features/external_user_statistics_spec.rb b/spec/features/external_user_statistics_spec.rb new file mode 100644 index 00000000..0716daee --- /dev/null +++ b/spec/features/external_user_statistics_spec.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe 'ExternalUserStatistics', js: true do + let(:learner) { create(:external_user) } + let(:exercise) { create(:dummy, user: user) } + let(:study_group) { create(:study_group) } + let(:password) { 'password123456' } + + before do + 2.times { create(:submission, cause: 'autosave', user: learner, exercise: exercise, study_group: study_group) } + 2.times { create(:submission, cause: 'run', user: learner, exercise: exercise, study_group: study_group) } + create(:submission, cause: 'assess', user: learner, exercise: exercise, study_group: study_group) + create(:submission, cause: 'submit', user: learner, exercise: exercise, study_group: study_group) + + study_group.external_users << learner + study_group.internal_users << user + study_group.save + + visit(sign_in_path) + fill_in('email', with: user.email) + fill_in('password', with: password) + click_button(I18n.t('sessions.new.link')) + allow_any_instance_of(LtiHelper).to receive(:lti_outcome_service?).and_return(true) + visit(statistics_external_user_exercise_path(id: exercise.id, external_user_id: learner.id)) + end + + context 'when a admin accesses the page' do + let(:user) { create(:admin, password: password) } + + it 'does display the option to enable autosaves' do + expect(page).to have_content(I18n.t('exercises.external_users.statistics.toggle_status_on')).or have_content(I18n.t('exercises.external_users.statistics.toggle_status_off')) + end + end + + context 'when a teacher accesses the page' do + let(:user) { create(:teacher, password: password) } + + it 'does not display the option to enable autosaves' do + expect(page).not_to have_content(I18n.t('exercises.external_users.statistics.toggle_status_on')) + expect(page).not_to have_content(I18n.t('exercises.external_users.statistics.toggle_status_off')) + end + end +end From 66d9a2b22af99f36e2acb953c4988d3277ef5b44 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Wed, 20 Jul 2022 16:47:37 +0200 Subject: [PATCH 233/329] added logic to hide the show/hide autosaves feature for users without permission to view detailed_statistics --- .../external_users/statistics.html.slim | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index fcdf5c6b..f9622c49 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -38,17 +38,18 @@ h1 option data-submission=submission =index - index += 1 - .bg-light.w-100.p-2.mb-4.align-items-center.d-flex.justify-content-between - - if @show_autosaves - span.pl-1.pb-1 - i.fa.fa-info-circle.align-middle - small.mr-5.ml-1 = t('.toggle_status_on') - = link_to t('.toggle_autosave_off'), statistics_external_user_exercise_path(show_autosaves: false), class: "btn btn-outline-dark float-right btn-sm" - - else - span.pl-1.pb-1 - i.fa.fa-info-circle.align-middle - small.mr-5.ml-1 = t('.toggle_status_off') - = link_to t('.toggle_autosave_on'), statistics_external_user_exercise_path(show_autosaves: true), class: "btn btn-outline-dark float-right btn-sm" + - if policy(@exercise).detailed_statistics? + .bg-light.w-100.p-2.mb-4.align-items-center.d-flex.justify-content-between + - if @show_autosaves + span.pl-1.pb-1 + i.fa.fa-info-circle.align-middle + small.mr-5.ml-1 = t('.toggle_status_on') + = link_to t('.toggle_autosave_off'), statistics_external_user_exercise_path(show_autosaves: false), class: "btn btn-outline-dark float-right btn-sm" + - else + span.pl-1.pb-1 + i.fa.fa-info-circle.align-middle + small.mr-5.ml-1 = t('.toggle_status_off') + = link_to t('.toggle_autosave_on'), statistics_external_user_exercise_path(show_autosaves: true), class: "btn btn-outline-dark float-right btn-sm" #timeline .table-responsive table.table From 6ca5982a451a1ae4fb1d9151f9481001c8eb239b Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Jul 2022 17:39:36 +0200 Subject: [PATCH 234/329] Use letter_opener for dev environment --- Gemfile | 1 + Gemfile.lock | 5 +++++ config/environments/development.rb | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/Gemfile b/Gemfile index 78cbecfe..726bc6d4 100644 --- a/Gemfile +++ b/Gemfile @@ -59,6 +59,7 @@ group :development, :staging do gem 'better_errors' gem 'binding_of_caller' gem 'bootsnap', require: false + gem 'letter_opener' gem 'listen' gem 'pry-rails' gem 'rack-mini-profiler' diff --git a/Gemfile.lock b/Gemfile.lock index 6cd8742d..c9dcfbed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -219,6 +219,10 @@ GEM kaminari-core (1.2.2) kramdown (2.4.0) rexml + launchy (2.5.0) + addressable (~> 2.7) + letter_opener (1.8.1) + launchy (>= 2.2, < 3) listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -566,6 +570,7 @@ DEPENDENCIES js-routes json_schemer kramdown + letter_opener listen mimemagic mnemosyne-ruby diff --git a/config/environments/development.rb b/config/environments/development.rb index 0ba4b549..3d9636d1 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -38,6 +38,10 @@ Rails.application.configure do config.active_storage.service = :local # Don't care if the mailer can't send. + config.action_mailer.perform_deliveries = true + + # Perform deliveries via letter opener + config.action_mailer.delivery_method = :letter_opener config.action_mailer.raise_delivery_errors = false config.action_mailer.perform_caching = false From 2141fdb1ac196df6ccb85170c2d4713f453029c2 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Wed, 20 Jul 2022 21:13:06 +0200 Subject: [PATCH 235/329] Refactor external_user_statistics to own controller action --- app/controllers/exercises_controller.rb | 106 +++++++++--------- app/policies/exercise_policy.rb | 2 +- config/locales/de.yml | 1 + config/locales/en.yml | 1 + config/routes.rb | 4 +- spec/controllers/exercises_controller_spec.rb | 8 +- 6 files changed, 64 insertions(+), 58 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 245c4598..820e61ac 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -11,8 +11,9 @@ class ExercisesController < ApplicationController before_action :set_execution_environments, only: %i[index create edit new update] before_action :set_exercise_and_authorize, only: MEMBER_ACTIONS + %i[clone implement working_times intervention search run statistics submit reload feedback - requests_for_comments study_group_dashboard export_external_check export_external_confirm] - before_action :set_external_user_and_authorize, only: [:statistics] + requests_for_comments study_group_dashboard export_external_check export_external_confirm + external_user_statistics] + before_action :set_external_user_and_authorize, only: [:external_user_statistics] before_action :set_file_types, only: %i[create edit new update] before_action :set_course_token, only: [:implement] before_action :set_available_tips, only: %i[implement show new edit] @@ -466,57 +467,58 @@ working_time_accumulated: working_time_accumulated}) end def statistics - if @external_user - # Render statistics page for one specific external user - authorize(@external_user, :statistics?) - if policy(@exercise).detailed_statistics? - @submissions = Submission.where(user: @external_user, - exercise_id: @exercise.id).in_study_group_of(current_user).order('created_at') - @show_autosaves = params[:show_autosaves] == 'true' - @submissions = @submissions.where.not(cause: 'autosave') unless @show_autosaves - interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id, - @exercise.id) - @all_events = (@submissions + interventions).sort_by(&:created_at) - @deltas = @all_events.map.with_index do |item, index| - delta = item.created_at - @all_events[index - 1].created_at if index.positive? - delta.nil? || (delta > StatisticsHelper::WORKING_TIME_DELTA_IN_SECONDS) ? 0 : delta - end - @working_times_until = [] - @all_events.each_with_index do |_, index| - @working_times_until.push((format_time_difference(@deltas[0..index].sum) if index.positive?)) - end - else - final_submissions = Submission.where(user: @external_user, - exercise_id: @exercise.id).in_study_group_of(current_user).final - @submissions = [] - %i[before_deadline within_grace_period after_late_deadline].each do |filter| - relevant_submission = final_submissions.send(filter).latest - @submissions.push relevant_submission if relevant_submission.present? - end - @all_events = @submissions - end - render 'exercises/external_users/statistics' - else - # Show general statistic page for specific exercise - user_statistics = {'InternalUser' => {}, 'ExternalUser' => {}} - additional_filter = if policy(@exercise).detailed_statistics? - '' - elsif !policy(@exercise).detailed_statistics? && current_user.study_groups.count.positive? - "AND study_group_id IN (#{current_user.study_groups.pluck(:id).join(', ')}) AND cause = 'submit'" - else - # e.g. internal user without any study groups, show no submissions - 'AND FALSE' - end - query = "SELECT user_id, user_type, MAX(score) AS maximum_score, COUNT(id) AS runs - FROM submissions WHERE exercise_id = #{@exercise.id} #{additional_filter} - GROUP BY user_id, user_type;" - ApplicationRecord.connection.execute(query).each do |tuple| - user_statistics[tuple['user_type']][tuple['user_id'].to_i] = tuple - end - render locals: { - user_statistics: user_statistics, - } + # Show general statistic page for specific exercise + user_statistics = {'InternalUser' => {}, 'ExternalUser' => {}} + additional_filter = if policy(@exercise).detailed_statistics? + '' + elsif !policy(@exercise).detailed_statistics? && current_user.study_groups.count.positive? + "AND study_group_id IN (#{current_user.study_groups.pluck(:id).join(', ')}) AND cause = 'submit'" + else + # e.g. internal user without any study groups, show no submissions + 'AND FALSE' + end + query = "SELECT user_id, user_type, MAX(score) AS maximum_score, COUNT(id) AS runs + FROM submissions WHERE exercise_id = #{@exercise.id} #{additional_filter} + GROUP BY user_id, user_type;" + ApplicationRecord.connection.execute(query).each do |tuple| + user_statistics[tuple['user_type']][tuple['user_id'].to_i] = tuple end + render locals: { + user_statistics: user_statistics, + } + end + + def external_user_statistics + # Render statistics page for one specific external user + + if policy(@exercise).detailed_statistics? + @submissions = Submission.where(user: @external_user, + exercise_id: @exercise.id).in_study_group_of(current_user).order('created_at') + @show_autosaves = params[:show_autosaves] == 'true' + @submissions = @submissions.where.not(cause: 'autosave') unless @show_autosaves + interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id, + @exercise.id) + @all_events = (@submissions + interventions).sort_by(&:created_at) + @deltas = @all_events.map.with_index do |item, index| + delta = item.created_at - @all_events[index - 1].created_at if index.positive? + delta.nil? || (delta > StatisticsHelper::WORKING_TIME_DELTA_IN_SECONDS) ? 0 : delta + end + @working_times_until = [] + @all_events.each_with_index do |_, index| + @working_times_until.push((format_time_difference(@deltas[0..index].sum) if index.positive?)) + end + else + final_submissions = Submission.where(user: @external_user, + exercise_id: @exercise.id).in_study_group_of(current_user).final + @submissions = [] + %i[before_deadline within_grace_period after_late_deadline].each do |filter| + relevant_submission = final_submissions.send(filter).latest + @submissions.push relevant_submission if relevant_submission.present? + end + @all_events = @submissions + end + + render 'exercises/external_users/statistics' end def submit diff --git a/app/policies/exercise_policy.rb b/app/policies/exercise_policy.rb index 993fe67c..81fab186 100644 --- a/app/policies/exercise_policy.rb +++ b/app/policies/exercise_policy.rb @@ -5,7 +5,7 @@ class ExercisePolicy < AdminOrAuthorPolicy admin? end - %i[show? feedback? statistics? rfcs_for_exercise?].each do |action| + %i[show? feedback? statistics? external_user_statistics? rfcs_for_exercise?].each do |action| define_method(action) { admin? || teacher_in_study_group? || (teacher? && @record.public?) || author? } end diff --git a/config/locales/de.yml b/config/locales/de.yml index 4a011c4f..923a1599 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -477,6 +477,7 @@ de: feedback: Feedback requests_for_comments: Kommentaranfragen study_group_dashboard: Live Dashboard + external_user_statistics: Statistik für externe Nutzer show: is_unpublished: Aufgabe ist deaktiviert statistics: diff --git a/config/locales/en.yml b/config/locales/en.yml index 97693a08..521b2939 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -477,6 +477,7 @@ en: feedback: Feedback requests_for_comments: Requests for Comments study_group_dashboard: Live Dashboard + external_user_statistics: External User Statistics show: is_unpublished: Exercise is unpublished statistics: diff --git a/config/routes.rb b/config/routes.rb index 3890129c..69c3795b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -117,7 +117,9 @@ Rails.application.routes.draw do resources :user_exercise_feedbacks, except: %i[show index] resources :external_users, only: %i[index show], concerns: :statistics do - resources :exercises, concerns: :statistics + resources :exercises do + get :statistics, to: 'exercises#external_user_statistics', on: :member + end member do get :tag_statistics end diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index e2404225..57479b5c 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -236,8 +236,8 @@ describe ExercisesController do expect_template(:statistics) end - describe 'GET #statistics for external users' do - let(:perform_request) { get :statistics, params: params } + describe 'GET #external_user_statistics' do + let(:perform_request) { get :external_user_statistics, params: params } let(:params) { {id: exercise.id, external_user_id: external_user.id} } let(:external_user) { create(:external_user) } @@ -250,7 +250,7 @@ describe ExercisesController do context 'when viewing the default submission statistics page without a parameter' do it 'does not list autosaved submissions' do perform_request - expect(assigns(:submissions)).to match_array [ + expect(assigns(:all_events).filter {|event| event.is_a? Submission }).to match_array [ an_object_having_attributes(cause: 'run', user_id: external_user.id), an_object_having_attributes(cause: 'assess', user_id: external_user.id), an_object_having_attributes(cause: 'run', user_id: external_user.id), @@ -263,7 +263,7 @@ describe ExercisesController do it 'lists all submissions, including autosaved submissions' do perform_request - submissions = assigns(:submissions) + submissions = assigns(:all_events).filter {|event| event.is_a? Submission } expect(submissions).to match_array Submission.all expect(submissions).to include an_object_having_attributes(cause: 'autosave', user_id: external_user.id) end From d4c567c722f49b2c522e4303c570db3e455baccc Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 21 Jul 2022 16:33:55 +0200 Subject: [PATCH 236/329] Remove @submissions variable for external_user_statistics --- app/controllers/exercises_controller.rb | 12 ++++++------ .../exercises/external_users/statistics.html.slim | 9 +++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 820e61ac..688177e5 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -492,13 +492,13 @@ working_time_accumulated: working_time_accumulated}) # Render statistics page for one specific external user if policy(@exercise).detailed_statistics? - @submissions = Submission.where(user: @external_user, + submissions = Submission.where(user: @external_user, exercise_id: @exercise.id).in_study_group_of(current_user).order('created_at') @show_autosaves = params[:show_autosaves] == 'true' - @submissions = @submissions.where.not(cause: 'autosave') unless @show_autosaves + submissions = submissions.where.not(cause: 'autosave') unless @show_autosaves interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id, @exercise.id) - @all_events = (@submissions + interventions).sort_by(&:created_at) + @all_events = (submissions + interventions).sort_by(&:created_at) @deltas = @all_events.map.with_index do |item, index| delta = item.created_at - @all_events[index - 1].created_at if index.positive? delta.nil? || (delta > StatisticsHelper::WORKING_TIME_DELTA_IN_SECONDS) ? 0 : delta @@ -510,12 +510,12 @@ working_time_accumulated: working_time_accumulated}) else final_submissions = Submission.where(user: @external_user, exercise_id: @exercise.id).in_study_group_of(current_user).final - @submissions = [] + submissions = [] %i[before_deadline within_grace_period after_late_deadline].each do |filter| relevant_submission = final_submissions.send(filter).latest - @submissions.push relevant_submission if relevant_submission.present? + submissions.push relevant_submission if relevant_submission.present? end - @all_events = @submissions + @all_events = submissions end render 'exercises/external_users/statistics' diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index f9622c49..22a10c98 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -3,20 +3,21 @@ h1 ' (external user = link_to_if(policy(@external_user).show?, @external_user.displayname, @external_user) ' ) -- current_submission = @submissions.first +- submissions = @all_events.filter{|event| event.is_a? Submission} +- current_submission = submissions.first - if current_submission - initial_files = current_submission.files.to_a - all_files = [] - file_types = Set.new() - - @submissions.each do |submission| + - submissions.each do |submission| - submission.files.each do |file| - file_types.add(ActiveSupport::JSON.encode(file.file_type)) - all_files.push(submission.files) - all_files.reject!(&:blank?) - file_types.reject!(&:blank?) - .d-none#data data-submissions=ActiveSupport::JSON.encode(@submissions) data-files=ActiveSupport::JSON.encode(all_files) data-file-types=ActiveSupport::JSON.encode(file_types) + .d-none#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=ActiveSupport::JSON.encode(all_files) data-file-types=ActiveSupport::JSON.encode(file_types) #stats-editor.row - index = 0 @@ -33,7 +34,7 @@ h1 input type='range' orient='horizontal' list='datapoints' min=0 max=all_files.length-1 value=0 style="width: 100%" datalist#datapoints - index=0 - - @submissions.each do |submission| + - submissions.each do |submission| - next if submission.files.blank? option data-submission=submission =index From 67a81b0bf460cac73fa0d36ad685a2ad7357dfd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 03:01:27 +0000 Subject: [PATCH 237/329] Bump rubocop from 1.31.2 to 1.32.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.31.2 to 1.32.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.31.2...v1.32.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c9dcfbed..28b71fe8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -410,14 +410,14 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.31.2) + rubocop (1.32.0) json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.18.0, < 2.0) + rubocop-ast (>= 1.19.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.19.1) From 8d9ca688a9ab1d834a9be683054bb453063d7237 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jul 2022 03:01:47 +0000 Subject: [PATCH 238/329] Bump nokogiri from 1.13.7 to 1.13.8 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.7 to 1.13.8. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.7...v1.13.8) --- updated-dependencies: - dependency-name: nokogiri 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 28b71fe8..69ccd264 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -274,7 +274,7 @@ GEM timeout netrc (0.11.0) nio4r (2.5.8) - nokogiri (1.13.7) + nokogiri (1.13.8) mini_portile2 (~> 2.8.0) racc (~> 1.4) nyan-cat-formatter (0.12.0) From 1ad7580d2c4f3c34ec61be5ffc9107cc8e3260fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Jul 2022 03:02:03 +0000 Subject: [PATCH 239/329] Bump sentry-ruby from 5.3.1 to 5.4.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.3.1 to 5.4.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/5.3.1...5.4.1) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 69ccd264..50ec1900 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -457,9 +457,8 @@ GEM sentry-rails (5.3.1) railties (>= 5.0) sentry-ruby-core (~> 5.3.1) - sentry-ruby (5.3.1) + sentry-ruby (5.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.3.1) sentry-ruby-core (5.3.1) concurrent-ruby set (1.0.2) From d6659f78583a5b9326dcbe0315def4b47dad5886 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Jul 2022 03:01:46 +0000 Subject: [PATCH 240/329] Bump pg from 1.4.1 to 1.4.2 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.1 to 1.4.2. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.1...v1.4.2) --- updated-dependencies: - dependency-name: pg 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 50ec1900..649c9b67 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -292,7 +292,7 @@ GEM parser (3.1.2.0) ast (~> 2.4.1) path_expander (1.1.1) - pg (1.4.1) + pg (1.4.2) prometheus_exporter (2.0.3) webrick pry (0.13.1) From 280ab78734f1b7bb5f605bc9d811d3319cb78ed4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Jul 2022 03:01:25 +0000 Subject: [PATCH 241/329] Bump sentry-rails from 5.3.1 to 5.4.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.3.1 to 5.4.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/5.3.1...5.4.1) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 649c9b67..e37590f5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -454,13 +454,11 @@ GEM rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) semantic_range (3.0.0) - sentry-rails (5.3.1) + sentry-rails (5.4.1) railties (>= 5.0) - sentry-ruby-core (~> 5.3.1) + sentry-ruby (~> 5.4.1) sentry-ruby (5.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (5.3.1) - concurrent-ruby set (1.0.2) shoulda-matchers (5.1.0) activesupport (>= 5.2.0) @@ -506,7 +504,7 @@ GEM turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) - tzinfo (2.0.4) + tzinfo (2.0.5) concurrent-ruby (~> 1.0) unf (0.1.4) unf_ext From fe64be7613daecb88cee4cbd51312cf409769068 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 03:00:57 +0000 Subject: [PATCH 242/329] Bump bootsnap from 1.12.0 to 1.13.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.12.0 to 1.13.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.12.0...v1.13.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e37590f5..1aad52ea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,7 +92,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.12.0) + bootsnap (1.13.0) msgpack (~> 1.2) bootstrap-will_paginate (1.0.0) will_paginate @@ -252,7 +252,7 @@ GEM mnemosyne-ruby (1.13.0) activesupport (>= 4) bunny - msgpack (1.5.3) + msgpack (1.5.4) multi_json (1.15.0) multi_xml (0.6.0) nested_form (0.3.2) From b2cb9568602c30a1ed759c41fdb6832ed0d2e01a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Jul 2022 03:01:49 +0000 Subject: [PATCH 243/329] Bump faraday from 2.3.0 to 2.4.0 Bumps [faraday](https://github.com/lostisland/faraday) from 2.3.0 to 2.4.0. - [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/v2.3.0...v2.4.0) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1aad52ea..7e770a4f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,10 +152,10 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (2.3.0) + faraday (2.4.0) faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) - faraday-net_http (2.0.3) + faraday-net_http (2.1.0) faraday-net_http_persistent (2.0.1) faraday-net_http net-http-persistent (~> 4.0) From fe410a5306dd422042fdeffe806703eaa689dcb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 03:01:42 +0000 Subject: [PATCH 244/329] Bump webmock from 3.14.0 to 3.16.0 Bumps [webmock](https://github.com/bblimke/webmock) from 3.14.0 to 3.16.0. - [Release notes](https://github.com/bblimke/webmock/releases) - [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md) - [Commits](https://github.com/bblimke/webmock/compare/v3.14.0...v3.16.0) --- updated-dependencies: - dependency-name: webmock 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 7e770a4f..e80cfd63 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -516,7 +516,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.14.0) + webmock (3.16.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) From d64daadd216eb312f8025a99718f7b3c4747e57f Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Tue, 2 Aug 2022 13:57:44 +0200 Subject: [PATCH 245/329] added AuthenticationToken model, updated some restrictions for the authentication token table, added dependent destroy to the user model for authentication tokens --- app/models/authentication_token.rb | 14 ++++++++++++++ app/models/user.rb | 1 + .../20220721131946_create_authentication_tokens.rb | 12 ++++++++++++ db/schema.rb | 13 ++++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 app/models/authentication_token.rb create mode 100644 db/migrate/20220721131946_create_authentication_tokens.rb diff --git a/app/models/authentication_token.rb b/app/models/authentication_token.rb new file mode 100644 index 00000000..b1bda282 --- /dev/null +++ b/app/models/authentication_token.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'securerandom' + +class AuthenticationToken < ApplicationRecord + include Creation + def self.generate!(user) + create!( + shared_secret: SecureRandom.hex(32), + user: user, + expire_at: 7.days.from_now + ) + end +end diff --git a/app/models/user.rb b/app/models/user.rb index 835a1617..cd5e5379 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -6,6 +6,7 @@ class User < ApplicationRecord ROLES = %w[admin teacher learner].freeze belongs_to :consumer + has_many :authentication_token, dependent: :destroy has_many :study_group_memberships, as: :user has_many :study_groups, through: :study_group_memberships, as: :user has_many :exercises, as: :user diff --git a/db/migrate/20220721131946_create_authentication_tokens.rb b/db/migrate/20220721131946_create_authentication_tokens.rb new file mode 100644 index 00000000..6cf1208d --- /dev/null +++ b/db/migrate/20220721131946_create_authentication_tokens.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class CreateAuthenticationTokens < ActiveRecord::Migration[6.1] + def change + create_table :authentication_tokens, id: :uuid do |t| + t.string :shared_secret, null: false, index: {unique: true} + t.references :user, polymorphic: true, null: false + t.date :expire_at, null: false + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 141de618..4a9ca522 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_04_15_215112) do +ActiveRecord::Schema.define(version: 2022_07_21_131946) do # These are extensions that must be enabled in order to support this database enable_extension "pg_trgm" @@ -30,6 +30,17 @@ ActiveRecord::Schema.define(version: 2022_04_15_215112) do t.index ["user_type", "user_id"], name: "index_anomaly_notifications_on_user" end + create_table "authentication_tokens", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.string "shared_secret", null: false + t.string "user_type", null: false + t.bigint "user_id", null: false + t.date "expire_at", null: false + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["shared_secret"], name: "index_authentication_tokens_on_shared_secret", unique: true + t.index ["user_type", "user_id"], name: "index_authentication_tokens_on_user" + end + create_table "codeharbor_links", id: :serial, force: :cascade do |t| t.string "api_key" t.datetime "created_at" From c638df12e7b7efca208b8502c28f01caeaf7cff6 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Tue, 2 Aug 2022 13:48:32 +0200 Subject: [PATCH 246/329] updated locales/de.yml mail body texts --- config/locales/de.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/config/locales/de.yml b/config/locales/de.yml index 923a1599..0206f85b 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -601,8 +601,6 @@ de:
Sie finden ihre Kommentaranfrage hier: %{link_to_comment}

- Falls Sie beim Klick auf diesen Link eine Fehlermeldung erhalten, dass Sie nicht berechtigt wären diese Aktion auszuführen, öffnen Sie bitte eine beliebige Programmieraufgabe aus einem Kurs heraus und klicken den Link danach noch einmal.
-
Eine Übersicht Ihrer Kommentaranfragen gibt es hier: %{link_my_comments}
Alle Kommentaranfragen aller Benutzer finden Sie hier: %{link_all_comments}

@@ -618,8 +616,6 @@ de:
You can find your request for comments here: %{link_to_comment}

- If you receive an error that you are not authorized to perform this action when clicking the link, please log-in through any course exercise beforehand and click the link again.
-
An overview of all your comments can be accessed here: %{link_my_comments}
All comments of all participants are available here: %{link_all_comments}

@@ -641,8 +637,6 @@ de:
Sie finden die Kommentaranfrage hier: %{link_to_comment}

- Falls Sie beim Klick auf diesen Link eine Fehlermeldung erhalten, dass Sie nicht berechtigt wären diese Aktion auszuführen, öffnen Sie bitte eine beliebige Programmieraufgabe aus einem Kurs heraus und klicken den Link danach noch einmal.
-
Danke, dass Sie anderen Nutzern von CodeOcean helfen!
Diese Mail wurde automatisch von CodeOcean verschickt.
@@ -657,8 +651,6 @@ de:
You can find the request for comments here: %{link_to_comment}

- If you receive an error that you are not authorized to perform this action when clicking the link, please log-in through any course exercise beforehand and click the link again.
-
Thank you for helping other users on CodeOcean!
This mail was automatically sent by CodeOcean.
@@ -676,8 +668,6 @@ de:
Sie finden die Kommentaranfrage hier: %{link_to_comment}

- Falls Sie beim Klick auf diesen Link eine Fehlermeldung erhalten, dass Sie nicht berechtigt wären diese Aktion auszuführen, öffnen Sie bitte eine beliebige Programmieraufgabe aus einem Kurs heraus und klicken den Link danach noch einmal.
-
Wenn Sie keine weiteren Benachrichtigungen zu dieser Anfrage erhalten möchten, klicken Sie bitte hier: %{unsubscribe_link}
Diese Mail wurde automatisch von CodeOcean verschickt.
@@ -692,8 +682,6 @@ de:
You can find the request for comments here: %{link_to_comment}

- If you receive an error that you are not authorized to perform this action when clicking the link, please log-in through any course exercise beforehand and click the link again.
-
If you don't want to be notified about further comments, please click here: %{unsubscribe_link}
This mail was automatically sent by CodeOcean.
From cc3fc72cf9d70e3e3f2ed54c93040654a88bd000 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Tue, 2 Aug 2022 13:46:39 +0200 Subject: [PATCH 247/329] slight changes to application controller to be more readable --- app/controllers/application_controller.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index bb42b239..173f1e25 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -15,7 +15,11 @@ class ApplicationController < ActionController::Base rescue_from ActionController::InvalidAuthenticityToken, with: :render_csrf_error def current_user - @current_user ||= ExternalUser.find_by(id: session[:external_user_id]) || login_from_session || login_from_other_sources || nil + @current_user ||= ExternalUser.find_by(id: session[:external_user_id]) || + login_from_session || + login_from_other_sources || + login_from_authentication_token || + nil end def require_user! @@ -32,6 +36,13 @@ class ApplicationController < ActionController::Base end end + def login_from_authentication_token + token = AuthenticationToken.find_by(shared_secret: params[:token]) + return unless token + + auto_login(token.user) if token.expire_at.future? + end + def set_sentry_context return if current_user.blank? From 146eee673f7278d5660d4ff6ce568e7297628035 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Mon, 1 Aug 2022 17:51:00 +0200 Subject: [PATCH 248/329] changed send_thank_you_note and got_new_comment_for_subscription methods to use tokens properly, as well as new test scenarios for both cases --- app/mailers/user_mailer.rb | 9 ++- config/locales/en.yml | 12 ---- spec/mailers/user_mailer_spec.rb | 118 +++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 15 deletions(-) diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 76c10305..69479a17 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -20,10 +20,11 @@ class UserMailer < ApplicationMailer def got_new_comment(comment, request_for_comment, commenting_user) # TODO: check whether we can take the last known locale of the receiver? + token = AuthenticationToken.generate!(request_for_comment.user) @receiver_displayname = request_for_comment.user.displayname @commenting_user_displayname = commenting_user.displayname @comment_text = comment.text - @rfc_link = request_for_comment_url(request_for_comment) + @rfc_link = request_for_comment_url(request_for_comment, token: token.shared_secret) mail( subject: t('mailers.user_mailer.got_new_comment.subject', commenting_user_displayname: @commenting_user_displayname), to: request_for_comment.user.email @@ -31,10 +32,11 @@ class UserMailer < ApplicationMailer end def got_new_comment_for_subscription(comment, subscription, from_user) + token = AuthenticationToken.generate!(subscription.user) @receiver_displayname = subscription.user.displayname @author_displayname = from_user.displayname @comment_text = comment.text - @rfc_link = request_for_comment_url(subscription.request_for_comment) + @rfc_link = request_for_comment_url(subscription.request_for_comment, token: token.shared_secret) @unsubscribe_link = unsubscribe_subscription_url(subscription) mail( subject: t('mailers.user_mailer.got_new_comment_for_subscription.subject', @@ -43,10 +45,11 @@ class UserMailer < ApplicationMailer end def send_thank_you_note(request_for_comments, receiver) + token = AuthenticationToken.generate!(request_for_comments.user) @receiver_displayname = receiver.displayname @author = request_for_comments.user.displayname @thank_you_note = request_for_comments.thank_you_note - @rfc_link = request_for_comment_url(request_for_comments) + @rfc_link = request_for_comment_url(request_for_comments, token: token.shared_secret) mail(subject: t('mailers.user_mailer.send_thank_you_note.subject', author: @author), to: receiver.email) end diff --git a/config/locales/en.yml b/config/locales/en.yml index 521b2939..780cb87d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -601,8 +601,6 @@ en:
Sie finden ihre Kommentaranfrage hier: %{link_to_comment}

- Falls Sie beim Klick auf diesen Link eine Fehlermeldung erhalten, dass Sie nicht berechtigt wären diese Aktion auszuführen, öffnen Sie bitte eine beliebige Programmieraufgabe aus einem Kurs heraus und klicken den Link danach noch einmal.
-
Eine Übersicht Ihrer Kommentaranfragen gibt es hier: %{link_my_comments}
Alle Kommentaranfragen aller Benutzer finden Sie hier: %{link_all_comments}

@@ -618,8 +616,6 @@ en:
You can find your request for comments here: %{link_to_comment}

- If you receive an error that you are not authorized to perform this action when clicking the link, please log-in through any course exercise beforehand and click the link again.
-
An overview of all your comments can be accessed here: %{link_my_comments}
All comments of all participants are available here: %{link_all_comments}

@@ -641,8 +637,6 @@ en:
Sie finden die Kommentaranfrage hier: %{link_to_comment}

- Falls Sie beim Klick auf diesen Link eine Fehlermeldung erhalten, dass Sie nicht berechtigt wären diese Aktion auszuführen, öffnen Sie bitte eine beliebige Programmieraufgabe aus einem Kurs heraus und klicken den Link danach noch einmal.
-
Danke, dass Sie anderen Nutzern von CodeOcean helfen!
Diese Mail wurde automatisch von CodeOcean verschickt.
@@ -657,8 +651,6 @@ en:
You can find the request for comments here: %{link_to_comment}

- If you receive an error that you are not authorized to perform this action when clicking the link, please log-in through any course exercise beforehand and click the link again.
-
Thank you for helping other users on CodeOcean!
This mail was automatically sent by CodeOcean.
@@ -676,8 +668,6 @@ en:
Sie finden die Kommentaranfrage hier: %{link_to_comment}

- Falls Sie beim Klick auf diesen Link eine Fehlermeldung erhalten, dass Sie nicht berechtigt wären diese Aktion auszuführen, öffnen Sie bitte eine beliebige Programmieraufgabe aus einem Kurs heraus und klicken den Link danach noch einmal.
-
Wenn Sie keine weiteren Benachrichtigungen zu dieser Anfrage erhalten möchten, klicken Sie bitte hier: %{unsubscribe_link}
Diese Mail wurde automatisch von CodeOcean verschickt.
@@ -692,8 +682,6 @@ en:
You can find the request for comments here: %{link_to_comment}

- If you receive an error that you are not authorized to perform this action when clicking the link, please log-in through any course exercise beforehand and click the link again.
-
If you don't want to be notified about further comments, please click here: %{unsubscribe_link}
This mail was automatically sent by CodeOcean.
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index b9b14bab..762ad8f7 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -60,4 +60,122 @@ describe UserMailer do expect(mail.body).to include(reset_password_internal_user_url(user, token: user.reset_password_token)) end end + + describe '#got_new_comment' do + let(:user) { create(:learner) } + let(:token) { AuthenticationToken.find_by(user: user) } + let(:request_for_comment) { create(:rfc_with_comment, user: user) } + let(:commenting_user) { InternalUser.create(attributes_for(:teacher)) } + let(:mail) { described_class.got_new_comment(request_for_comment.comments.first, request_for_comment, commenting_user).deliver_now } + + it 'sets the correct sender' do + expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + end + + it 'sets the correct subject' do + expect(mail.subject).to eq(I18n.t('mailers.user_mailer.got_new_comment.subject', commenting_user_displayname: commenting_user.displayname)) + end + + it 'sets the correct receiver' do + expect(mail.to).to include(request_for_comment.user.email) + end + + it 'includes the correct URL' do + expect(mail.body).to include(request_for_comment_url(request_for_comment)) + end + + it 'includes the correct authentication token' do + expect(mail.body).to include(token.shared_secret) + end + + it 'sets a new authentication token' do + expect { mail }.to change(AuthenticationToken, :count).by(1) + end + + it 'sets a non expired authentication token' do + mail + expect(token.expire_at.future?).to be(true) + token.expire_at -= 8.days + expect(token.expire_at.future?).to be(false) + end + end + + describe '#got_new_comment_for_subscription' do + let(:user) { create(:learner) } + let(:token) { AuthenticationToken.find_by(user: user) } + let(:request_for_comment) { create(:rfc_with_comment, user: user) } + let(:subscription) { Subscription.create(request_for_comment: request_for_comment, user: user) } + let(:from_user) { InternalUser.create(attributes_for(:teacher)) } + let(:mail) { described_class.got_new_comment_for_subscription(request_for_comment.comments.first, subscription, from_user).deliver_now } + + it 'sets the correct sender' do + expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + end + + it 'sets the correct subject' do + expect(mail.subject).to eq(I18n.t('mailers.user_mailer.got_new_comment_for_subscription.subject', author_displayname: from_user.displayname)) + end + + it 'sets the correct receiver' do + expect(mail.to).to include(subscription.user.email) + end + + it 'includes the correct URL' do + expect(mail.body).to include(request_for_comment_url(subscription.request_for_comment)) + end + + it 'includes the correct authentication token' do + expect(mail.body).to include(token.shared_secret) + end + + it 'sets a new authentication token' do + expect { mail }.to change(AuthenticationToken, :count).by(1) + end + + it 'sets a non expired authentication token' do + mail + expect(token.expire_at.future?).to be(true) + token.expire_at -= 8.days + expect(token.expire_at.future?).to be(false) + end + end + + describe '#send_thank_you_note' do + let(:user) { create(:learner) } + let(:token) { AuthenticationToken.find_by(user: user) } + let(:request_for_comments) { create(:rfc_with_comment, user: user) } + let(:receiver) { InternalUser.create(attributes_for(:teacher)) } + let(:mail) { described_class.send_thank_you_note(request_for_comments, receiver).deliver_now } + + it 'sets the correct sender' do + expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + end + + it 'sets the correct subject' do + expect(mail.subject).to eq(I18n.t('mailers.user_mailer.send_thank_you_note.subject', author: request_for_comments.user.displayname)) + end + + it 'sets the correct receiver' do + expect(mail.to).to include(receiver.email) + end + + it 'includes the correct URL' do + expect(mail.body).to include(request_for_comment_url(request_for_comments)) + end + + it 'includes the correct authentication token' do + expect(mail.body).to include(token.shared_secret) + end + + it 'sets a new authentication token' do + expect { mail }.to change(AuthenticationToken, :count).by(1) + end + + it 'sets a non expired authentication token' do + mail + expect(token.expire_at.future?).to be(true) + token.expire_at -= 8.days + expect(token.expire_at.future?).to be(false) + end + end end From 1a987a65d4610ad6f1a75abf109106a273ff83fc Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Tue, 2 Aug 2022 17:35:24 +0200 Subject: [PATCH 249/329] added new AuthenticationToken factory, as well as new tests to check if access is denied when the token is expired, smaller optimalization changes to the user_mailer_spec and authentication_spec --- spec/factories/authentication_token.rb | 13 ++++++ spec/features/authentication_spec.rb | 46 +++++++++++++++++++++ spec/mailers/user_mailer_spec.rb | 55 ++++++++++---------------- 3 files changed, 79 insertions(+), 35 deletions(-) create mode 100644 spec/factories/authentication_token.rb diff --git a/spec/factories/authentication_token.rb b/spec/factories/authentication_token.rb new file mode 100644 index 00000000..f3102284 --- /dev/null +++ b/spec/factories/authentication_token.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory :authentication_token, class: 'AuthenticationToken' do + created_by_external_user + shared_secret { SecureRandom.hex(32) } + expire_at { 7.days.from_now } + + trait :invalid do + expire_at { 8.days.ago } + end + end +end diff --git a/spec/features/authentication_spec.rb b/spec/features/authentication_spec.rb index a5cf7a59..8e3fa21c 100644 --- a/spec/features/authentication_spec.rb +++ b/spec/features/authentication_spec.rb @@ -32,6 +32,52 @@ describe 'Authentication' do expect(page).to have_content(I18n.t('sessions.create.failure')) end end + + context 'with no authentication token' do + let(:request_for_comment) { create(:rfc_with_comment, user: user) } + + it 'denies access to the request for comment' do + mail.deliver_now + visit(rfc_link) + expect(page).not_to have_content(request_for_comment.exercise.title) + expect(response).to redirect_to(root_path) + expect(page).to have_content(I18n.t('application.not_authorized')) + end + end + + context 'with an authentication token' do + let(:user) { create(:learner) } + let(:request_for_comment) { create(:rfc_with_comment, user: user) } + let(:commenting_user) { InternalUser.create(attributes_for(:teacher)) } + let(:mail) { UserMailer.got_new_comment(request_for_comment.comments.first, request_for_comment, commenting_user) } + let(:rfc_link) { request_for_comment_url(request_for_comment, token: token.shared_secret) } + + before { allow(AuthenticationToken).to receive(:generate!).with(user).and_return(token).once } + + context 'when the token is valid' do + let(:token) { create(:authentication_token, user: user) } + + it 'allows access to the request for comment' do + mail.deliver_now + visit(rfc_link) + expect(current_url).to be(rfc_link) + expect(response).to have_http_status :ok + expect(page).to have_content(request_for_comment.exercise.title) + end + end + + context 'with an expired authentication token' do + let(:token) { create(:authentication_token, :invalid, user: user) } + + it 'denies access to the request for comment' do + mail.deliver_now + visit(rfc_link) + expect(page).not_to have_content(request_for_comment.exercise.title) + expect(response).to redirect_to(root_path) + expect(page).to have_content(I18n.t('application.not_authorized')) + end + end + end end context 'when signed in' do diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 762ad8f7..1bd68eb3 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -14,7 +14,7 @@ describe UserMailer do end it 'sets the correct sender' do - expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + expect(mail.from).to include('codeocean@hpi.de') end it 'sets the correct subject' do @@ -45,7 +45,7 @@ describe UserMailer do end it 'sets the correct sender' do - expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + expect(mail.from).to include('codeocean@hpi.de') end it 'sets the correct subject' do @@ -69,7 +69,7 @@ describe UserMailer do let(:mail) { described_class.got_new_comment(request_for_comment.comments.first, request_for_comment, commenting_user).deliver_now } it 'sets the correct sender' do - expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + expect(mail.from).to include('codeocean@hpi.de') end it 'sets the correct subject' do @@ -81,22 +81,17 @@ describe UserMailer do end it 'includes the correct URL' do - expect(mail.body).to include(request_for_comment_url(request_for_comment)) + expect(mail.body).to include(request_for_comment_url(request_for_comment, token: token.shared_secret)) end - it 'includes the correct authentication token' do - expect(mail.body).to include(token.shared_secret) - end - - it 'sets a new authentication token' do + it 'creates a new authentication token' do expect { mail }.to change(AuthenticationToken, :count).by(1) end - it 'sets a non expired authentication token' do + it 'sets a non-expired authentication token' do mail - expect(token.expire_at.future?).to be(true) - token.expire_at -= 8.days - expect(token.expire_at.future?).to be(false) + # A five minute tolerance is allowed to account for the time difference between `now` and the creation timestamp of the token. + expect(token.expire_at - Time.zone.now).to be_within(5.minutes).of(7.days) end end @@ -109,7 +104,7 @@ describe UserMailer do let(:mail) { described_class.got_new_comment_for_subscription(request_for_comment.comments.first, subscription, from_user).deliver_now } it 'sets the correct sender' do - expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + expect(mail.from).to include('codeocean@hpi.de') end it 'sets the correct subject' do @@ -121,22 +116,17 @@ describe UserMailer do end it 'includes the correct URL' do - expect(mail.body).to include(request_for_comment_url(subscription.request_for_comment)) + expect(mail.body).to include(request_for_comment_url(subscription.request_for_comment, token: token.shared_secret)) end - it 'includes the correct authentication token' do - expect(mail.body).to include(token.shared_secret) - end - - it 'sets a new authentication token' do + it 'creates a new authentication token' do expect { mail }.to change(AuthenticationToken, :count).by(1) end - it 'sets a non expired authentication token' do + it 'sets a non-expired authentication token' do mail - expect(token.expire_at.future?).to be(true) - token.expire_at -= 8.days - expect(token.expire_at.future?).to be(false) + # A five minute tolerance is allowed to account for the time difference between `now` and the creation timestamp of the token. + expect(token.expire_at - Time.zone.now).to be_within(5.minutes).of(7.days) end end @@ -148,7 +138,7 @@ describe UserMailer do let(:mail) { described_class.send_thank_you_note(request_for_comments, receiver).deliver_now } it 'sets the correct sender' do - expect(mail.from).to include(CodeOcean::Application.config.action_mailer[:default_options][:from]) + expect(mail.from).to include('codeocean@hpi.de') end it 'sets the correct subject' do @@ -160,22 +150,17 @@ describe UserMailer do end it 'includes the correct URL' do - expect(mail.body).to include(request_for_comment_url(request_for_comments)) + expect(mail.body).to include(request_for_comment_url(request_for_comments, token: token.shared_secret)) end - it 'includes the correct authentication token' do - expect(mail.body).to include(token.shared_secret) - end - - it 'sets a new authentication token' do + it 'creates a new authentication token' do expect { mail }.to change(AuthenticationToken, :count).by(1) end - it 'sets a non expired authentication token' do + it 'sets a non-expired authentication token' do mail - expect(token.expire_at.future?).to be(true) - token.expire_at -= 8.days - expect(token.expire_at.future?).to be(false) + # A five minute tolerance is allowed to account for the time difference between `now` and the creation timestamp of the token. + expect(token.expire_at - Time.zone.now).to be_within(5.minutes).of(7.days) end end end From 6e213f754f68e43cca42637a365ede0fde7f34a7 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Tue, 2 Aug 2022 17:35:56 +0200 Subject: [PATCH 250/329] minor styling change to authenticationtoken model, changed the expire_at column of AuthenticationToken form date to datetime --- app/models/authentication_token.rb | 1 + .../20220721131946_create_authentication_tokens.rb | 2 +- db/schema.rb | 2 +- spec/features/authentication_spec.rb | 13 +++++++------ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/models/authentication_token.rb b/app/models/authentication_token.rb index b1bda282..9de51c21 100644 --- a/app/models/authentication_token.rb +++ b/app/models/authentication_token.rb @@ -4,6 +4,7 @@ require 'securerandom' class AuthenticationToken < ApplicationRecord include Creation + def self.generate!(user) create!( shared_secret: SecureRandom.hex(32), diff --git a/db/migrate/20220721131946_create_authentication_tokens.rb b/db/migrate/20220721131946_create_authentication_tokens.rb index 6cf1208d..a70791f5 100644 --- a/db/migrate/20220721131946_create_authentication_tokens.rb +++ b/db/migrate/20220721131946_create_authentication_tokens.rb @@ -5,7 +5,7 @@ class CreateAuthenticationTokens < ActiveRecord::Migration[6.1] create_table :authentication_tokens, id: :uuid do |t| t.string :shared_secret, null: false, index: {unique: true} t.references :user, polymorphic: true, null: false - t.date :expire_at, null: false + t.datetime :expire_at, null: false t.timestamps end end diff --git a/db/schema.rb b/db/schema.rb index 4a9ca522..f0cba53b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -34,7 +34,7 @@ ActiveRecord::Schema.define(version: 2022_07_21_131946) do t.string "shared_secret", null: false t.string "user_type", null: false t.bigint "user_id", null: false - t.date "expire_at", null: false + t.datetime "expire_at", null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["shared_secret"], name: "index_authentication_tokens_on_shared_secret", unique: true diff --git a/spec/features/authentication_spec.rb b/spec/features/authentication_spec.rb index 8e3fa21c..998d83fb 100644 --- a/spec/features/authentication_spec.rb +++ b/spec/features/authentication_spec.rb @@ -35,12 +35,13 @@ describe 'Authentication' do context 'with no authentication token' do let(:request_for_comment) { create(:rfc_with_comment, user: user) } + let(:rfc_path) { request_for_comment_url(request_for_comment) } it 'denies access to the request for comment' do - mail.deliver_now - visit(rfc_link) + visit(rfc_path) + expect(page).not_to have_current_path(rfc_path) expect(page).not_to have_content(request_for_comment.exercise.title) - expect(response).to redirect_to(root_path) + expect(page).to have_current_path(root_path) expect(page).to have_content(I18n.t('application.not_authorized')) end end @@ -60,8 +61,7 @@ describe 'Authentication' do it 'allows access to the request for comment' do mail.deliver_now visit(rfc_link) - expect(current_url).to be(rfc_link) - expect(response).to have_http_status :ok + expect(page).to have_current_path(rfc_link) expect(page).to have_content(request_for_comment.exercise.title) end end @@ -72,8 +72,9 @@ describe 'Authentication' do it 'denies access to the request for comment' do mail.deliver_now visit(rfc_link) + expect(page).not_to have_current_path(rfc_link) expect(page).not_to have_content(request_for_comment.exercise.title) - expect(response).to redirect_to(root_path) + expect(page).to have_current_path(root_path) expect(page).to have_content(I18n.t('application.not_authorized')) end end From 3937a4c26e0201fce4a0a9f4dff8f7a4e1c9f099 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Thu, 4 Aug 2022 11:48:42 +0200 Subject: [PATCH 251/329] slight spelling correction to the user_mailer method send_thank_you_note --- app/mailers/user_mailer.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 69479a17..ffa928d1 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -44,12 +44,12 @@ class UserMailer < ApplicationMailer ) end - def send_thank_you_note(request_for_comments, receiver) - token = AuthenticationToken.generate!(request_for_comments.user) + def send_thank_you_note(request_for_comment, receiver) + token = AuthenticationToken.generate!(request_for_comment.user) @receiver_displayname = receiver.displayname - @author = request_for_comments.user.displayname - @thank_you_note = request_for_comments.thank_you_note - @rfc_link = request_for_comment_url(request_for_comments, token: token.shared_secret) + @author = request_for_comment.user.displayname + @thank_you_note = request_for_comment.thank_you_note + @rfc_link = request_for_comment_url(request_for_comment, token: token.shared_secret) mail(subject: t('mailers.user_mailer.send_thank_you_note.subject', author: @author), to: receiver.email) end From e788a98688623d743605456651ee9d04201ca2d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 03:00:46 +0000 Subject: [PATCH 252/329] Bump rubocop from 1.32.0 to 1.33.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.32.0 to 1.33.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.32.0...v1.33.0) --- updated-dependencies: - dependency-name: rubocop 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 e80cfd63..a020fa5f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -410,7 +410,7 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.32.0) + rubocop (1.33.0) json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.0.0) From 63c9adb42bdd442897b28211ded8aecadb79d17d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 03:01:24 +0000 Subject: [PATCH 253/329] Bump webmock from 3.16.0 to 3.17.0 Bumps [webmock](https://github.com/bblimke/webmock) from 3.16.0 to 3.17.0. - [Release notes](https://github.com/bblimke/webmock/releases) - [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md) - [Commits](https://github.com/bblimke/webmock/compare/v3.16.0...v3.17.0) --- updated-dependencies: - dependency-name: webmock 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 a020fa5f..c87c5aa4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -516,7 +516,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.16.0) + webmock (3.17.0) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) From 5efa6d4bfd038884189ff72b735154a911ea8b96 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 8 Aug 2022 19:54:07 +0200 Subject: [PATCH 254/329] Update bundle --- Gemfile | 4 ++-- Gemfile.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 726bc6d4..b44e7fec 100644 --- a/Gemfile +++ b/Gemfile @@ -9,12 +9,12 @@ gem 'charlock_holmes', require: 'charlock_holmes/string' gem 'docker-api', require: 'docker' gem 'eventmachine' gem 'factory_bot_rails' -gem 'faraday' +gem 'faraday', '~> 2.4.0' gem 'faraday-net_http_persistent' gem 'faye-websocket' gem 'forgery' gem 'highline' -gem 'i18n-js' +gem 'i18n-js', '< 4.0.0' gem 'ims-lti', '< 2.0.0' gem 'jbuilder' gem 'json_schemer' diff --git a/Gemfile.lock b/Gemfile.lock index c87c5aa4..8f34248b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -144,9 +144,9 @@ GEM unf (>= 0.0.5, < 1.0.0) ecma-re-validator (0.4.0) regexp_parser (~> 2.2) - erubi (1.10.0) + erubi (1.11.0) eventmachine (1.2.7) - excon (0.92.3) + excon (0.92.4) factory_bot (6.2.1) activesupport (>= 5.0.0) factory_bot_rails (6.2.0) @@ -420,7 +420,7 @@ GEM rubocop-ast (>= 1.19.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.19.1) + rubocop-ast (1.21.0) parser (>= 3.1.1.0) rubocop-performance (1.14.3) rubocop (>= 1.7.0, < 2.0) @@ -490,13 +490,13 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - ssrf_filter (1.0.7) - strscan (3.0.3) + ssrf_filter (1.0.8) + strscan (3.0.4) telegraf (2.1.0) influxdb temple (0.8.2) thor (1.2.1) - tilt (2.0.10) + tilt (2.0.11) timeout (0.3.0) tubesock (0.2.9) rack (>= 1.5.0) @@ -555,13 +555,13 @@ DEPENDENCIES docker-api eventmachine factory_bot_rails - faraday + faraday (~> 2.4.0) faraday-net_http_persistent faye-websocket forgery headless highline - i18n-js + i18n-js (< 4.0.0) ims-lti (< 2.0.0) jbuilder js-routes From 8404c43a30d307af4dbdc7cf87eb1ed240eb0b62 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 8 Aug 2022 18:37:16 +0200 Subject: [PATCH 255/329] Add rspec-github gem for enhanced GitHub formatting --- .github/workflows/ci.yml | 2 +- Gemfile | 1 + Gemfile.lock | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f79fc1b1..637ba572 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,7 +75,7 @@ jobs: RAILS_ENV: test CC_TEST_REPORTER_ID: true NODE_OPTIONS: --openssl-legacy-provider - run: bundle exec rspec --color --format progress --require spec_helper --require rails_helper + run: bundle exec rspec --color --format RSpec::Github::Formatter --format progress --require spec_helper --require rails_helper - name: Send coverage to CodeClimate uses: paambaati/codeclimate-action@v3.0.0 diff --git a/Gemfile b/Gemfile index b44e7fec..8d9a30a0 100644 --- a/Gemfile +++ b/Gemfile @@ -84,6 +84,7 @@ group :test do gem 'rails-controller-testing' gem 'rspec-autotest' gem 'rspec-collection_matchers' + gem 'rspec-github', require: false gem 'rspec-rails' gem 'selenium-webdriver' gem 'shoulda-matchers' diff --git a/Gemfile.lock b/Gemfile.lock index 8f34248b..e6c6541a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -398,6 +398,8 @@ GEM rspec-expectations (3.11.0) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) + rspec-github (2.3.1) + rspec-core (~> 3.0) rspec-mocks (3.11.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.11.0) @@ -595,6 +597,7 @@ DEPENDENCIES rest-client rspec-autotest rspec-collection_matchers + rspec-github rspec-rails rubocop rubocop-performance From f38238aa22451b31e8ae010eef75241243b99387 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 8 Aug 2022 18:53:06 +0200 Subject: [PATCH 256/329] Add GitHub action checks for Rubocop --- .github/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 637ba572..d8ee32a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,4 +98,12 @@ jobs: bundler-cache: true - name: Run rubocop - run: bundle exec rubocop --parallel + uses: reviewdog/action-rubocop@v2 + with: + filter_mode: nofilter + rubocop_version: gemfile + rubocop_extensions: rubocop-rails:gemfile rubocop-rspec:gemfile rubocop-performance:gemfile + rubocop_flags: --parallel + reporter: github-check + skip_install: true + use_bundler: true From ad5acd7f1b2202e3dd9594ebfc7b08da15e631ad Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Mon, 8 Aug 2022 20:23:30 +0200 Subject: [PATCH 257/329] Update Yarn bundle --- yarn.lock | 690 +++++++++++++++++++++++++++--------------------------- 1 file changed, 347 insertions(+), 343 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7be404c0..65fc44dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,38 +17,38 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.6": +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": version "7.18.8" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== "@babel/core@^7.15.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d" - integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" + integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helpers" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/generator" "^7.18.10" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.10" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.10" + "@babel/types" "^7.18.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.6", "@babel/generator@^7.18.7": - version "7.18.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.7.tgz#2aa78da3c05aadfc82dbac16c99552fc802284bd" - integrity sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A== +"@babel/generator@^7.18.10": + version "7.18.12" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4" + integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== dependencies: - "@babel/types" "^7.18.7" + "@babel/types" "^7.18.10" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -60,34 +60,34 @@ "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz#18d35bfb9f83b1293c22c55b3d576c1315b6ed96" - integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" + integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== dependencies: - "@babel/compat-data" "^7.18.6" + "@babel/compat-data" "^7.18.8" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" + integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.18.6": @@ -98,24 +98,22 @@ "@babel/helper-annotate-as-pure" "^7.18.6" regexpu-core "^5.1.0" -"@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== +"@babel/helper-define-polyfill-provider@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" - integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" @@ -124,13 +122,13 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" - integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== +"@babel/helper-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== dependencies: "@babel/template" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -139,33 +137,33 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" - integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": +"@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz#4f8408afead0188cfa48672f9d0e5787b61778c8" - integrity sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" + integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" "@babel/helper-simple-access" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.18.6" "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.8" - "@babel/types" "^7.18.8" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -174,31 +172,31 @@ dependencies: "@babel/types" "^7.18.6" -"@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.18.6", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz#9448974dd4fb1d80fefe72e8a0af37809cd30d6d" - integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg== +"@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.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== -"@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== +"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-wrap-function" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-wrap-function" "^7.18.9" + "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" - integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/helper-simple-access@^7.18.6": version "7.18.6" @@ -207,12 +205,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-skip-transparent-expression-wrappers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz#7dff00a5320ca4cf63270e5a0eca4b268b7380d9" - integrity sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw== +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.18.9" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -221,6 +219,11 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + "@babel/helper-validator-identifier@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" @@ -231,24 +234,24 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== +"@babel/helper-wrap-function@^7.18.9": + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" + integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== dependencies: - "@babel/helper-function-name" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/helper-function-name" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.18.11" + "@babel/types" "^7.18.10" -"@babel/helpers@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.6.tgz#4c966140eaa1fcaa3d5a8c09d7db61077d4debfd" - integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ== +"@babel/helpers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" + integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== dependencies: "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" "@babel/highlight@^7.18.6": version "7.18.6" @@ -259,10 +262,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.18.6", "@babel/parser@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf" - integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== +"@babel/parser@^7.18.10", "@babel/parser@^7.18.11": + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" + integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -271,23 +274,23 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz#b4e4dbc2cd1acd0133479918f7c6412961c9adb8" - integrity sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" -"@babel/plugin-proposal-async-generator-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz#aedac81e6fc12bb643374656dd5f2605bf743d17" - integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== +"@babel/plugin-proposal-async-generator-functions@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== dependencies: - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.18.6": @@ -315,12 +318,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz#1016f0aa5ab383bbf8b3a85a2dcaedf6c8ee7491" - integrity sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw== +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.18.6": @@ -331,12 +334,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz#3b9cac6f1ffc2aa459d111df80c12020dfc6b665" - integrity sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": @@ -355,16 +358,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz#ec93bba06bfb3e15ebd7da73e953d84b094d5daf" - integrity sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw== +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: - "@babel/compat-data" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" @@ -374,13 +377,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz#46d4f2ffc20e87fad1d98bc4fa5d466366f6aa0b" - integrity sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA== +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.18.6": @@ -537,40 +540,40 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz#b5f78318914615397d86a731ef2cc668796a726c" - integrity sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ== +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-classes@^7.18.6": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz#7e85777e622e979c85c701a095280360b818ce49" - integrity sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg== +"@babel/plugin-transform-classes@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" + integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz#5d15eb90e22e69604f3348344c91165c5395d032" - integrity sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A== +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz#a98b0e42c7ffbf5eefcbcf33280430f230895c6f" - integrity sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ== +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" + integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" @@ -580,12 +583,12 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-duplicate-keys@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz#e6c94e8cd3c9dd8a88144f7b78ae22975a7ff473" - integrity sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg== +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" @@ -595,28 +598,28 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-for-of@^7.18.6": +"@babel/plugin-transform-for-of@^7.18.8": version "7.18.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-function-name@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz#6a7e4ae2893d336fd1b8f64c9f92276391d0f1b4" - integrity sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA== +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz#9d6af353b5209df72960baf4492722d56f39a205" - integrity sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q== +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" @@ -644,14 +647,14 @@ "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz#026511b7657d63bf5d4cf2fd4aeb963139914a54" - integrity sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g== +"@babel/plugin-transform-modules-systemjs@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" + integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-validator-identifier" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" @@ -686,7 +689,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.18.6": +"@babel/plugin-transform-parameters@^7.18.8": version "7.18.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== @@ -716,15 +719,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-runtime@^7.15.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz#77b14416015ea93367ca06979710f5000ff34ccb" - integrity sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz#37d14d1fa810a368fd635d4d1476c0154144a96f" + integrity sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ== dependencies: "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-polyfill-corejs2 "^0.3.1" - babel-plugin-polyfill-corejs3 "^0.5.2" - babel-plugin-polyfill-regenerator "^0.3.1" + "@babel/helper-plugin-utils" "^7.18.9" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.18.6": @@ -734,13 +737,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz#82b080241965f1689f0a60ecc6f1f6575dbdb9d6" - integrity sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw== +"@babel/plugin-transform-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" + integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" @@ -749,26 +752,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-template-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz#b763f4dc9d11a7cce58cf9a490d82e80547db9c2" - integrity sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw== +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-typeof-symbol@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz#486bb39d5a18047358e0d04dc0d2f322f0b92e92" - integrity sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g== +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-unicode-escapes@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz#0d01fb7fb2243ae1c033f65f6e3b4be78db75f27" - integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== +"@babel/plugin-transform-unicode-escapes@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" @@ -779,28 +782,28 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.15.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.6.tgz#953422e98a5f66bc56cd0b9074eaea127ec86ace" - integrity sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw== + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: - "@babel/compat-data" "^7.18.6" - "@babel/helper-compilation-targets" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.6" - "@babel/plugin-proposal-async-generator-functions" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.18.10" "@babel/plugin-proposal-class-properties" "^7.18.6" "@babel/plugin-proposal-class-static-block" "^7.18.6" "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-private-methods" "^7.18.6" "@babel/plugin-proposal-private-property-in-object" "^7.18.6" "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" @@ -822,40 +825,40 @@ "@babel/plugin-transform-arrow-functions" "^7.18.6" "@babel/plugin-transform-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.6" - "@babel/plugin-transform-classes" "^7.18.6" - "@babel/plugin-transform-computed-properties" "^7.18.6" - "@babel/plugin-transform-destructuring" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.9" "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.6" - "@babel/plugin-transform-function-name" "^7.18.6" - "@babel/plugin-transform-literals" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" "@babel/plugin-transform-member-expression-literals" "^7.18.6" "@babel/plugin-transform-modules-amd" "^7.18.6" "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.9" "@babel/plugin-transform-modules-umd" "^7.18.6" "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" "@babel/plugin-transform-new-target" "^7.18.6" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-transform-property-literals" "^7.18.6" "@babel/plugin-transform-regenerator" "^7.18.6" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.9" "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.6" - "@babel/plugin-transform-typeof-symbol" "^7.18.6" - "@babel/plugin-transform-unicode-escapes" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.6" - babel-plugin-polyfill-corejs2 "^0.3.1" - babel-plugin-polyfill-corejs3 "^0.5.2" - babel-plugin-polyfill-regenerator "^0.3.1" + "@babel/types" "^7.18.10" + babel-plugin-polyfill-corejs2 "^0.3.2" + babel-plugin-polyfill-corejs3 "^0.5.3" + babel-plugin-polyfill-regenerator "^0.4.0" core-js-compat "^3.22.1" semver "^6.3.0" @@ -871,42 +874,43 @@ esutils "^2.0.2" "@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580" - integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" - integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== +"@babel/template@^7.18.10", "@babel/template@^7.18.6": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.6" - "@babel/types" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.8.tgz#f095e62ab46abf1da35e5a2011f43aee72d8d5b0" - integrity sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg== +"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9": + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f" + integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.7" - "@babel/helper-environment-visitor" "^7.18.6" - "@babel/helper-function-name" "^7.18.6" + "@babel/generator" "^7.18.10" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.8" - "@babel/types" "^7.18.8" + "@babel/parser" "^7.18.11" + "@babel/types" "^7.18.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.18.7", "@babel/types@^7.18.8", "@babel/types@^7.4.4": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.8.tgz#c5af199951bf41ba4a6a9a6d0d8ad722b30cd42f" - integrity sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw== +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" + integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== dependencies: + "@babel/helper-string-parser" "^7.18.10" "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" @@ -1104,9 +1108,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "18.0.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.4.tgz#48aedbf35efb3af1248e4cd4d792c730290cd5d6" - integrity sha512-M0+G6V0Y4YV8cqzHssZpaNCqvYwlCiulmm0PwpNLF55r/+cT8Ol42CHRU1SEaYFH2rTwiiE1aYg/2g2rrtGdPA== + version "18.6.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.5.tgz#06caea822caf9e59d5034b695186ee74154d2802" + integrity sha512-Xjt5ZGUa5WusGZJ4WJPbOT8QOqp6nDynVFRKcUt32bOgvXEoc6o085WNkYTMO7ifAj2isEfQQ2cseE+wT6jsRw== "@types/parse-json@^4.0.0": version "4.0.0" @@ -1287,9 +1291,9 @@ acorn@^6.4.1: integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^8.5.0: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== aggregate-error@^3.0.0: version "3.1.0" @@ -1465,7 +1469,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^2.6.2: +async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -1516,29 +1520,29 @@ babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-polyfill-corejs2@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz#440f1b70ccfaabc6b676d196239b138f8a2cfba5" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +babel-plugin-polyfill-corejs2@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== +babel-plugin-polyfill-corejs3@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" core-js-compat "^3.21.0" -babel-plugin-polyfill-regenerator@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz#2c0678ea47c75c8cc2fbb1852278d8fb68233990" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +babel-plugin-polyfill-regenerator@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.1" + "@babel/helper-define-polyfill-provider" "^0.3.2" balanced-match@^1.0.0: version "1.0.2" @@ -1646,9 +1650,9 @@ bootstrap@^4.6.2: integrity sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ== bootswatch@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/bootswatch/-/bootswatch-4.6.1.tgz#e58101a891998487d396c2a97d1bc5278d168ac9" - integrity sha512-5vRhlIIvgZ2rH3QLHcVVa+Z+jNpn1/zEvGlJYkp4/g1LmsGY42S6IOpYyBu40RGjqqiYIjoeX/uWDdAAIYVG7A== + version "4.6.2" + resolved "https://registry.yarnpkg.com/bootswatch/-/bootswatch-4.6.2.tgz#64720ddabec4fa154e7b760aaf7066d340174ea9" + integrity sha512-pHOS3d2yM/x9Y7/zwVzfGhGIIBdIa/rPwipghh756PaSNJS3ott/29d9uehakgze3pDvbH4FoQVjbho8wsLm6A== brace-expansion@^1.1.7: version "1.1.11" @@ -1747,15 +1751,15 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.1, browserslist@^4.6.4: - version "4.21.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.2.tgz#59a400757465535954946a400b841ed37e2b4ecf" - integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.3, browserslist@^4.6.4: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: - caniuse-lite "^1.0.30001366" - electron-to-chromium "^1.4.188" + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" node-releases "^2.0.6" - update-browserslist-db "^1.0.4" + update-browserslist-db "^1.0.5" buffer-from@^1.0.0: version "1.1.2" @@ -1903,10 +1907,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.30001366: - version "1.0.30001366" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001366.tgz#c73352c83830a9eaf2dea0ff71fb4b9a4bbaa89c" - integrity sha512-yy7XLWCubDobokgzudpkKux8e0UOOnLHE6mlNJBzT3lZJz6s5atSEzjoL+fsCPkI0G8MP5uVdDx1ur/fXEWkZA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001370: + version "1.0.30001374" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz#3dab138e3f5485ba2e74bd13eca7fe1037ce6f57" + integrity sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" @@ -2195,17 +2199,17 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.4.tgz#56ad4a352884317a15f6b04548ff7139d23b917f" - integrity sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q== + version "3.24.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.24.1.tgz#d1af84a17e18dfdd401ee39da9996f9a7ba887de" + integrity sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw== dependencies: - browserslist "^4.21.1" + browserslist "^4.21.3" semver "7.0.0" core-js@^3.16.2: - version "3.23.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.4.tgz#92d640faa7f48b90bbd5da239986602cfc402aa6" - integrity sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ== + version "3.24.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" + integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== core-util-is@~1.0.0: version "1.0.3" @@ -2746,7 +2750,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.7: +debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -2955,10 +2959,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.188: - version "1.4.190" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.190.tgz#c356196bd469cec230fe78e666b4d8628f12eb8a" - integrity sha512-dDW9D5xT+ODGh9rlK2sQeJR0xgV1nrNn3/K4IV8k74QbmKN61dm5GKMSwerdpTpazrrkK6wwcgjGBoQ/Nx6L5A== +electron-to-chromium@^1.4.202: + version "1.4.211" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz#afaa8b58313807501312d598d99b953568d60f91" + integrity sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A== elliptic@^6.5.3: version "6.5.4" @@ -4050,9 +4054,9 @@ is-color-stop@^1.0.0: rgba-regex "^1.0.0" is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -4724,7 +4728,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: +mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -4948,13 +4952,13 @@ object-visit@^1.0.0: isobject "^3.0.0" object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.3.tgz#d36b7700ddf0019abb6b1df1bb13f6445f79051f" + integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.getownpropertydescriptors@^2.1.0: @@ -5284,13 +5288,13 @@ popper.js@^1.16.1: integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + version "1.0.29" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.29.tgz#d06ff886f4ff91274ed3e25c7e6b0c68d2a0735a" + integrity sha512-Z5+DarHWCKlufshB9Z1pN95oLtANoY5Wn9X3JGELGyQ6VhEcBfT2t+1fGUBq7MwUant6g/mqowH+4HifByPbiQ== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" posix-character-classes@^0.1.0: version "0.1.1" @@ -6374,9 +6378,9 @@ sass-loader@10.1.1: semver "^7.3.2" sass@^1.38.0: - version "1.53.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.53.0.tgz#eab73a7baac045cc57ddc1d1ff501ad2659952eb" - integrity sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ== + version "1.54.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.3.tgz#37baa2652f7f1fdadb73240ee9a2b9b81fabb5c4" + integrity sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7180,10 +7184,10 @@ upath@^1.1.1: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== +update-browserslist-db@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" + integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== dependencies: escalade "^3.1.1" picocolors "^1.0.0" From 727f85841dcf2e699831fe3677bd858a701cecca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 18:23:19 +0000 Subject: [PATCH 258/329] Bump i18n-js from 3.9.2 to 4.0.0 Bumps [i18n-js](https://github.com/fnando/i18n-js) from 3.9.2 to 4.0.0. - [Release notes](https://github.com/fnando/i18n-js/releases) - [Changelog](https://github.com/fnando/i18n-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/fnando/i18n-js/compare/v3.9.2...v4.0.0) --- updated-dependencies: - dependency-name: i18n-js dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 +++++--- app/assets/javascripts/application.js | 2 -- app/javascript/packs/application.js | 17 +++++++++++++++++ config/i18n.yml | 8 ++++++++ config/initializers/i18n.rb | 7 +++++++ lib/tasks/before_assets_tasks.rake | 17 +++++++++++++++++ package.json | 1 + yarn.lock | 15 ++++++++++++++- 9 files changed, 70 insertions(+), 7 deletions(-) create mode 100644 config/i18n.yml create mode 100644 config/initializers/i18n.rb create mode 100644 lib/tasks/before_assets_tasks.rake diff --git a/Gemfile b/Gemfile index 8d9a30a0..42019421 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,7 @@ gem 'faraday-net_http_persistent' gem 'faye-websocket' gem 'forgery' gem 'highline' -gem 'i18n-js', '< 4.0.0' +gem 'i18n-js' gem 'ims-lti', '< 2.0.0' gem 'jbuilder' gem 'json_schemer' diff --git a/Gemfile.lock b/Gemfile.lock index e6c6541a..779b26a0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -164,6 +164,7 @@ GEM websocket-driver (>= 0.5.1) ffi (1.15.5) forgery (0.8.1) + glob (0.3.0) globalid (1.0.0) activesupport (>= 5.0) haml (5.2.2) @@ -178,8 +179,9 @@ GEM domain_name (~> 0.5) i18n (1.12.0) concurrent-ruby (~> 1.0) - i18n-js (3.9.2) - i18n (>= 0.6.6) + i18n-js (4.0.0) + glob + i18n image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) @@ -563,7 +565,7 @@ DEPENDENCIES forgery headless highline - i18n-js (< 4.0.0) + i18n-js ims-lti (< 2.0.0) jbuilder js-routes diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 16c88a1d..b9cb9924 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -14,8 +14,6 @@ //= require pagedown_bootstrap //= require rails-timeago //= require locales/jquery.timeago.de.js -//= require i18n -//= require i18n/translations // // lib/assets //= require flash diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index cf59ed81..d479943b 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -40,6 +40,23 @@ import 'jquery-ui/themes/base/resizable.css' import 'jquery-ui/themes/base/selectable.css' import 'jquery-ui/themes/base/sortable.css' + +// I18n locales +import { I18n } from "i18n-js"; +import locales from "../../../tmp/locales.json"; + +// Fetch user locale from html#lang. +// This value is being set on `app/views/layouts/application.html.erb` and +// is inferred from `ACCEPT-LANGUAGE` header. +const userLocale = document.documentElement.lang; + +export const i18n = new I18n(); +i18n.store(locales); +i18n.defaultLocale = "en"; +i18n.enableFallback = true; +i18n.locale = userLocale; +window.I18n = i18n; + // Routes import * as Routes from 'routes.js.erb'; window.Routes = Routes; diff --git a/config/i18n.yml b/config/i18n.yml new file mode 100644 index 00000000..16362f35 --- /dev/null +++ b/config/i18n.yml @@ -0,0 +1,8 @@ +--- +translations: + - file: tmp/locales.json + patterns: + - "*" + - "!*.activerecord" + - "!*.errors" + - "!*.number.nth" diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb new file mode 100644 index 00000000..7a2e355e --- /dev/null +++ b/config/initializers/i18n.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +Rails.application.config.after_initialize do + require 'i18n-js/listen' + # This will only run in development. + I18nJS.listen +end diff --git a/lib/tasks/before_assets_tasks.rake b/lib/tasks/before_assets_tasks.rake new file mode 100644 index 00000000..ac7359e6 --- /dev/null +++ b/lib/tasks/before_assets_tasks.rake @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +task before_assets_precompile: :environment do + system('bundle exec i18n export') +end + +# every time you execute 'rake assets:precompile' +# run 'before_assets_precompile' first +Rake::Task['assets:precompile'].enhance ['before_assets_precompile'] + +task before_assets_clobber: :environment do + system('rm -rf ./tmp/locales.json') +end + +# every time you execute 'rake assets:precompile' +# run 'before_assets_precompile' first +Rake::Task['assets:clobber'].enhance ['before_assets_clobber'] diff --git a/package.json b/package.json index ec629730..ed4e071a 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "d3": "^7.6.1", "d3-tip": "^0.9.1", "highlight.js": "^11.5.1", + "i18n-js": "^4.0.2", "jquery": "^3.6.0", "jquery-ui": "^1.13.1", "jquery-ujs": "^1.2.3", diff --git a/yarn.lock b/yarn.lock index 65fc44dc..7539ada2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1577,6 +1577,11 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bignumber.js@*: + version "9.0.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" + integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -3796,6 +3801,14 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== +i18n-js@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-4.0.2.tgz#31a62520204e292675bd72e82abdfeeb9aed5f20" + integrity sha512-81geA9vPvWe4NI2uL8Ve+/2jM03Sj/IvGgFHPxij7DbSXbG3CfChRK1vBj2h2IRl6eVRZf3Eq4ug3PgeeWUUPA== + dependencies: + bignumber.js "*" + lodash "*" + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -4481,7 +4494,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.5: +lodash@*, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== From fa27e3923d34b245a60f941de55a50c72f8b48ea Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 11:41:41 +0200 Subject: [PATCH 259/329] Reimplement pending specs with rough skeleton --- .../submissions_controller_spec.rb | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/spec/controllers/submissions_controller_spec.rb b/spec/controllers/submissions_controller_spec.rb index 41539eb3..1ac64016 100644 --- a/spec/controllers/submissions_controller_spec.rb +++ b/spec/controllers/submissions_controller_spec.rb @@ -151,15 +151,20 @@ describe SubmissionsController do end describe 'GET #run' do - let(:filename) { submission.collect_files.detect(&:main_file?).name_with_extension } - let(:perform_request) { get :run, params: {filename: filename, id: submission.id} } + let(:file) { submission.collect_files.detect(&:main_file?) } + let(:perform_request) { get :run, format: :json, params: {filename: file.filepath, id: submission.id} } context 'when no errors occur during execution' do before do + allow_any_instance_of(described_class).to receive(:hijack) + allow_any_instance_of(Submission).to receive(:run).and_return({}) + allow_any_instance_of(described_class).to receive(:save_testrun_output) perform_request end - pending('todo') + expect_assigns(submission: :submission) + expect_assigns(file: :file) + expect_http_status(204) end end @@ -206,21 +211,29 @@ describe SubmissionsController do end describe 'GET #score' do - let(:perform_request) { proc { get :score, params: {id: submission.id} } } + let(:perform_request) { proc { get :score, format: :json, params: {id: submission.id} } } - before { perform_request.call } + before do + allow_any_instance_of(described_class).to receive(:hijack) + perform_request.call + end - pending('todo: mock puma webserver or encapsulate tubesock call (Tubesock::HijackNotAvailable)') + expect_assigns(submission: :submission) + expect_http_status(204) end describe 'GET #test' do - let(:filename) { submission.collect_files.detect(&:teacher_defined_assessment?).name_with_extension } + let(:file) { submission.collect_files.detect(&:teacher_defined_assessment?) } let(:output) { {} } before do - get :test, params: {filename: filename, id: submission.id} + file.update(hidden: false) + allow_any_instance_of(described_class).to receive(:hijack) + get :test, params: {filename: "#{file.filepath}.json", id: submission.id} end - pending('todo') + expect_assigns(submission: :submission) + expect_assigns(file: :file) + expect_http_status(204) end end From a9039a8019adf3e2ce7546192b9bdb0c5a0ce648 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 11:42:06 +0200 Subject: [PATCH 260/329] Prevent false positive for raised error --- spec/lib/runner/strategy/poseidon_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/lib/runner/strategy/poseidon_spec.rb b/spec/lib/runner/strategy/poseidon_spec.rb index e3e24c26..3369a4d0 100644 --- a/spec/lib/runner/strategy/poseidon_spec.rb +++ b/spec/lib/runner/strategy/poseidon_spec.rb @@ -316,7 +316,7 @@ describe Runner::Strategy::Poseidon do let(:response_status) { 404 } it 'raises an error' do - expect { action.call }.not_to raise_error(Runner::Error::RunnerNotFound) + expect { action.call }.not_to raise_error end end From f50c0a839fb9459f1a7bb71dc135fba15f8b7515 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Jul 2022 03:14:52 +0000 Subject: [PATCH 261/329] Bump @fortawesome/fontawesome-free from 5.15.4 to 6.1.2 Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 5.15.4 to 6.1.2. - [Release notes](https://github.com/FortAwesome/Font-Awesome/releases) - [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md) - [Commits](https://github.com/FortAwesome/Font-Awesome/compare/5.15.4...6.1.2) --- updated-dependencies: - dependency-name: "@fortawesome/fontawesome-free" dependency-type: direct:production update-type: version-update:semver-major ... 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 ed4e071a..e7b3a4c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "@fortawesome/fontawesome-free": "^5.15.4", + "@fortawesome/fontawesome-free": "^6.1.2", "@rails/webpacker": "^5.4.3", "@sentry/browser": "^6.11.0", "bootstrap": "^4.6.2", diff --git a/yarn.lock b/yarn.lock index 7539ada2..99bf4f73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -919,10 +919,10 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@fortawesome/fontawesome-free@^5.15.4": - version "5.15.4" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" - integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== +"@fortawesome/fontawesome-free@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.2.tgz#d18880eddeadd42b1c64cb559f2f3d13d47a4a64" + integrity sha512-XwWADtfdSN73/udaFm+1mnGIj/ShDZNFMe/PRoqv3FhQ4GNI2PUN70yFTPsjq65Lw2C9i4TG5/hTbxXIXVCiqQ== "@gar/promisify@^1.0.1": version "1.1.3" From d93e71dc28f9b9b05b2222884a6f1ed7cd78297f Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 13:13:41 +0200 Subject: [PATCH 262/329] Rename v5 FontAwesome icons to match v6 name While FontAwesome provides aliases for all icons, we switch to the new names for consistency. See all changes at: https://fontawesome.com/docs/web/setup/upgrade/whats-changed#icons-renamed-in-version-6 --- app/assets/javascripts/exercises.js.erb | 2 +- .../javascripts/pagedown/markdown.editor.js.erb | 2 +- app/helpers/application_helper.rb | 2 +- app/views/application/_session.html.slim | 2 +- app/views/community_solutions/_form.html.slim | 2 +- app/views/exercises/_editor.html.slim | 2 +- app/views/exercises/_editor_file_tree.html.slim | 12 ++++++------ app/views/exercises/_editor_output.html.slim | 4 ++-- .../exercises/external_users/statistics.html.slim | 4 ++-- app/views/tips/_sortable_tip.html.slim | 2 +- lib/assets/javascripts/flash.js | 2 +- lib/assets/stylesheets/flash.css.scss | 2 +- spec/helpers/application_helper_spec.rb | 2 +- 13 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app/assets/javascripts/exercises.js.erb b/app/assets/javascripts/exercises.js.erb index e648d2fe..8d744b58 100644 --- a/app/assets/javascripts/exercises.js.erb +++ b/app/assets/javascripts/exercises.js.erb @@ -227,7 +227,7 @@ $(document).on('turbolinks:load', function () { '

' + '' + tip.title + '' + - '' + + '' + '
' + '
'; const tipList = $('#tip-list').append(template); diff --git a/app/assets/javascripts/pagedown/markdown.editor.js.erb b/app/assets/javascripts/pagedown/markdown.editor.js.erb index 4f5ecb6d..c6759007 100644 --- a/app/assets/javascripts/pagedown/markdown.editor.js.erb +++ b/app/assets/javascripts/pagedown/markdown.editor.js.erb @@ -1404,7 +1404,7 @@ buttons.heading = makeButton("wmd-heading-button", "<%= I18n.t('components.markdown_editor.heading.button_title', default: 'Heading (Ctrl+H)') %>", "m-1 fa fa-font", bindCommand("doHeading"), group3); var group4 = makeGroup(4); - buttons.undo = makeButton("wmd-undo-button", "<%= I18n.t('components.markdown_editor.undo.button_title', default: 'Undo (Ctrl+Z)') %>", "m-1 fa fa-undo", null, group4); + buttons.undo = makeButton("wmd-undo-button", "<%= I18n.t('components.markdown_editor.undo.button_title', default: 'Undo (Ctrl+Z)') %>", "m-1 fa fa-arrow-rotate-left", null, group4); buttons.undo.execute = function (manager) { if (manager) manager.undo(); }; var redoTitle = /win/.test(nav.platform.toLowerCase()) ? diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4f46e81c..50663b6b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -31,7 +31,7 @@ module ApplicationHelper private :label_column def no - tag.i(nil, class: 'fa fa-times') + tag.i(nil, class: 'fa fa-xmark') end def per_page_param diff --git a/app/views/application/_session.html.slim b/app/views/application/_session.html.slim index d5a1f906..12b7dca2 100644 --- a/app/views/application/_session.html.slim +++ b/app/views/application/_session.html.slim @@ -14,5 +14,5 @@ li = link_to(t('sessions.destroy.link'), sign_out_path, method: :delete, class: 'dropdown-item') - else li.nav-item = link_to(sign_in_path, class: 'nav-link') do - i.fa.fa-sign-in + i.fa.fa-arrow-right-to-bracket = t('sessions.new.link') diff --git a/app/views/community_solutions/_form.html.slim b/app/views/community_solutions/_form.html.slim index 3a262015..3b78f659 100644 --- a/app/views/community_solutions/_form.html.slim +++ b/app/views/community_solutions/_form.html.slim @@ -10,7 +10,7 @@ #description-card.lead class=(@embed_options[:collapse_exercise_description] ? 'description-card-collapsed' : 'description-card') .card.border-success.mb-3 .card-header - i.fa.fa-info-circle.text-success + i.fa.fa-circle-info.text-success strong.text-success => t('community_solutions.help_us_out') = t('community_solutions.explanation') diff --git a/app/views/exercises/_editor.html.slim b/app/views/exercises/_editor.html.slim index 59132d26..153d1691 100644 --- a/app/views/exercises/_editor.html.slim +++ b/app/views/exercises/_editor.html.slim @@ -45,7 +45,7 @@ = " | " button#start-over-active-file.p-0.border-0.btn-link.bg-white data-message-confirm=t('exercises.editor.confirm_start_over_active_file') data-url=reload_exercise_path(@exercise) - i.fa.fa-history + i.fa.fa-clock-rotate-left = t('exercises.editor.start_over_active_file') - unless @embed_options[:disable_run] && @embed_options[:disable_score] diff --git a/app/views/exercises/_editor_file_tree.html.slim b/app/views/exercises/_editor_file_tree.html.slim index 7f7d28b4..946d6748 100644 --- a/app/views/exercises/_editor_file_tree.html.slim +++ b/app/views/exercises/_editor_file_tree.html.slim @@ -1,16 +1,16 @@ div id='sidebar-collapsed' class=(@exercise.hide_file_tree && @tips.blank? ? '' : 'd-none') - = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-plus-square', id: 'sidebar-collapse-collapsed', label:'', title:t('exercises.editor.expand_action_sidebar')) + = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-square-plus', id: 'sidebar-collapse-collapsed', label:'', title:t('exercises.editor.expand_action_sidebar')) - unless @embed_options[:disable_hints] or @tips.blank? = render('editor_button', classes: 'btn-block btn-secondary btn mb-4', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-lightbulb', id: 'tips-collapsed', label:'', title: t('exercises.form.tips')) //- if !@course_token.blank? - = render('editor_button', classes: 'btn-block btn-primary btn enforce-top-margin', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-search', id: 'sidebar-search-collapsed', label: '', title: t('search.search_in_forum')) + = render('editor_button', classes: 'btn-block btn-primary btn enforce-top-margin', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-magnifying-glass', id: 'sidebar-search-collapsed', label: '', title: t('search.search_in_forum')) div.h-100.col-sm-12.enforce-bottom-margin id='sidebar-uncollapsed' class=(@exercise.hide_file_tree && @tips.blank? ? 'd-none' : '') .position-absolute.d-flex.mb-1.w-100 style="overflow: auto; left: 0; top: 0; height: 100%;" .w-100 - = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa fa-minus-square', id: 'sidebar-collapse', label: t('exercises.editor.collapse_action_sidebar')) + = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa fa-square-minus', id: 'sidebar-collapse', label: t('exercises.editor.collapse_action_sidebar')) - unless @exercise.hide_file_tree div @@ -22,10 +22,10 @@ div.h-100.col-sm-12.enforce-bottom-margin id='sidebar-uncollapsed' class=(@exerc div - if @exercise.allow_file_creation = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file'}, icon: 'fa fa-plus', id: 'create-file', label: '', title: t('exercises.editor.create_file')) - = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file', :'data-message-confirm' => t('shared.confirm_destroy') }, icon: 'far fa-trash-alt', id: 'destroy-file', label: '', title: t('exercises.editor.destroy_file')) + = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file', :'data-message-confirm' => t('shared.confirm_destroy') }, icon: 'far fa-trash-can', id: 'destroy-file', label: '', title: t('exercises.editor.destroy_file')) - unless @embed_options[:disable_download] = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip'}, icon: 'fas fa-arrow-down', id: 'download', label:'', title: t('exercises.editor.download')) - = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-message-confirm' => t('exercises.editor.confirm_start_over'), :'data-url' => reload_exercise_path(@exercise)}, icon: 'fa fa-history', id: 'start-over', label: '', title: t('exercises.editor.start_over')) + = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-message-confirm' => t('exercises.editor.confirm_start_over'), :'data-url' => reload_exercise_path(@exercise)}, icon: 'fa fa-clock-rotate-left', id: 'start-over', label: '', title: t('exercises.editor.start_over')) .card-body.pt-0.pr-0.pl-1.pb-1 @@ -43,7 +43,7 @@ div.h-100.col-sm-12.enforce-bottom-margin id='sidebar-uncollapsed' class=(@exerc = text_field_tag 'search-input-text', nil, placeholder: t('search.search_in_forum'), class: 'form-control' .input-group-btn = button_tag(class: 'btn btn-primary', id: 'btn-search-col') do - i.fa.fa-search + i.fa.fa-magnifying-glass - if @exercise.allow_file_creation? = render('shared/modal', id: 'modal-file', template: 'code_ocean/files/_form', title: t('exercises.editor.create_file')) diff --git a/app/views/exercises/_editor_output.html.slim b/app/views/exercises/_editor_output.html.slim index 07072e33..423a127b 100644 --- a/app/views/exercises/_editor_output.html.slim +++ b/app/views/exercises/_editor_output.html.slim @@ -1,8 +1,8 @@ div id='output_sidebar_collapsed' - = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'left'}, title: t('exercises.editor.expand_output_sidebar'), icon: 'fa fa-plus-square', id: 'toggle-sidebar-output-collapsed', label: '') + = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'left'}, title: t('exercises.editor.expand_output_sidebar'), icon: 'fa fa-square-plus', id: 'toggle-sidebar-output-collapsed', label: '') div.h-100 id='output_sidebar_uncollapsed' class='d-none col-sm-12 enforce-bottom-margin' data-message-no-output=t('exercises.implement.no_output_yet') .row - = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa fa-minus-square', id: 'toggle-sidebar-output', label: t('exercises.editor.collapse_output_sidebar')) + = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa fa-square-minus', id: 'toggle-sidebar-output', label: t('exercises.editor.collapse_output_sidebar')) div.position-absolute.d-flex.mb-1.w-100 style="overflow: auto; left: 0; bottom: 0; height: calc(100% - 3rem);" div.w-100 diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index 22a10c98..23e5b55e 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -43,12 +43,12 @@ h1 .bg-light.w-100.p-2.mb-4.align-items-center.d-flex.justify-content-between - if @show_autosaves span.pl-1.pb-1 - i.fa.fa-info-circle.align-middle + i.fa.fa-circle-info.align-middle small.mr-5.ml-1 = t('.toggle_status_on') = link_to t('.toggle_autosave_off'), statistics_external_user_exercise_path(show_autosaves: false), class: "btn btn-outline-dark float-right btn-sm" - else span.pl-1.pb-1 - i.fa.fa-info-circle.align-middle + i.fa.fa-circle-info.align-middle small.mr-5.ml-1 = t('.toggle_status_off') = link_to t('.toggle_autosave_on'), statistics_external_user_exercise_path(show_autosaves: true), class: "btn btn-outline-dark float-right btn-sm" #timeline diff --git a/app/views/tips/_sortable_tip.html.slim b/app/views/tips/_sortable_tip.html.slim index eeb887f9..14e456df 100644 --- a/app/views/tips/_sortable_tip.html.slim +++ b/app/views/tips/_sortable_tip.html.slim @@ -3,6 +3,6 @@ span.fa.fa-bars.mr-3 = tip.to_s a.fa.fa-eye.ml-2 href=tip_path(tip) target='_blank' - a.fa.fa-times.ml-2.remove-tip href='#' + a.fa.fa-xmark.ml-2.remove-tip href='#' .list-group.nested-sortable-list class="#{exercise_tip.children.present? ? 'mt-3' : ''}" = render(partial: 'tips/sortable_tip', collection: exercise_tip.children, as: :exercise_tip) diff --git a/lib/assets/javascripts/flash.js b/lib/assets/javascripts/flash.js index 3f217e4a..f1bfa610 100644 --- a/lib/assets/javascripts/flash.js +++ b/lib/assets/javascripts/flash.js @@ -26,7 +26,7 @@ $( document ).on('turbolinks:load', function() { $('.flash').each(function() { var container = $(this); var message = container.find('p'); - var button = container.find('span.fa-times'); + var button = container.find('span.fa-xmark'); var hide = function() { container.slideUp(function () { diff --git a/lib/assets/stylesheets/flash.css.scss b/lib/assets/stylesheets/flash.css.scss index d339aff2..ddfb2628 100644 --- a/lib/assets/stylesheets/flash.css.scss +++ b/lib/assets/stylesheets/flash.css.scss @@ -5,7 +5,7 @@ .flash { display: none; - span.fa-times { + span.fa-xmark { position: relative; top: -1.2em; float: right; diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 241cae24..e7752b5d 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -39,7 +39,7 @@ describe ApplicationHelper do describe '#no' do it "builds an 'i' tag" do - expect(no).to have_css('i.fa.fa-times') + expect(no).to have_css('i.fa.fa-xmark') end end From b98c37ae643d9c9b27d9ae0602c8cf3fd05ca1c3 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 14:03:00 +0200 Subject: [PATCH 263/329] Rename v4 FontAwesome icons to match v5/v6 name While FontAwesome provides aliases for all icons, we switch to the new names for consistency. See all changes at: https://fontawesome.com/docs/web/setup/upgrade/upgrade-from-v4#icons-renamed-since-version-4 --- app/assets/javascripts/editor/editor.js.erb | 10 ++++---- .../editor/participantsupport.js.erb | 2 +- .../javascripts/exercise_collections.js.erb | 2 +- app/assets/javascripts/exercises.js.erb | 6 ++--- .../pagedown/markdown.editor.js.erb | 24 +++++++++---------- app/assets/stylesheets/base.css.scss | 2 +- app/assets/stylesheets/exercises.css.scss | 4 ++-- app/helpers/application_helper.rb | 6 ++--- app/views/application/_session.html.slim | 4 ++-- app/views/community_solutions/_form.html.slim | 10 ++++---- .../error_template_attributes/index.html.slim | 4 ++-- app/views/error_templates/show.html.slim | 4 ++-- .../execution_environments/index.html.slim | 2 +- .../exercise_collections/_form.html.slim | 2 +- app/views/exercises/_editor.html.slim | 18 +++++++------- app/views/exercises/_editor_button.html.slim | 2 +- .../exercises/_editor_file_tree.html.slim | 18 +++++++------- app/views/exercises/_editor_output.html.slim | 8 +++---- app/views/exercises/_export_actions.html.slim | 6 ++--- app/views/exercises/_file_form.html.slim | 2 +- app/views/exercises/_tips_content.html.slim | 2 +- .../external_users/statistics.html.slim | 6 ++--- app/views/exercises/feedback.html.slim | 2 +- app/views/exercises/implement.html.slim | 2 +- app/views/exercises/show.html.slim | 2 +- .../exercises/study_group_dashboard.html.slim | 6 ++--- app/views/layouts/application.html.slim | 2 +- .../_list_entry.html.slim | 4 ++-- .../request_for_comments/index.html.slim | 8 +++---- app/views/request_for_comments/show.html.slim | 12 +++++----- app/views/shared/_new_button.html.slim | 2 +- app/views/tips/_collapsed_card.html.slim | 2 +- app/views/tips/_sortable_tip.html.slim | 6 ++--- lib/file_tree.rb | 16 ++++++------- spec/helpers/application_helper_spec.rb | 6 ++--- spec/lib/file_tree_spec.rb | 22 +++++++++++------ 36 files changed, 122 insertions(+), 114 deletions(-) diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index 50035ba4..b07341ae 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -216,7 +216,7 @@ var CodeOceanEditor = { }, hideSpinner: function () { - $('button i.fa, button i.far, button i.fas').show(); + $('button i.fa-solid, button i.fa-regular').show(); $('button i.fa-spin').hide(); }, @@ -697,7 +697,7 @@ var CodeOceanEditor = { }, showSpinner: function (initiator) { - $(initiator).find('i.fa, i.far, i.fas').hide(); + $(initiator).find('i.fa-solid, i.fa-regular').hide(); $(initiator).find('i.fa-spin').show(); }, @@ -743,21 +743,21 @@ var CodeOceanEditor = { showContainerDepletedMessage: function () { $.flash.danger({ - icon: ['fa', 'fa-clock-o'], + icon: ['fa-regular', 'fa-clock'], text: $('#editor').data('message-depleted') }); }, showOutOfMemoryMessage: function () { $.flash.info({ - icon: ['fa', 'fa-clock-o'], + icon: ['fa-regular', 'fa-clock'], text: $('#editor').data('message-out-of-memory') }); }, showTimeoutMessage: function () { $.flash.info({ - icon: ['fa', 'fa-clock-o'], + icon: ['fa-regular', 'fa-clock'], text: $('#editor').data('message-timeout') }); }, diff --git a/app/assets/javascripts/editor/participantsupport.js.erb b/app/assets/javascripts/editor/participantsupport.js.erb index af4cb501..77d2138b 100644 --- a/app/assets/javascripts/editor/participantsupport.js.erb +++ b/app/assets/javascripts/editor/participantsupport.js.erb @@ -6,7 +6,7 @@ CodeOceanEditorFlowr = { '
' + '<%= I18n.t('shared.show') %>' + '<%= I18n.t('shared.destroy') %>'; diff --git a/app/assets/javascripts/exercises.js.erb b/app/assets/javascripts/exercises.js.erb index 8d744b58..00d7f52a 100644 --- a/app/assets/javascripts/exercises.js.erb +++ b/app/assets/javascripts/exercises.js.erb @@ -225,9 +225,9 @@ $(document).on('turbolinks:load', function () { const tip = {id: id, title: title} const template = '
' + - '' + tip.title + - '' + - '' + + '' + tip.title + + '' + + '' + '
' + '
'; const tipList = $('#tip-list').append(template); diff --git a/app/assets/javascripts/pagedown/markdown.editor.js.erb b/app/assets/javascripts/pagedown/markdown.editor.js.erb index c6759007..459d7cfa 100644 --- a/app/assets/javascripts/pagedown/markdown.editor.js.erb +++ b/app/assets/javascripts/pagedown/markdown.editor.js.erb @@ -1381,37 +1381,37 @@ }; var group1 = makeGroup(1); - buttons.bold = makeButton("wmd-bold-button", "<%= I18n.t('components.markdown_editor.bold.button_title', default: 'Bold (Ctrl+B)') %>", "m-1 fa fa-bold", bindCommand("doBold"), group1); - buttons.italic = makeButton("wmd-italic-button", "<%= I18n.t('components.markdown_editor.italic.button_title', default: 'Italic (Ctrl+I)') %>", "m-1 fa fa-italic", bindCommand("doItalic"), group1); + buttons.bold = makeButton("wmd-bold-button", "<%= I18n.t('components.markdown_editor.bold.button_title', default: 'Bold (Ctrl+B)') %>", "m-1 fa-solid fa-bold", bindCommand("doBold"), group1); + buttons.italic = makeButton("wmd-italic-button", "<%= I18n.t('components.markdown_editor.italic.button_title', default: 'Italic (Ctrl+I)') %>", "m-1 fa-solid fa-italic", bindCommand("doItalic"), group1); var group2 = makeGroup(2); - buttons.link = makeButton("wmd-link-button", "<%= I18n.t('components.markdown_editor.insert_link.button_title', default: 'Link (Ctrl+L)') %>", "m-1 fa fa-link", bindCommand(function (chunk, postProcessing) { + buttons.link = makeButton("wmd-link-button", "<%= I18n.t('components.markdown_editor.insert_link.button_title', default: 'Link (Ctrl+L)') %>", "m-1 fa-solid fa-link", bindCommand(function (chunk, postProcessing) { return this.doLinkOrImage(chunk, postProcessing, false); }), group2); - buttons.image = makeButton("wmd-image-button", "<%= I18n.t('components.markdown_editor.insert_image.button_title', default: 'Image (Ctrl+G)') %>", "m-1 fa fa-picture-o", bindCommand(function (chunk, postProcessing) { + buttons.image = makeButton("wmd-image-button", "<%= I18n.t('components.markdown_editor.insert_image.button_title', default: 'Image (Ctrl+G)') %>", "m-1 fa-regular fa-image", bindCommand(function (chunk, postProcessing) { return this.doLinkOrImage(chunk, postProcessing, true); }), group2); - buttons.quote = makeButton("wmd-quote-button", "<%= I18n.t('components.markdown_editor.blockquoute.button_title', default: 'Blockquote (Ctrl+Q)') %>", "m-1 fa fa-quote-left", bindCommand("doBlockquote"), group2); - buttons.code = makeButton("wmd-code-button", "<%= I18n.t('components.markdown_editor.code_sample.button_title', default: 'Code Sample (Ctrl+K)') %>", "m-1 fa fa-code", bindCommand("doCode"), group2); + buttons.quote = makeButton("wmd-quote-button", "<%= I18n.t('components.markdown_editor.blockquoute.button_title', default: 'Blockquote (Ctrl+Q)') %>", "m-1 fa-solid fa-quote-left", bindCommand("doBlockquote"), group2); + buttons.code = makeButton("wmd-code-button", "<%= I18n.t('components.markdown_editor.code_sample.button_title', default: 'Code Sample (Ctrl+K)') %>", "m-1 fa-solid fa-code", bindCommand("doCode"), group2); var group3 = makeGroup(3); - buttons.ulist = makeButton("wmd-ulist-button", "<%= I18n.t('components.markdown_editor.bulleted_list.button_title', default: 'Bulleted List (Ctrl+U)') %>", "m-1 fa fa-list-ul", bindCommand(function (chunk, postProcessing) { + buttons.ulist = makeButton("wmd-ulist-button", "<%= I18n.t('components.markdown_editor.bulleted_list.button_title', default: 'Bulleted List (Ctrl+U)') %>", "m-1 fa-solid fa-list-ul", bindCommand(function (chunk, postProcessing) { this.doList(chunk, postProcessing, false); }), group3); - buttons.olist = makeButton("wmd-olist-button", "<%= I18n.t('components.markdown_editor.numbered_list.button_title', default: 'Numbered List (Ctrl+O)') %>", "m-1 fa fa-list-ol", bindCommand(function (chunk, postProcessing) { + buttons.olist = makeButton("wmd-olist-button", "<%= I18n.t('components.markdown_editor.numbered_list.button_title', default: 'Numbered List (Ctrl+O)') %>", "m-1 fa-solid fa-list-ol", bindCommand(function (chunk, postProcessing) { this.doList(chunk, postProcessing, true); }), group3); - buttons.heading = makeButton("wmd-heading-button", "<%= I18n.t('components.markdown_editor.heading.button_title', default: 'Heading (Ctrl+H)') %>", "m-1 fa fa-font", bindCommand("doHeading"), group3); + buttons.heading = makeButton("wmd-heading-button", "<%= I18n.t('components.markdown_editor.heading.button_title', default: 'Heading (Ctrl+H)') %>", "m-1 fa-solid fa-font", bindCommand("doHeading"), group3); var group4 = makeGroup(4); - buttons.undo = makeButton("wmd-undo-button", "<%= I18n.t('components.markdown_editor.undo.button_title', default: 'Undo (Ctrl+Z)') %>", "m-1 fa fa-arrow-rotate-left", null, group4); + buttons.undo = makeButton("wmd-undo-button", "<%= I18n.t('components.markdown_editor.undo.button_title', default: 'Undo (Ctrl+Z)') %>", "m-1 fa-solid fa-arrow-rotate-left", null, group4); buttons.undo.execute = function (manager) { if (manager) manager.undo(); }; var redoTitle = /win/.test(nav.platform.toLowerCase()) ? "<%= I18n.t('components.markdown_editor.redo.button_title.win', default: 'Redo (Ctrl+Y)') %>" : "<%= I18n.t('components.markdown_editor.redo.button_title.other', default: 'Redo (Ctrl+Shift+Z)') %>"; // mac and other non-Windows platforms - buttons.redo = makeButton("wmd-redo-button", redoTitle, "m-1 fa fa-repeat", null, group4); + buttons.redo = makeButton("wmd-redo-button", redoTitle, "m-1 fa-solid fa-arrow-rotate-right", null, group4); buttons.redo.execute = function (manager) { if (manager) manager.redo(); }; if (helpOptions) { @@ -1419,7 +1419,7 @@ group5.className = group5.className + " ml-auto"; var helpButton = document.createElement("button"); var helpButtonImage = document.createElement("i"); - helpButtonImage.className = "m-1 fa fa-info"; + helpButtonImage.className = "m-1 fa-solid fa-info"; helpButton.appendChild(helpButtonImage); helpButton.className = "btn btn-info btn-sm"; helpButton.id = "wmd-help-button" + postfix; diff --git a/app/assets/stylesheets/base.css.scss b/app/assets/stylesheets/base.css.scss index a4b1d82a..1488c4f9 100644 --- a/app/assets/stylesheets/base.css.scss +++ b/app/assets/stylesheets/base.css.scss @@ -12,7 +12,7 @@ h1, h2, h3, h4, h5, h6 { color: rgba(70, 70, 70, 1); } -i.fa, i.far, i.fas { +i.fa-solid, i.fa-regular, i.fa-solid { margin-right: 0.5em; } diff --git a/app/assets/stylesheets/exercises.css.scss b/app/assets/stylesheets/exercises.css.scss index e5118ffc..75a98edf 100644 --- a/app/assets/stylesheets/exercises.css.scss +++ b/app/assets/stylesheets/exercises.css.scss @@ -40,11 +40,11 @@ input[type='file'] { } } -[data-toggle="collapse"] .fa:before { +[data-toggle="collapse"] .fa-solid:before { content: "\f139"; } -[data-toggle="collapse"].collapsed .fa:before { +[data-toggle="collapse"].collapsed .fa-solid:before { content: "\f13a"; } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 50663b6b..8ca2997f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -18,7 +18,7 @@ module ApplicationHelper end def empty - tag.i(nil, class: 'empty fa fa-minus') + tag.i(nil, class: 'empty fa-solid fa-minus') end def label_column(label) @@ -31,7 +31,7 @@ module ApplicationHelper private :label_column def no - tag.i(nil, class: 'fa fa-xmark') + tag.i(nil, class: 'fa-solid fa-xmark') end def per_page_param @@ -79,6 +79,6 @@ module ApplicationHelper private :value_column def yes - tag.i(nil, class: 'fa fa-check') + tag.i(nil, class: 'fa-solid fa-check') end end diff --git a/app/views/application/_session.html.slim b/app/views/application/_session.html.slim index 12b7dca2..d14080eb 100644 --- a/app/views/application/_session.html.slim +++ b/app/views/application/_session.html.slim @@ -1,7 +1,7 @@ - if current_user li.nav-item.dropdown a.nav-link.dropdown-toggle data-toggle='dropdown' href='#' - i.fa.fa-user + i.fa-solid.fa-user = current_user span.caret ul.dropdown-menu.p-0.mt-1 role='menu' @@ -14,5 +14,5 @@ li = link_to(t('sessions.destroy.link'), sign_out_path, method: :delete, class: 'dropdown-item') - else li.nav-item = link_to(sign_in_path, class: 'nav-link') do - i.fa.fa-arrow-right-to-bracket + i.fa-solid.fa-arrow-right-to-bracket = t('sessions.new.link') diff --git a/app/views/community_solutions/_form.html.slim b/app/views/community_solutions/_form.html.slim index 3b78f659..05265aa9 100644 --- a/app/views/community_solutions/_form.html.slim +++ b/app/views/community_solutions/_form.html.slim @@ -3,19 +3,19 @@ span.badge.badge-pill.badge-primary.float-right.score h1 id="exercise-headline" - i id="description-symbol" class=(@embed_options[:collapse_exercise_description] ? 'fa fa-chevron-right' : 'fa fa-chevron-down') + i id="description-symbol" class=(@embed_options[:collapse_exercise_description] ? 'fa-solid fa-chevron-right' : 'fa-solid fa-chevron-down') => @community_solution.model_name.human(count: 1) = @community_solution.exercise.title #description-card.lead class=(@embed_options[:collapse_exercise_description] ? 'description-card-collapsed' : 'description-card') .card.border-success.mb-3 .card-header - i.fa.fa-circle-info.text-success + i.fa-solid.fa-circle-info.text-success strong.text-success => t('community_solutions.help_us_out') = t('community_solutions.explanation') br - i.fa.fa-flask.text-success + i.fa-solid.fa-flask.text-success strong.text-success => t('community_solutions.research_status') == t('community_solutions.research_explanation') @@ -61,6 +61,6 @@ = render('exercises/editor_frame', exercise: @community_solution.exercise, file: file, own_solution: true) #statusbar.visible.mt-2 style="height: 5em" p.text-center - = render('exercises/editor_button', classes: 'btn-lg btn-success ml-5 mr-3', data: {'data-url': community_solution_path(@community_solution), 'data-http-method': 'PUT', 'data-cause': 'change-community-solution', 'data-exercise-id': @community_solution.exercise.id}, icon: 'fa fa-send', id: 'submit', label: t('community_solutions.change_community_solution')) - = render('exercises/editor_button', classes: 'btn-lg btn-secondary ml-5', data: {'data-url': community_solution_path(@community_solution), 'data-http-method': 'PUT', 'data-cause': 'accept-community-solution', 'data-exercise-id': @community_solution.exercise.id}, icon: 'fa fa-check', id: 'accept', label: t('community_solutions.accept_community_solution')) + = render('exercises/editor_button', classes: 'btn-lg btn-success ml-5 mr-3', data: {'data-url': community_solution_path(@community_solution), 'data-http-method': 'PUT', 'data-cause': 'change-community-solution', 'data-exercise-id': @community_solution.exercise.id}, icon: 'fa-solid fa-paper-plane', id: 'submit', label: t('community_solutions.change_community_solution')) + = render('exercises/editor_button', classes: 'btn-lg btn-secondary ml-5', data: {'data-url': community_solution_path(@community_solution), 'data-http-method': 'PUT', 'data-cause': 'accept-community-solution', 'data-exercise-id': @community_solution.exercise.id}, icon: 'fa-solid fa-check', id: 'accept', label: t('community_solutions.accept_community_solution')) button style="display:none" id="autosave" data-url=community_solution_path(@community_solution) data-http-method='PUT' data-cause='autosave-community-solution' data-exercise-id=@community_solution.exercise.id diff --git a/app/views/error_template_attributes/index.html.slim b/app/views/error_template_attributes/index.html.slim index 3bb6ee0a..11eae9e4 100644 --- a/app/views/error_template_attributes/index.html.slim +++ b/app/views/error_template_attributes/index.html.slim @@ -14,9 +14,9 @@ h1 = ErrorTemplateAttribute.model_name.human(count: 2) tr td - if error_template_attribute.important - span class="fa fa-star" aria-hidden="true" + span class="fa-solid fa-star" aria-hidden="true" - else - span class="fa fa-star-o" aria-hidden="true" + span class="fa-regular fa-star" aria-hidden="true" td = link_to_if(policy(error_template_attribute).show?, error_template_attribute.key, error_template_attribute) td = error_template_attribute.description td diff --git a/app/views/error_templates/show.html.slim b/app/views/error_templates/show.html.slim index 66864c9a..37fb86ef 100644 --- a/app/views/error_templates/show.html.slim +++ b/app/views/error_templates/show.html.slim @@ -26,9 +26,9 @@ h2.mt-4 tr td - if attribute.important - span class="fa fa-star" aria-hidden="true" + span class="fa-solid fa-star" aria-hidden="true" - else - span class="fa fa-star-o" aria-hidden="true" + span class="fa-regular fa-star" aria-hidden="true" td = link_to_if(policy(attribute).show?, attribute.key, attribute) td = attribute.description td diff --git a/app/views/execution_environments/index.html.slim b/app/views/execution_environments/index.html.slim index 60c52d0f..e79b31fc 100644 --- a/app/views/execution_environments/index.html.slim +++ b/app/views/execution_environments/index.html.slim @@ -2,7 +2,7 @@ h1.d-inline-block = ExecutionEnvironment.model_name.human(count: 2) - if Runner.management_active? = button_to( { action: :sync_all_to_runner_management }, { form_class: 'float-right mb-2', class: 'btn btn-success' }) - i.fa.fa-upload + i.fa-solid.fa-upload = t('execution_environments.index.synchronize_all.button') .table-responsive diff --git a/app/views/exercise_collections/_form.html.slim b/app/views/exercise_collections/_form.html.slim index 07fc874f..c31f8736 100644 --- a/app/views/exercise_collections/_form.html.slim +++ b/app/views/exercise_collections/_form.html.slim @@ -22,7 +22,7 @@ - @exercise_collection.items.order(:position).each do |item| tr data-id=item.exercise.id td - span.fa.fa-bars + span.fa-solid.fa-bars td = item.exercise.title td = link_to(t('shared.show'), item.exercise, 'data-turbolinks' => "false") td diff --git a/app/views/exercises/_editor.html.slim b/app/views/exercises/_editor.html.slim index 153d1691..4e587b9e 100644 --- a/app/views/exercises/_editor.html.slim +++ b/app/views/exercises/_editor.html.slim @@ -17,14 +17,14 @@ div id="sidebar" class=additional_classes = render('editor_file_tree', exercise: @exercise, files: @files) div.editor-col.col.p-0 id='frames' #editor-buttons.btn-group.enforce-bottom-margin - = render('editor_button', disabled: true, icon: 'fa fa-ban', id: 'dummy', label: t('exercises.editor.dummy')) - = render('editor_button', icon: 'fa fa-desktop', id: 'render', label: t('exercises.editor.render')) unless @embed_options[:hide_run_button] - = render('editor_button', data: {:'data-message-failure' => t('exercises.editor.run_failure'), :'data-message-network' => t('exercises.editor.network'), :'data-message-success' => t('exercises.editor.run_success'), :'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa fa-play', id: 'run', label: t('exercises.editor.run'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + r')) unless @embed_options[:disable_run] - = render('editor_button', data: {:'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa fa-stop', id: 'stop', label: t('exercises.editor.stop'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + r')) unless @embed_options[:disable_run] - = render('editor_button', data: {:'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa fa-rocket', id: 'test', label: t('exercises.editor.test'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + t')) unless @embed_options[:disable_run] - = render('editor_button', data: {:'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa fa-trophy', id: 'assess', label: t('exercises.editor.score'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + s')) unless @embed_options[:disable_score] + = render('editor_button', disabled: true, icon: 'fa-solid fa-ban', id: 'dummy', label: t('exercises.editor.dummy')) + = render('editor_button', icon: 'fa-solid fa-desktop', id: 'render', label: t('exercises.editor.render')) unless @embed_options[:hide_run_button] + = render('editor_button', data: {:'data-message-failure' => t('exercises.editor.run_failure'), :'data-message-network' => t('exercises.editor.network'), :'data-message-success' => t('exercises.editor.run_success'), :'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa-solid fa-play', id: 'run', label: t('exercises.editor.run'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + r')) unless @embed_options[:disable_run] + = render('editor_button', data: {:'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa-solid fa-stop', id: 'stop', label: t('exercises.editor.stop'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + r')) unless @embed_options[:disable_run] + = render('editor_button', data: {:'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa-solid fa-rocket', id: 'test', label: t('exercises.editor.test'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + t')) unless @embed_options[:disable_run] + = render('editor_button', data: {:'data-placement' => 'top', :'data-toggle' => 'tooltip', :'data-container' => 'body'}, icon: 'fa-solid fa-trophy', id: 'assess', label: t('exercises.editor.score'), title: t('shared.tooltips.shortcut', shortcut: 'ALT + s')) unless @embed_options[:disable_score] - unless hide_rfc_button - = render('editor_button', icon: 'fa fa-comment', id: 'requestComments', label: t('exercises.editor.requestComments'), title: t('exercises.editor.requestCommentsTooltip')) + = render('editor_button', icon: 'fa-solid fa-comment', id: 'requestComments', label: t('exercises.editor.requestComments'), title: t('exercises.editor.requestCommentsTooltip')) - @files.each do |file| - file.read_only = true if @embed_options[:read_only] @@ -34,7 +34,7 @@ div - if !@embed_options[:disable_download] && @exercise.hide_file_tree? button#download.p-0.border-0.btn-link.visible.bg-white - i.fas.fa-arrow-down + i.fa-solid.fa-arrow-down = t('exercises.editor.download') div @@ -45,7 +45,7 @@ = " | " button#start-over-active-file.p-0.border-0.btn-link.bg-white data-message-confirm=t('exercises.editor.confirm_start_over_active_file') data-url=reload_exercise_path(@exercise) - i.fa.fa-clock-rotate-left + i.fa-solid.fa-clock-rotate-left = t('exercises.editor.start_over_active_file') - unless @embed_options[:disable_run] && @embed_options[:disable_score] diff --git a/app/views/exercises/_editor_button.html.slim b/app/views/exercises/_editor_button.html.slim index 98240c08..2608e65e 100644 --- a/app/views/exercises/_editor_button.html.slim +++ b/app/views/exercises/_editor_button.html.slim @@ -1,4 +1,4 @@ button.btn class=local_assigns.fetch(:classes, 'btn-primary') *local_assigns.fetch(:data, {}) disabled=local_assigns.fetch(:disabled, false) id=id title=local_assigns[:title] type='button' - i.fa.fa-circle-o-notch.fa-spin class=(label.blank? ? "m-0" : '') + i.fa-solid.fa-circle-notch.fa-spin class=(label.blank? ? "m-0" : '') i class=(label.present? ? icon : "#{icon} m-0") = label diff --git a/app/views/exercises/_editor_file_tree.html.slim b/app/views/exercises/_editor_file_tree.html.slim index 946d6748..b3b1f7a5 100644 --- a/app/views/exercises/_editor_file_tree.html.slim +++ b/app/views/exercises/_editor_file_tree.html.slim @@ -1,16 +1,16 @@ div id='sidebar-collapsed' class=(@exercise.hide_file_tree && @tips.blank? ? '' : 'd-none') - = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-square-plus', id: 'sidebar-collapse-collapsed', label:'', title:t('exercises.editor.expand_action_sidebar')) + = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa-solid fa-square-plus', id: 'sidebar-collapse-collapsed', label:'', title:t('exercises.editor.expand_action_sidebar')) - unless @embed_options[:disable_hints] or @tips.blank? - = render('editor_button', classes: 'btn-block btn-secondary btn mb-4', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-lightbulb', id: 'tips-collapsed', label:'', title: t('exercises.form.tips')) + = render('editor_button', classes: 'btn-block btn-secondary btn mb-4', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa-solid fa-lightbulb', id: 'tips-collapsed', label:'', title: t('exercises.form.tips')) //- if !@course_token.blank? - = render('editor_button', classes: 'btn-block btn-primary btn enforce-top-margin', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa fa-magnifying-glass', id: 'sidebar-search-collapsed', label: '', title: t('search.search_in_forum')) + = render('editor_button', classes: 'btn-block btn-primary btn enforce-top-margin', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'right'}, icon: 'fa-solid fa-magnifying-glass', id: 'sidebar-search-collapsed', label: '', title: t('search.search_in_forum')) div.h-100.col-sm-12.enforce-bottom-margin id='sidebar-uncollapsed' class=(@exercise.hide_file_tree && @tips.blank? ? 'd-none' : '') .position-absolute.d-flex.mb-1.w-100 style="overflow: auto; left: 0; top: 0; height: 100%;" .w-100 - = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa fa-square-minus', id: 'sidebar-collapse', label: t('exercises.editor.collapse_action_sidebar')) + = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa-solid fa-square-minus', id: 'sidebar-collapse', label: t('exercises.editor.collapse_action_sidebar')) - unless @exercise.hide_file_tree div @@ -21,11 +21,11 @@ div.h-100.col-sm-12.enforce-bottom-margin id='sidebar-uncollapsed' class=(@exerc .px-2 = I18n.t('exercises.editor_file_tree.file_root') div - if @exercise.allow_file_creation - = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file'}, icon: 'fa fa-plus', id: 'create-file', label: '', title: t('exercises.editor.create_file')) - = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file', :'data-message-confirm' => t('shared.confirm_destroy') }, icon: 'far fa-trash-can', id: 'destroy-file', label: '', title: t('exercises.editor.destroy_file')) + = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file'}, icon: 'fa-solid fa-plus', id: 'create-file', label: '', title: t('exercises.editor.create_file')) + = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-cause' => 'file', :'data-message-confirm' => t('shared.confirm_destroy') }, icon: 'fa-regular fa-trash-can', id: 'destroy-file', label: '', title: t('exercises.editor.destroy_file')) - unless @embed_options[:disable_download] - = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip'}, icon: 'fas fa-arrow-down', id: 'download', label:'', title: t('exercises.editor.download')) - = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-message-confirm' => t('exercises.editor.confirm_start_over'), :'data-url' => reload_exercise_path(@exercise)}, icon: 'fa fa-clock-rotate-left', id: 'start-over', label: '', title: t('exercises.editor.start_over')) + = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip'}, icon: 'fa-solid fa-arrow-down', id: 'download', label:'', title: t('exercises.editor.download')) + = render('editor_button', classes: 'btn-default btn-sm', data: {:'data-toggle' => 'tooltip', :'data-message-confirm' => t('exercises.editor.confirm_start_over'), :'data-url' => reload_exercise_path(@exercise)}, icon: 'fa-solid fa-clock-rotate-left', id: 'start-over', label: '', title: t('exercises.editor.start_over')) .card-body.pt-0.pr-0.pl-1.pb-1 @@ -43,7 +43,7 @@ div.h-100.col-sm-12.enforce-bottom-margin id='sidebar-uncollapsed' class=(@exerc = text_field_tag 'search-input-text', nil, placeholder: t('search.search_in_forum'), class: 'form-control' .input-group-btn = button_tag(class: 'btn btn-primary', id: 'btn-search-col') do - i.fa.fa-magnifying-glass + i.fa-solid.fa-magnifying-glass - if @exercise.allow_file_creation? = render('shared/modal', id: 'modal-file', template: 'code_ocean/files/_form', title: t('exercises.editor.create_file')) diff --git a/app/views/exercises/_editor_output.html.slim b/app/views/exercises/_editor_output.html.slim index 423a127b..8d8d1da8 100644 --- a/app/views/exercises/_editor_output.html.slim +++ b/app/views/exercises/_editor_output.html.slim @@ -1,8 +1,8 @@ div id='output_sidebar_collapsed' - = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'left'}, title: t('exercises.editor.expand_output_sidebar'), icon: 'fa fa-square-plus', id: 'toggle-sidebar-output-collapsed', label: '') + = render('editor_button', classes: 'btn-block btn-outline-dark btn', data: {:'data-toggle' => 'tooltip', :'data-placement' => 'left'}, title: t('exercises.editor.expand_output_sidebar'), icon: 'fa-solid fa-square-plus', id: 'toggle-sidebar-output-collapsed', label: '') div.h-100 id='output_sidebar_uncollapsed' class='d-none col-sm-12 enforce-bottom-margin' data-message-no-output=t('exercises.implement.no_output_yet') .row - = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa fa-square-minus', id: 'toggle-sidebar-output', label: t('exercises.editor.collapse_output_sidebar')) + = render('editor_button', classes: 'btn-block btn-outline-dark btn', icon: 'fa-solid fa-square-minus', id: 'toggle-sidebar-output', label: t('exercises.editor.collapse_output_sidebar')) div.position-absolute.d-flex.mb-1.w-100 style="overflow: auto; left: 0; bottom: 0; height: calc(100% - 3rem);" div.w-100 @@ -60,13 +60,13 @@ div.h-100 id='output_sidebar_uncollapsed' class='d-none col-sm-12 enforce-bottom br - if lti_outcome_service?(@exercise.id, external_user_id) - p.text-center = render('editor_button', classes: 'btn-lg btn-success d-none', data: {:'data-url' => submit_exercise_path(@exercise)}, icon: 'fa fa-send', id: 'submit', label: t('exercises.editor.submit')) + p.text-center = render('editor_button', classes: 'btn-lg btn-success d-none', data: {:'data-url' => submit_exercise_path(@exercise)}, icon: 'fa-solid fa-paper-plane', id: 'submit', label: t('exercises.editor.submit')) - if @exercise.submission_deadline.present? || @exercise.late_submission_deadline.present? #deadline data-submission-deadline=@exercise.submission_deadline&.rfc2822 data-late-submission-deadline=@exercise.late_submission_deadline&.rfc2822 h4 = t('exercises.editor.deadline') = t('exercises.editor.hints.disclaimer') - else - p.text-center = render('editor_button', classes: 'btn-lg btn-secondary disabled', data: {:'data-placement' => 'bottom', :'data-tooltip' => true}, icon: 'fa fa-clock-o', id: 'submit_outdated', label: t('exercises.editor.exercise_deadline_passed'), title: t('exercises.editor.tooltips.exercise_deadline_passed')) + p.text-center = render('editor_button', classes: 'btn-lg btn-secondary disabled', data: {:'data-placement' => 'bottom', :'data-tooltip' => true}, icon: 'fa-regular fa-clock', id: 'submit_outdated', label: t('exercises.editor.exercise_deadline_passed'), title: t('exercises.editor.tooltips.exercise_deadline_passed')) hr div.enforce-big-top-margin #turtlediv diff --git a/app/views/exercises/_export_actions.html.slim b/app/views/exercises/_export_actions.html.slim index 0484d2b2..646c82c0 100644 --- a/app/views/exercises/_export_actions.html.slim +++ b/app/views/exercises/_export_actions.html.slim @@ -1,14 +1,14 @@ - if error = button_tag type: 'button', class:'btn btn-primary pull-right export-button export-retry-button', data: {exercise_id: exercise.id} do - i.fa.fa-refresh.confirm-icon + i.fa-solid.fa-arrows-rotate.confirm-icon = t('exercises.export_codeharbor.buttons.retry') - else - unless exported - if !exercise_found || update_right = button_tag type: 'button', class:'btn btn-primary pull-right export-action export-button', data: {exercise_id: exercise.id} do - i.fa.fa-check.confirm-icon + i.fa-solid.fa-check.confirm-icon = t('exercises.export_codeharbor.buttons.export') = button_tag type: 'submit', class:'btn btn-secondary pull-right export-button', data: {dismiss: 'modal'} do - i.fa.fa-remove.abort-icon + i.fa-solid.fa-xmark.abort-icon = exported ? t('exercises.export_codeharbor.buttons.close') : t('exercises.export_codeharbor.buttons.abort') diff --git a/app/views/exercises/_file_form.html.slim b/app/views/exercises/_file_form.html.slim index 2ede87cb..8af2cfe6 100644 --- a/app/views/exercises/_file_form.html.slim +++ b/app/views/exercises/_file_form.html.slim @@ -6,7 +6,7 @@ li.card.mt-2 - aria_expanded = f.index != 'index' ? 'false' : 'true' 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" + i.fa-solid aria-hidden="true" span = f.object.filepath .card-collapse.collapse class=('in' if f.object.name.nil?) id="collapse#{f.index}" role="tabpanel" .card-body diff --git a/app/views/exercises/_tips_content.html.slim b/app/views/exercises/_tips_content.html.slim index a9ad9b66..eb2d67ef 100644 --- a/app/views/exercises/_tips_content.html.slim +++ b/app/views/exercises/_tips_content.html.slim @@ -7,7 +7,7 @@ #tips.card.mt-2 role="tab" style="display: block;" .card-header.py-2 - i.fa.fa-lightbulb + i.fa-solid.fa-lightbulb = t('exercises.implement.tips.heading') .card-body.text-dark.bg-white.p-2 = render(partial: 'tips/collapsed_card', collection: @tips, as: :exercise_tip, locals: { tip_prefix: '' }) diff --git a/app/views/exercises/external_users/statistics.html.slim b/app/views/exercises/external_users/statistics.html.slim index 23e5b55e..fe7d96b8 100644 --- a/app/views/exercises/external_users/statistics.html.slim +++ b/app/views/exercises/external_users/statistics.html.slim @@ -29,7 +29,7 @@ h1 .flex-container button.btn.btn-secondary id='play-button' - span.fa.fa-play + span.fa-solid.fa-play #submissions-slider.flex-item input type='range' orient='horizontal' list='datapoints' min=0 max=all_files.length-1 value=0 style="width: 100%" datalist#datapoints @@ -43,12 +43,12 @@ h1 .bg-light.w-100.p-2.mb-4.align-items-center.d-flex.justify-content-between - if @show_autosaves span.pl-1.pb-1 - i.fa.fa-circle-info.align-middle + i.fa-solid.fa-circle-info.align-middle small.mr-5.ml-1 = t('.toggle_status_on') = link_to t('.toggle_autosave_off'), statistics_external_user_exercise_path(show_autosaves: false), class: "btn btn-outline-dark float-right btn-sm" - else span.pl-1.pb-1 - i.fa.fa-circle-info.align-middle + i.fa-solid.fa-circle-info.align-middle small.mr-5.ml-1 = t('.toggle_status_off') = link_to t('.toggle_autosave_on'), statistics_external_user_exercise_path(show_autosaves: true), class: "btn btn-outline-dark float-right btn-sm" #timeline diff --git a/app/views/exercises/feedback.html.slim b/app/views/exercises/feedback.html.slim index aa06a509..9b221d0d 100644 --- a/app/views/exercises/feedback.html.slim +++ b/app/views/exercises/feedback.html.slim @@ -21,7 +21,7 @@ h1 = link_to_if(policy(@exercise).show?, @exercise, exercise_path(@exercise)) - if policy(@exercise).detailed_statistics? span.username = link_to_if(policy(feedback.user).show?, feedback.user.displayname, statistics_external_user_exercise_path(id: @exercise.id, external_user_id: feedback.user.id)) - if feedback.anomaly_notification - i class="fa fa-envelope-o" data-placement="top" data-toggle="tooltip" data-container="body" title=feedback.anomaly_notification.reason + i class="fa-regular fa-envelope" data-placement="top" data-toggle="tooltip" data-container="body" title=feedback.anomaly_notification.reason span.date = feedback.created_at .card-collapse role="tabpanel" .card-body.feedback diff --git a/app/views/exercises/implement.html.slim b/app/views/exercises/implement.html.slim index 6ea23627..6666dcbb 100644 --- a/app/views/exercises/implement.html.slim +++ b/app/views/exercises/implement.html.slim @@ -11,7 +11,7 @@ span.badge.badge-pill.badge-primary.float-right.score h1 id="exercise-headline" - i id="description-symbol" class=(@embed_options[:collapse_exercise_description] ? 'fa fa-chevron-right' : 'fa fa-chevron-down') + i id="description-symbol" class=(@embed_options[:collapse_exercise_description] ? 'fa-solid fa-chevron-right' : 'fa-solid fa-chevron-down') = @exercise.title #description-card.lead class=(@embed_options[:collapse_exercise_description] ? 'description-card-collapsed' : 'description-card') diff --git a/app/views/exercises/show.html.slim b/app/views/exercises/show.html.slim index 517a6980..d6afbd0f 100644 --- a/app/views/exercises/show.html.slim +++ b/app/views/exercises/show.html.slim @@ -48,7 +48,7 @@ ul.list-unstyled#files .card-header role="tab" id="heading" a.file-heading.collapsed data-toggle="collapse" data-parent="#files" href=".collapse#{file.id}" div.clearfix role="button" - i class="fa" aria-hidden="true" + i.fa-solid aria-hidden="true" span = file.filepath .card-collapse.collapse class="collapse#{file.id}" role="tabpanel" .card-body diff --git a/app/views/exercises/study_group_dashboard.html.slim b/app/views/exercises/study_group_dashboard.html.slim index 668e4ee6..e5ad5569 100644 --- a/app/views/exercises/study_group_dashboard.html.slim +++ b/app/views/exercises/study_group_dashboard.html.slim @@ -16,7 +16,7 @@ h4.mt-4 div.w-100#chart_stacked .d-none.badge-info.container.py-2#no_chart_data - i class="fa fa-info" aria-hidden="true" + i class="fa-solid fa-info" aria-hidden="true" = t('.no_data_yet') h4.mt-4 @@ -27,9 +27,9 @@ h4.mt-4 thead tr th.text-center - i.mr-0 class="fa fa-lightbulb-o" aria-hidden="true" title = t('request_for_comments.solved') + i.mr-0 class="fa-regular fa-lightbulb" aria-hidden="true" title = t('request_for_comments.solved') th.text-center - i.mr-0 class="fa fa-comment" aria-hidden="true" title = t('request_for_comments.comments') align="center" + i.mr-0 class="fa-solid fa-comment" aria-hidden="true" title = t('request_for_comments.comments') align="center" th.col-12 = t('activerecord.attributes.request_for_comments.question') th = t('activerecord.attributes.request_for_comments.username') th.text-nowrap = t('activerecord.attributes.request_for_comments.requested_at') diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index eeb0fd5f..64af76ff 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -41,7 +41,7 @@ html lang="#{I18n.locale || I18n.default_locale}" nav.navbar.navbar-dark.bg-dark.navbar-expand-md.mb-4.py-1 role='navigation' .container .navbar-brand - i.fa.fa-code + i.fa-solid.fa-code = application_name button.navbar-toggler data-target='#navbar-collapse' data-toggle='collapse' type='button' aria-expanded='false' aria-label='Toggle navigation' span.navbar-toggler-icon diff --git a/app/views/request_for_comments/_list_entry.html.slim b/app/views/request_for_comments/_list_entry.html.slim index bb96c5c5..72984276 100644 --- a/app/views/request_for_comments/_list_entry.html.slim +++ b/app/views/request_for_comments/_list_entry.html.slim @@ -1,9 +1,9 @@ tr.table-row-clickable data-id=request_for_comment.id data-href=request_for_comment_path(request_for_comment) td.p-2 - if request_for_comment.solved? - span.fa.fa-check.fa-2x.text-success aria-hidden="true" + span.fa-solid.fa-check.fa-2x.text-success aria-hidden="true" - elsif request_for_comment.full_score_reached - span.fa.fa-check.fa-2x style="color:darkgrey" aria-hidden="true" + span.fa-solid.fa-check.fa-2x style="color:darkgrey" aria-hidden="true" - else = '' td.text-center = request_for_comment.comments_count diff --git a/app/views/request_for_comments/index.html.slim b/app/views/request_for_comments/index.html.slim index 22c929c4..c02f9868 100644 --- a/app/views/request_for_comments/index.html.slim +++ b/app/views/request_for_comments/index.html.slim @@ -18,11 +18,11 @@ h1 = RequestForComment.model_name.human(count: 2) thead tr th - i class="fa fa-lightbulb-o" aria-hidden="true" title = t('request_for_comments.solved') align="right" + i class="fa-regular fa-lightbulb" aria-hidden="true" title = t('request_for_comments.solved') align="right" th = sort_link(@search, :title, t('activerecord.attributes.request_for_comments.exercise')) th = t('activerecord.attributes.request_for_comments.question') th - i class="fa fa-comment" aria-hidden="true" title = t('request_for_comments.comments') align="center" + i class="fa-solid fa-comment" aria-hidden="true" title = t('request_for_comments.comments') align="center" th = t('activerecord.attributes.request_for_comments.username') th = t('activerecord.attributes.request_for_comments.requested_at') th = t('activerecord.attributes.request_for_comments.last_update') @@ -31,10 +31,10 @@ h1 = RequestForComment.model_name.human(count: 2) tr data-id=request_for_comment.id - if request_for_comment.solved? td - span class="fa fa-check" aria-hidden="true" + span class="fa-solid fa-check" aria-hidden="true" - elsif request_for_comment.full_score_reached td - span class="fa fa-check" style="color:darkgrey" aria-hidden="true" + span class="fa-solid fa-check" style="color:darkgrey" aria-hidden="true" - else td = '' td = link_to_if(policy(request_for_comment).show?, request_for_comment.exercise.title, request_for_comment) diff --git a/app/views/request_for_comments/show.html.slim b/app/views/request_for_comments/show.html.slim index d6ae99f4..c43d4467 100644 --- a/app/views/request_for_comments/show.html.slim +++ b/app/views/request_for_comments/show.html.slim @@ -1,7 +1,7 @@ .list-group h4#exercise_caption.list-group-item-heading data-exercise-id="#{@request_for_comment.exercise.id}" data-rfc-id="#{@request_for_comment.id}" - if @request_for_comment.solved? - span.fa.fa-check aria-hidden="true" + span.fa-solid.fa-check aria-hidden="true" = link_to_if(policy(@request_for_comment.exercise).show?, @request_for_comment.exercise.title, [:implement, @request_for_comment.exercise]) p.list-group-item-text - user = @request_for_comment.user @@ -17,7 +17,7 @@ h5 = t('activerecord.attributes.exercise.description') .text - span.fa.fa-chevron-up.collapse-button + span.fa-solid.fa-chevron-up.collapse-button = render_markdown(@request_for_comment.exercise.description) .question @@ -36,7 +36,7 @@ - if output_runs.size > 0 h5.mt-4= t('request_for_comments.runtime_output') .collapsed.testrun-output.text - span.fa.fa-chevron-down.collapse-button + span.fa-solid.fa-chevron-down.collapse-button - output_runs.each do |testrun| pre= testrun.log or t('request_for_comments.no_output') @@ -50,7 +50,7 @@ .testrun-container div class=("result #{testrun.passed ? 'passed' : 'failed'}") .collapsed.testrun-output.text - span.fa.fa-chevron-down.collapse-button + span.fa-solid.fa-chevron-down.collapse-button pre= testrun.log or t('request_for_comments.no_output') - if @current_user.admin? && user.is_a?(ExternalUser) @@ -72,7 +72,7 @@ = (file.path or "") + "/" + file.name + file.file_type.file_extension br/ |    - i.fa.fa-arrow-down aria-hidden="true" + i.fa-solid.fa-arrow-down aria-hidden="true" = t('request_for_comments.click_here') #commentitor.editor data-file-id="#{file.id}" data-mode="#{file.file_type.editor_mode}" data-read-only="true" = file.content @@ -180,7 +180,7 @@ javascript:
' + preprocess(comment.username) + '
\
' + comment.date + '
\
\ - \ + \ #{{ t('request_for_comments.comment_edited') }} \
\
\ diff --git a/app/views/shared/_new_button.html.slim b/app/views/shared/_new_button.html.slim index 9037487b..4b61295f 100644 --- a/app/views/shared/_new_button.html.slim +++ b/app/views/shared/_new_button.html.slim @@ -2,5 +2,5 @@ // default value for fetch will always be evaluated even if it is not returned - href_target = local_assigns.fetch(:path, false) || send(:"new_#{model.model_name.singular}_path") a.btn.btn-success href=href_target - i.fa.fa-plus + i.fa-solid.fa-plus = t('shared.new_model', model: model.model_name.human) diff --git a/app/views/tips/_collapsed_card.html.slim b/app/views/tips/_collapsed_card.html.slim index fac417be..9aaf2782 100644 --- a/app/views/tips/_collapsed_card.html.slim +++ b/app/views/tips/_collapsed_card.html.slim @@ -5,7 +5,7 @@ .card-title.mb-0 a.collapsed aria-controls="tip-collapse-#{exercise_tip.id}" aria-expanded="false" data-parent="#tips" data-toggle="collapse" href="#tip-collapse-#{exercise_tip.id}" .clearfix role="button" - i.fa aria-hidden="true" + i.fa-solid aria-hidden="true" span = t('activerecord.models.tip.one') =< tip_prefix + index.to_s diff --git a/app/views/tips/_sortable_tip.html.slim b/app/views/tips/_sortable_tip.html.slim index 14e456df..183cd240 100644 --- a/app/views/tips/_sortable_tip.html.slim +++ b/app/views/tips/_sortable_tip.html.slim @@ -1,8 +1,8 @@ - tip = exercise_tip.tip .list-group-item.d-block data-tip-id=tip.id data-id=exercise_tip.id - span.fa.fa-bars.mr-3 + span.fa-solid.fa-bars.mr-3 = tip.to_s - a.fa.fa-eye.ml-2 href=tip_path(tip) target='_blank' - a.fa.fa-xmark.ml-2.remove-tip href='#' + a.fa-regular.fa-eye.ml-2 href=tip_path(tip) target='_blank' + a.fa-solid.fa-xmark.ml-2.remove-tip href='#' .list-group.nested-sortable-list class="#{exercise_tip.children.present? ? 'mt-3' : ''}" = render(partial: 'tips/sortable_tip', collection: exercise_tip.children, as: :exercise_tip) diff --git a/lib/file_tree.rb b/lib/file_tree.rb index 405f5c6f..ff8a52bd 100644 --- a/lib/file_tree.rb +++ b/lib/file_tree.rb @@ -3,25 +3,25 @@ class FileTree def file_icon(file) if file.file_type.audio? - 'fa fa-file-audio-o' + 'fa-regular fa-file-audio' elsif file.file_type.image? - 'fa fa-file-image-o' + 'fa-regular fa-file-image' elsif file.file_type.video? - 'fa fa-file-video-o' + 'fa-regular fa-file-video' elsif file.read_only? - 'fa fa-lock' + 'fa-solid fa-lock' elsif file.file_type.executable? - 'fa fa-file-code-o' + 'fa-regular fa-file-code' elsif file.file_type.renderable? - 'fa fa-file-text-o' + 'fa-regular fa-file-text' else - 'fa fa-file-o' + 'fa-regular fa-file' end end private :file_icon def folder_icon - 'fa fa-folder-o' + 'fa-regular fa-folder' end private :folder_icon diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index e7752b5d..4ec9e0db 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -26,7 +26,7 @@ describe ApplicationHelper do describe '#empty' do it "builds an 'i' tag" do - expect(empty).to have_css('i.empty.fa.fa-minus') + expect(empty).to have_css('i.empty.fa-solid.fa-minus') end end @@ -39,7 +39,7 @@ describe ApplicationHelper do describe '#no' do it "builds an 'i' tag" do - expect(no).to have_css('i.fa.fa-xmark') + expect(no).to have_css('i.fa-solid.fa-xmark') end end @@ -141,7 +141,7 @@ describe ApplicationHelper do describe '#yes' do it "builds an 'i' tag" do - expect(yes).to have_css('i.fa.fa-check') + expect(yes).to have_css('i.fa-solid.fa-check') end end end diff --git a/spec/lib/file_tree_spec.rb b/spec/lib/file_tree_spec.rb index 15066f64..3d546980 100644 --- a/spec/lib/file_tree_spec.rb +++ b/spec/lib/file_tree_spec.rb @@ -13,7 +13,8 @@ describe FileTree do 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') + expect(file_icon).to include('fa-file-audio') + expect(file_icon).to include('fa-regular') end end @@ -21,7 +22,8 @@ describe FileTree do 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') + expect(file_icon).to include('fa-file-image') + expect(file_icon).to include('fa-regular') end end @@ -29,7 +31,8 @@ describe FileTree do 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') + expect(file_icon).to include('fa-file-video') + expect(file_icon).to include('fa-regular') end end end @@ -40,6 +43,7 @@ describe FileTree do it 'is a lock icon' do expect(file_icon).to include('fa-lock') + expect(file_icon).to include('fa-solid') end end @@ -47,7 +51,8 @@ describe FileTree do 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') + expect(file_icon).to include('fa-file-code') + expect(file_icon).to include('fa-regular') end end @@ -55,7 +60,8 @@ describe FileTree do 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') + expect(file_icon).to include('fa-file-text') + expect(file_icon).to include('fa-regular') end end @@ -63,7 +69,8 @@ describe FileTree do let(:file) { build(:file, file_type: build(:dot_md)) } it 'is a generic file icon' do - expect(file_icon).to include('fa-file-o') + expect(file_icon).to include('fa-file') + expect(file_icon).to include('fa-regular') end end end @@ -71,7 +78,8 @@ describe FileTree do describe '#folder_icon' do it 'is a folder icon' do - expect(file_tree.send(:folder_icon)).to include('fa-folder-o') + expect(file_tree.send(:folder_icon)).to include('fa-folder') + expect(file_tree.send(:folder_icon)).to include('fa-regular') end end From 4615a49e6210000153bfc85d24768871142476e7 Mon Sep 17 00:00:00 2001 From: Janis4411 Date: Thu, 4 Aug 2022 17:16:54 +0200 Subject: [PATCH 264/329] added strong params to comments_controller to prevent users from editing attributes which are not intended to be edited, also created specs to test this behaviour --- app/controllers/comments_controller.rb | 6 ++- spec/controllers/comments_controller_spec.rb | 42 ++++++++++++++++++++ spec/factories/request_for_comment.rb | 2 +- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 spec/controllers/comments_controller_spec.rb diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 367d9f1d..8a2a270c 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -55,7 +55,7 @@ class CommentsController < ApplicationController # PATCH/PUT /comments/1.json def update - if @comment.update(comment_params_without_request_id) + if @comment.update(comment_params_for_update) render :show, status: :ok, location: @comment else render json: @comment.errors, status: :unprocessable_entity @@ -77,6 +77,10 @@ class CommentsController < ApplicationController @comment = Comment.find(params[:id]) end + def comment_params_for_update + params.require(:comment).permit(:text) + end + def comment_params_without_request_id comment_params.except :request_id end diff --git a/spec/controllers/comments_controller_spec.rb b/spec/controllers/comments_controller_spec.rb new file mode 100644 index 00000000..3511a538 --- /dev/null +++ b/spec/controllers/comments_controller_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe CommentsController do + let(:user) { create(:learner) } + let(:rfc_with_comment) { create(:rfc_with_comment, user: user) } + let(:comment) { rfc_with_comment.comments.first } + let(:updated_comment) { comment.reload } + let(:perform_request) { proc { put :update, format: :json, params: {id: comment.id, comment: comment_params} } } + + before do + allow(controller).to receive(:current_user).and_return(user) + perform_request.call + end + + describe 'PUT #update' do + context 'with valid params' do + let(:comment_params) { {text: 'test100'} } + + it 'saves the permitted changes' do + expect(updated_comment.text).to eq('test100') + end + + expect_http_status(:ok) + end + + context 'with additional params' do + let(:comment_params) { {text: 'test100', row: 5, file_id: 50} } + + it 'applies the permitted changes' do + expect(updated_comment.row).not_to eq(5) + expect(updated_comment.file_id).not_to eq(50) + expect(updated_comment.row).to eq(1) + expect(updated_comment.file_id).to eq(comment.file_id) + expect(updated_comment.text).to eq('test100') + end + + expect_http_status(:ok) + end + end +end diff --git a/spec/factories/request_for_comment.rb b/spec/factories/request_for_comment.rb index 169632a5..6b22cb58 100644 --- a/spec/factories/request_for_comment.rb +++ b/spec/factories/request_for_comment.rb @@ -13,7 +13,7 @@ FactoryBot.define do factory :rfc_with_comment, class: 'RequestForComment' do after(:create) do |rfc| rfc.file = rfc.submission.files.first - Comment.create(file: rfc.file, user: rfc.user, text: "comment for rfc #{rfc.question}") + Comment.create(file: rfc.file, user: rfc.user, row: 1, text: "comment for rfc #{rfc.question}") end end end From 9c2ea622ce80ab100f380031be0a9e5c63bc2a87 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 15:15:58 +0200 Subject: [PATCH 265/329] Fix asset compilation with FontAwesome 6 --- app/javascript/packs/stylesheets.scss | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/javascript/packs/stylesheets.scss b/app/javascript/packs/stylesheets.scss index 40b38056..3e9cbc24 100644 --- a/app/javascript/packs/stylesheets.scss +++ b/app/javascript/packs/stylesheets.scss @@ -12,7 +12,21 @@ $web-font-path: ''; @import '~bootstrap/scss/bootstrap'; @import '~bootswatch/dist/yeti/bootswatch'; $fa-font-path: '~@fortawesome/fontawesome-free/webfonts/'; -@import '~@fortawesome/fontawesome-free/scss/fontawesome'; +// Remove lines below and re-include overall fontawesome in v6.2+ +// See https://github.com/FortAwesome/Font-Awesome/issues/19237 +@import '~@fortawesome/fontawesome-free/scss/functions'; +@import '~@fortawesome/fontawesome-free/scss/variables'; +@import '~@fortawesome/fontawesome-free/scss/mixins'; +@import '~@fortawesome/fontawesome-free/scss/core'; +@import '~@fortawesome/fontawesome-free/scss/sizing'; +@import '~@fortawesome/fontawesome-free/scss/fixed-width'; +@import '~@fortawesome/fontawesome-free/scss/bordered-pulled'; +@import '~@fortawesome/fontawesome-free/scss/animated'; +@import '~@fortawesome/fontawesome-free/scss/rotated-flipped'; +@import '~@fortawesome/fontawesome-free/scss/stacked'; +@import '~@fortawesome/fontawesome-free/scss/icons'; +@import '~@fortawesome/fontawesome-free/scss/screen-reader'; +// @import '~@fortawesome/fontawesome-free/scss/fontawesome'; @import '~@fortawesome/fontawesome-free/scss/solid'; @import '~@fortawesome/fontawesome-free/scss/regular'; @import '~@fortawesome/fontawesome-free/scss/v4-shims'; From d374dacaa1cb5e3a81a3552ab540a5d573bee694 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 15:16:08 +0200 Subject: [PATCH 266/329] Update Yarn package --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 99bf4f73..963b7e6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1578,9 +1578,9 @@ big.js@^5.2.2: integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== bignumber.js@*: - version "9.0.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.2.tgz#71c6c6bed38de64e24a65ebe16cfcf23ae693673" - integrity sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" + integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== binary-extensions@^1.0.0: version "1.13.1" @@ -2965,9 +2965,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.202: - version "1.4.211" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz#afaa8b58313807501312d598d99b953568d60f91" - integrity sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A== + version "1.4.212" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.212.tgz#20cd48e88288fd2428138c108804edb1961bf559" + integrity sha512-LjQUg1SpLj2GfyaPDVBUHdhmlDU1vDB4f0mJWSGkISoXQrn5/lH3ECPCuo2Bkvf6Y30wO+b69te+rZK/llZmjg== elliptic@^6.5.3: version "6.5.4" From 3bf0b7388b06a3374e4004de038887c16f9ebf1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:30:55 +0000 Subject: [PATCH 267/329] Bump webmock from 3.17.0 to 3.17.1 Bumps [webmock](https://github.com/bblimke/webmock) from 3.17.0 to 3.17.1. - [Release notes](https://github.com/bblimke/webmock/releases) - [Changelog](https://github.com/bblimke/webmock/blob/master/CHANGELOG.md) - [Commits](https://github.com/bblimke/webmock/compare/v3.17.0...v3.17.1) --- updated-dependencies: - dependency-name: webmock 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 779b26a0..24ace546 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -520,7 +520,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webmock (3.17.0) + webmock (3.17.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) From 63b5fbed2dd12b3d64ad2fa47792b5adb8d7dcd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:31:30 +0000 Subject: [PATCH 268/329] Bump faraday-net_http_persistent from 2.0.1 to 2.0.2 Bumps [faraday-net_http_persistent](https://github.com/lostisland/faraday-net_http_persistent) from 2.0.1 to 2.0.2. - [Release notes](https://github.com/lostisland/faraday-net_http_persistent/releases) - [Commits](https://github.com/lostisland/faraday-net_http_persistent/compare/v2.0.1...v2.0.2) --- updated-dependencies: - dependency-name: faraday-net_http_persistent 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 779b26a0..4c00169d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -156,8 +156,8 @@ GEM faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) faraday-net_http (2.1.0) - faraday-net_http_persistent (2.0.1) - faraday-net_http + faraday-net_http_persistent (2.0.2) + faraday-net_http (< 3) net-http-persistent (~> 4.0) faye-websocket (0.11.1) eventmachine (>= 0.12.0) From b530b05a41967f7c22b8512e659d1723ebe9ce68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:31:45 +0000 Subject: [PATCH 269/329] Bump selenium-webdriver from 4.3.0 to 4.4.0 Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.3.0 to 4.4.0. - [Release notes](https://github.com/SeleniumHQ/selenium/releases) - [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES) - [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.3.0...selenium-4.4.0) --- updated-dependencies: - dependency-name: selenium-webdriver 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 779b26a0..dfeeb1df 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -452,7 +452,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - selenium-webdriver (4.3.0) + selenium-webdriver (4.4.0) childprocess (>= 0.5, < 5.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) From 9c902b37ea0fda6f1a18ff751127515f9111ecaf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:32:04 +0000 Subject: [PATCH 270/329] Bump pg from 1.4.2 to 1.4.3 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.2 to 1.4.3. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.2...v1.4.3) --- updated-dependencies: - dependency-name: pg 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 779b26a0..61229556 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -294,7 +294,7 @@ GEM parser (3.1.2.0) ast (~> 2.4.1) path_expander (1.1.1) - pg (1.4.2) + pg (1.4.3) prometheus_exporter (2.0.3) webrick pry (0.13.1) From f3228228d18a7eb5409dd0bee3d31d803c8afe1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:39:36 +0000 Subject: [PATCH 271/329] Bump faraday from 2.4.0 to 2.5.1 Bumps [faraday](https://github.com/lostisland/faraday) from 2.4.0 to 2.5.1. - [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/v2.4.0...v2.5.1) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 42019421..61b91bb7 100644 --- a/Gemfile +++ b/Gemfile @@ -9,7 +9,7 @@ gem 'charlock_holmes', require: 'charlock_holmes/string' gem 'docker-api', require: 'docker' gem 'eventmachine' gem 'factory_bot_rails' -gem 'faraday', '~> 2.4.0' +gem 'faraday', '~> 2.5.1' gem 'faraday-net_http_persistent' gem 'faye-websocket' gem 'forgery' diff --git a/Gemfile.lock b/Gemfile.lock index 6b1ba9e8..1247ecef 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,8 +152,8 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (2.4.0) - faraday-net_http (~> 2.0) + faraday (2.5.1) + faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (2.1.0) faraday-net_http_persistent (2.0.2) @@ -559,7 +559,7 @@ DEPENDENCIES docker-api eventmachine factory_bot_rails - faraday (~> 2.4.0) + faraday (~> 2.5.1) faraday-net_http_persistent faye-websocket forgery From c60a0da1b5903f793153ed197cbb1caf256ac32b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 19:38:45 +0000 Subject: [PATCH 272/329] Bump rubocop from 1.33.0 to 1.34.1 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.33.0 to 1.34.1. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.33.0...v1.34.1) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1247ecef..a291d280 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -291,7 +291,7 @@ GEM pagedown-bootstrap-rails (2.1.4) railties (> 3.1) parallel (1.22.1) - parser (3.1.2.0) + parser (3.1.2.1) ast (~> 2.4.1) path_expander (1.1.1) pg (1.4.3) @@ -414,14 +414,14 @@ GEM rspec-mocks (~> 3.10) rspec-support (~> 3.10) rspec-support (3.11.0) - rubocop (1.33.0) + rubocop (1.34.1) json (~> 2.3) parallel (~> 1.10) - parser (>= 3.1.0.0) + parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.19.1, < 2.0) + rubocop-ast (>= 1.20.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.21.0) From 3e1c2d163bf4cf47be58ec89f733ae3bc550f253 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 9 Aug 2022 22:06:54 +0200 Subject: [PATCH 273/329] Update Bundler version --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a291d280..fe45f5e0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -625,4 +625,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.3.17 + 2.3.19 From 08efc166d7ddf036dae38d03ed03bf1b78ecdf43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 17:14:46 +0000 Subject: [PATCH 274/329] Bump faraday-net_http_persistent from 2.0.2 to 2.1.0 Bumps [faraday-net_http_persistent](https://github.com/lostisland/faraday-net_http_persistent) from 2.0.2 to 2.1.0. - [Release notes](https://github.com/lostisland/faraday-net_http_persistent/releases) - [Commits](https://github.com/lostisland/faraday-net_http_persistent/compare/v2.0.2...v2.1.0) --- updated-dependencies: - dependency-name: faraday-net_http_persistent dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fe45f5e0..51d04090 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -155,9 +155,9 @@ GEM faraday (2.5.1) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) - faraday-net_http (2.1.0) - faraday-net_http_persistent (2.0.2) - faraday-net_http (< 3) + faraday-net_http (3.0.0) + faraday-net_http_persistent (2.1.0) + faraday (~> 2.5) net-http-persistent (~> 4.0) faye-websocket (0.11.1) eventmachine (>= 0.12.0) From e2a87c5ae014c677351834844e7ba14a76528a5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 17:16:05 +0000 Subject: [PATCH 275/329] Bump faraday from 2.5.1 to 2.5.2 Bumps [faraday](https://github.com/lostisland/faraday) from 2.5.1 to 2.5.2. - [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/v2.5.1...v2.5.2) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 61b91bb7..42b67149 100644 --- a/Gemfile +++ b/Gemfile @@ -9,7 +9,7 @@ gem 'charlock_holmes', require: 'charlock_holmes/string' gem 'docker-api', require: 'docker' gem 'eventmachine' gem 'factory_bot_rails' -gem 'faraday', '~> 2.5.1' +gem 'faraday', '~> 2.5.2' gem 'faraday-net_http_persistent' gem 'faye-websocket' gem 'forgery' diff --git a/Gemfile.lock b/Gemfile.lock index 51d04090..690193d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) - faraday (2.5.1) + faraday (2.5.2) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.0) @@ -559,7 +559,7 @@ DEPENDENCIES docker-api eventmachine factory_bot_rails - faraday (~> 2.5.1) + faraday (~> 2.5.2) faraday-net_http_persistent faye-websocket forgery From d223abfb5e9354031eadad388dc64d3c2405d62d Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 11 Aug 2022 23:52:56 +0200 Subject: [PATCH 276/329] Update from webpacker v5 to shakapacker v6.0.0.rc13 Using a two-step process is recommended: https://github.com/shakacode/shakapacker/blob/332e25186a32407c4701978e92e3adee9267dbae/docs/v6_upgrade.md --- .browserslistrc | 1 - Gemfile | 2 +- Gemfile.lock | 12 +- app/javascript/{packs => }/application.js | 2 +- app/javascript/d3-tip.js | 5 + app/javascript/highlight.js | 8 + app/javascript/packs/d3-tip.js | 12 - app/javascript/packs/highlight.js | 15 - app/javascript/packs/sortable.js | 12 - app/javascript/packs/stylesheets.scss | 34 - app/javascript/packs/vis.js | 15 - app/javascript/sortable.js | 5 + app/javascript/stylesheets.scss | 34 + app/javascript/vis.js | 8 + app/views/admin/dashboard/show.html.slim | 4 +- app/views/exercises/_form.html.slim | 2 +- app/views/exercises/_tips_content.html.slim | 4 +- app/views/exercises/show.html.slim | 4 +- app/views/exercises/statistics.html.slim | 2 +- .../exercises/study_group_dashboard.html.slim | 2 +- app/views/layouts/application.html.slim | 5 +- .../statistics/activity_history.html.slim | 4 +- app/views/statistics/graphs.html.slim | 4 +- app/views/submissions/show.html.slim | 4 +- app/views/tips/show.html.slim | 4 +- babel.config.js | 83 - bin/{webpack => webpacker} | 11 +- ...ebpack-dev-server => webpacker-dev-server} | 4 +- bin/yarn | 5 +- config/initializers/assets.rb | 3 + .../initializers/content_security_policy.rb | 3 + config/webpack/environment.js | 47 - config/webpack/webpack.config.js | 47 + config/webpacker.yml | 74 +- docs/LOCAL_SETUP.md | 2 +- package.json | 38 +- yarn.lock | 5477 ++++------------- 37 files changed, 1374 insertions(+), 4624 deletions(-) delete mode 100644 .browserslistrc rename app/javascript/{packs => }/application.js (97%) create mode 100644 app/javascript/d3-tip.js create mode 100644 app/javascript/highlight.js delete mode 100644 app/javascript/packs/d3-tip.js delete mode 100644 app/javascript/packs/highlight.js delete mode 100644 app/javascript/packs/sortable.js delete mode 100644 app/javascript/packs/stylesheets.scss delete mode 100644 app/javascript/packs/vis.js create mode 100644 app/javascript/sortable.js create mode 100644 app/javascript/stylesheets.scss create mode 100644 app/javascript/vis.js delete mode 100644 babel.config.js rename bin/{webpack => webpacker} (55%) rename bin/{webpack-dev-server => webpacker-dev-server} (78%) delete mode 100644 config/webpack/environment.js create mode 100644 config/webpack/webpack.config.js diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index e94f8140..00000000 --- a/.browserslistrc +++ /dev/null @@ -1 +0,0 @@ -defaults diff --git a/Gemfile b/Gemfile index 42b67149..7a73dada 100644 --- a/Gemfile +++ b/Gemfile @@ -42,12 +42,12 @@ gem 'rest-client' gem 'rubytree' gem 'rubyzip' gem 'sass-rails' +gem 'shakapacker', '6.0.0.rc13' gem 'slim-rails' gem 'sorcery' # Causes a deprecation warning in Rails 6.0+, see: https://github.com/Sorcery/sorcery/pull/255 gem 'telegraf' gem 'tubesock' gem 'turbolinks' -gem 'webpacker' gem 'whenever', require: false # Error Tracing diff --git a/Gemfile.lock b/Gemfile.lock index 690193d0..005bf524 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -464,6 +464,11 @@ GEM sentry-ruby (5.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) set (1.0.2) + shakapacker (6.0.0.rc.13) + activesupport (>= 5.2) + rack-proxy (>= 0.6.1) + railties (>= 5.2) + semantic_range (>= 2.3.0) shoulda-matchers (5.1.0) activesupport (>= 5.2.0) simplecov (0.21.2) @@ -524,11 +529,6 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webpacker (5.4.3) - activesupport (>= 5.2) - rack-proxy (>= 0.6.1) - railties (>= 5.2) - semantic_range (>= 2.3.0) webrick (1.7.0) websocket (1.2.9) websocket-driver (0.7.5) @@ -611,6 +611,7 @@ DEPENDENCIES selenium-webdriver sentry-rails sentry-ruby + shakapacker (= 6.0.0.rc13) shoulda-matchers simplecov slim-rails @@ -621,7 +622,6 @@ DEPENDENCIES turbolinks web-console webmock - webpacker whenever BUNDLED WITH diff --git a/app/javascript/packs/application.js b/app/javascript/application.js similarity index 97% rename from app/javascript/packs/application.js rename to app/javascript/application.js index d479943b..04289fb2 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/application.js @@ -43,7 +43,7 @@ import 'jquery-ui/themes/base/sortable.css' // I18n locales import { I18n } from "i18n-js"; -import locales from "../../../tmp/locales.json"; +import locales from "../../tmp/locales.json"; // Fetch user locale from html#lang. // This value is being set on `app/views/layouts/application.html.erb` and diff --git a/app/javascript/d3-tip.js b/app/javascript/d3-tip.js new file mode 100644 index 00000000..9d884c89 --- /dev/null +++ b/app/javascript/d3-tip.js @@ -0,0 +1,5 @@ +/* eslint no-console:0 */ + +// JS +import * as d3Tip from 'd3-tip' +window.d3.tip = d3Tip; diff --git a/app/javascript/highlight.js b/app/javascript/highlight.js new file mode 100644 index 00000000..18e75a56 --- /dev/null +++ b/app/javascript/highlight.js @@ -0,0 +1,8 @@ +/* eslint no-console:0 */ + +// JS +import * as hljs from 'highlight.js' +window.hljs = hljs; + +// CSS +import 'highlight.js/styles/base16/tomorrow.css' diff --git a/app/javascript/packs/d3-tip.js b/app/javascript/packs/d3-tip.js deleted file mode 100644 index 73286f90..00000000 --- a/app/javascript/packs/d3-tip.js +++ /dev/null @@ -1,12 +0,0 @@ -/* eslint no-console:0 */ -// This file is automatically compiled by Webpack, along with any other files -// present in this directory. You're encouraged to place your actual application logic in -// a relevant structure within app/javascript and only use these pack files to reference -// that code so it'll be compiled. -// -// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate -// layout file, like app/views/layouts/application.html.slim - -// JS -import d3Tip from 'd3-tip' -window.d3.tip = d3Tip; diff --git a/app/javascript/packs/highlight.js b/app/javascript/packs/highlight.js deleted file mode 100644 index 394e5a0b..00000000 --- a/app/javascript/packs/highlight.js +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint no-console:0 */ -// This file is automatically compiled by Webpack, along with any other files -// present in this directory. You're encouraged to place your actual application logic in -// a relevant structure within app/javascript and only use these pack files to reference -// that code so it'll be compiled. -// -// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate -// layout file, like app/views/layouts/application.html.slim - -// JS -import hljs from 'highlight.js' -window.hljs = hljs; - -// CSS -import 'highlight.js/styles/base16/tomorrow.css' diff --git a/app/javascript/packs/sortable.js b/app/javascript/packs/sortable.js deleted file mode 100644 index e139cb36..00000000 --- a/app/javascript/packs/sortable.js +++ /dev/null @@ -1,12 +0,0 @@ -/* eslint no-console:0 */ -// This file is automatically compiled by Webpack, along with any other files -// present in this directory. You're encouraged to place your actual application logic in -// a relevant structure within app/javascript and only use these pack files to reference -// that code so it'll be compiled. -// -// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate -// layout file, like app/views/layouts/application.html.slim - -// JS -import Sortable from 'sortablejs' -window.Sortable = Sortable; diff --git a/app/javascript/packs/stylesheets.scss b/app/javascript/packs/stylesheets.scss deleted file mode 100644 index 3e9cbc24..00000000 --- a/app/javascript/packs/stylesheets.scss +++ /dev/null @@ -1,34 +0,0 @@ -/* eslint no-console:0 */ -// This file is automatically compiled by Webpack, along with any other files -// present in this directory. You're encouraged to place your actual application logic in -// a relevant structure within app/javascript and only use these pack files to reference -// that code so it'll be compiled. -// -// To reference this file, add <%= stylesheet_pack_tag 'stylesheets' %> to the appropriate -// layout file, like app/views/layouts/application.html.slim - -$web-font-path: ''; -@import '~bootswatch/dist/yeti/variables'; -@import '~bootstrap/scss/bootstrap'; -@import '~bootswatch/dist/yeti/bootswatch'; -$fa-font-path: '~@fortawesome/fontawesome-free/webfonts/'; -// Remove lines below and re-include overall fontawesome in v6.2+ -// See https://github.com/FortAwesome/Font-Awesome/issues/19237 -@import '~@fortawesome/fontawesome-free/scss/functions'; -@import '~@fortawesome/fontawesome-free/scss/variables'; -@import '~@fortawesome/fontawesome-free/scss/mixins'; -@import '~@fortawesome/fontawesome-free/scss/core'; -@import '~@fortawesome/fontawesome-free/scss/sizing'; -@import '~@fortawesome/fontawesome-free/scss/fixed-width'; -@import '~@fortawesome/fontawesome-free/scss/bordered-pulled'; -@import '~@fortawesome/fontawesome-free/scss/animated'; -@import '~@fortawesome/fontawesome-free/scss/rotated-flipped'; -@import '~@fortawesome/fontawesome-free/scss/stacked'; -@import '~@fortawesome/fontawesome-free/scss/icons'; -@import '~@fortawesome/fontawesome-free/scss/screen-reader'; -// @import '~@fortawesome/fontawesome-free/scss/fontawesome'; -@import '~@fortawesome/fontawesome-free/scss/solid'; -@import '~@fortawesome/fontawesome-free/scss/regular'; -@import '~@fortawesome/fontawesome-free/scss/v4-shims'; -$opensans-path: '~opensans-webkit/fonts/'; -@import '~opensans-webkit/src/sass/open-sans'; diff --git a/app/javascript/packs/vis.js b/app/javascript/packs/vis.js deleted file mode 100644 index a221b6fe..00000000 --- a/app/javascript/packs/vis.js +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint no-console:0 */ -// This file is automatically compiled by Webpack, along with any other files -// present in this directory. You're encouraged to place your actual application logic in -// a relevant structure within app/javascript and only use these pack files to reference -// that code so it'll be compiled. -// -// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate -// layout file, like app/views/layouts/application.html.slim - -// JS -import 'vis' -window.vis = vis; - -// CSS -import 'vis/dist/vis.min.css' diff --git a/app/javascript/sortable.js b/app/javascript/sortable.js new file mode 100644 index 00000000..91a7b931 --- /dev/null +++ b/app/javascript/sortable.js @@ -0,0 +1,5 @@ +/* eslint no-console:0 */ + +// JS +import Sortable from 'sortablejs' +window.Sortable = Sortable; diff --git a/app/javascript/stylesheets.scss b/app/javascript/stylesheets.scss new file mode 100644 index 00000000..93ccd5d5 --- /dev/null +++ b/app/javascript/stylesheets.scss @@ -0,0 +1,34 @@ +/* eslint no-console:0 */ +// This file is automatically compiled by Webpack, along with any other files +// present in this directory. You're encouraged to place your actual application logic in +// a relevant structure within app/javascript and only use these pack files to reference +// that code so it'll be compiled. +// +// To reference this file, add <%= stylesheet_pack_tag 'stylesheets' %> to the appropriate +// layout file, like app/views/layouts/application.html.slim + +$web-font-path: '//'; +@import '../../node_modules/bootswatch/dist/yeti/variables'; +@import '../../node_modules/bootstrap/scss/bootstrap'; +@import '../../node_modules/bootswatch/dist/yeti/bootswatch'; +$fa-font-path: '~@fortawesome/fontawesome-free/webfonts/'; +// Remove lines below and re-include overall fontawesome in v6.2+ +// See https://github.com/FortAwesome/Font-Awesome/issues/19237 +@import '../../node_modules/@fortawesome/fontawesome-free/scss/functions'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/variables'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/mixins'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/core'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/sizing'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/fixed-width'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/bordered-pulled'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/animated'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/rotated-flipped'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/stacked'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/icons'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/screen-reader'; +// @import '~@fortawesome/fontawesome-free/scss/fontawesome'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/solid'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/regular'; +@import '../../node_modules/@fortawesome/fontawesome-free/scss/v4-shims'; +$opensans-path: '~opensans-webkit/fonts/'; +@import '../../node_modules/opensans-webkit/src/sass/open-sans'; diff --git a/app/javascript/vis.js b/app/javascript/vis.js new file mode 100644 index 00000000..0181b008 --- /dev/null +++ b/app/javascript/vis.js @@ -0,0 +1,8 @@ +/* eslint no-console:0 */ + +// JS +import 'vis' +window.vis = vis; + +// CSS +import 'vis/dist/vis.min.css' diff --git a/app/views/admin/dashboard/show.html.slim b/app/views/admin/dashboard/show.html.slim index 4925478f..9b96bb57 100644 --- a/app/views/admin/dashboard/show.html.slim +++ b/app/views/admin/dashboard/show.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, the global variable `vis` might be uninitialized in the assets (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('vis', 'data-turbolinks-track': true) - = stylesheet_pack_tag('vis', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('vis') + - append_stylesheet_pack_tag('vis') h1 = t('breadcrumbs.dashboard.show') diff --git a/app/views/exercises/_form.html.slim b/app/views/exercises/_form.html.slim index cff5336e..4fab78d2 100644 --- a/app/views/exercises/_form.html.slim +++ b/app/views/exercises/_form.html.slim @@ -2,7 +2,7 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('sortable', 'data-turbolinks-track': true) + - append_javascript_pack_tag('sortable') - execution_environments = ExecutionEnvironment.where('file_type_id IS NOT NULL').select(:file_type_id, :id) - file_types = FileType.where('file_extension IS NOT NULL').select(:file_extension, :id) diff --git a/app/views/exercises/_tips_content.html.slim b/app/views/exercises/_tips_content.html.slim index eb2d67ef..8424d378 100644 --- a/app/views/exercises/_tips_content.html.slim +++ b/app/views/exercises/_tips_content.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('highlight', 'data-turbolinks-track': true) - = stylesheet_pack_tag('highlight', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('highlight') + - append_stylesheet_pack_tag('highlight') #tips.card.mt-2 role="tab" style="display: block;" .card-header.py-2 diff --git a/app/views/exercises/show.html.slim b/app/views/exercises/show.html.slim index d6afbd0f..b9e3f8e3 100644 --- a/app/views/exercises/show.html.slim +++ b/app/views/exercises/show.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('highlight', 'data-turbolinks-track': true) - = stylesheet_pack_tag('highlight', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('highlight') + - append_stylesheet_pack_tag('highlight') h1.d-inline-block = @exercise .btn-group.float-right diff --git a/app/views/exercises/statistics.html.slim b/app/views/exercises/statistics.html.slim index 0fc2a847..550d4620 100644 --- a/app/views/exercises/statistics.html.slim +++ b/app/views/exercises/statistics.html.slim @@ -2,7 +2,7 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('d3-tip', 'data-turbolinks-track': true) + - append_javascript_pack_tag('d3-tip') h1 = @exercise = row(label: '.participants', value: @exercise.users.distinct.count) diff --git a/app/views/exercises/study_group_dashboard.html.slim b/app/views/exercises/study_group_dashboard.html.slim index e5ad5569..f2e281ef 100644 --- a/app/views/exercises/study_group_dashboard.html.slim +++ b/app/views/exercises/study_group_dashboard.html.slim @@ -2,7 +2,7 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('d3-tip', 'data-turbolinks-track': true) + - append_javascript_pack_tag('d3-tip') h1 = t('.live_dashboard') diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 64af76ff..6145f52d 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -9,10 +9,9 @@ html lang="#{I18n.locale || I18n.default_locale}" = favicon_link_tag('/favicon.png', type: 'image/png') = favicon_link_tag('/favicon.png', rel: 'apple-touch-icon', type: 'image/png') = action_cable_meta_tag - = stylesheet_pack_tag('application', media: 'all', 'data-turbolinks-track': true) - = stylesheet_pack_tag('stylesheets', media: 'all', 'data-turbolinks-track': true) + = stylesheet_pack_tag('application', 'stylesheets', media: 'all', 'data-turbolinks-track': true) = stylesheet_link_tag('application', media: 'all', 'data-turbolinks-track': true) - = javascript_pack_tag('application', 'data-turbolinks-track': true) + = javascript_pack_tag('application', 'data-turbolinks-track': true, defer: false) = javascript_include_tag('application', 'data-turbolinks-track': true) = yield(:head) = csrf_meta_tags diff --git a/app/views/statistics/activity_history.html.slim b/app/views/statistics/activity_history.html.slim index e39e26fa..7e1435db 100644 --- a/app/views/statistics/activity_history.html.slim +++ b/app/views/statistics/activity_history.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, the global variable `vis` might be uninitialized in the assets (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('vis', 'data-turbolinks-track': true) - = stylesheet_pack_tag('vis', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('vis') + - append_stylesheet_pack_tag('vis') .group .title diff --git a/app/views/statistics/graphs.html.slim b/app/views/statistics/graphs.html.slim index f390f7d2..dbefd5ad 100644 --- a/app/views/statistics/graphs.html.slim +++ b/app/views/statistics/graphs.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, the global variable `vis` might be uninitialized in the assets (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('vis', 'data-turbolinks-track': true) - = stylesheet_pack_tag('vis', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('vis') + - append_stylesheet_pack_tag('vis') .group .title diff --git a/app/views/submissions/show.html.slim b/app/views/submissions/show.html.slim index 5f762480..19b60d77 100644 --- a/app/views/submissions/show.html.slim +++ b/app/views/submissions/show.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('highlight', 'data-turbolinks-track': true) - = stylesheet_pack_tag('highlight', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('highlight') + - append_stylesheet_pack_tag('highlight') h1 = @submission diff --git a/app/views/tips/show.html.slim b/app/views/tips/show.html.slim index a4528da4..be52d4c5 100644 --- a/app/views/tips/show.html.slim +++ b/app/views/tips/show.html.slim @@ -2,8 +2,8 @@ // Force a full page reload, see https://github.com/turbolinks/turbolinks/issues/326. Otherwise, code might not be highlighted correctly (race condition) meta name='turbolinks-visit-control' content='reload' - = javascript_pack_tag('highlight', 'data-turbolinks-track': true) - = stylesheet_pack_tag('highlight', media: 'all', 'data-turbolinks-track': true) + - append_javascript_pack_tag('highlight') + - append_stylesheet_pack_tag('highlight') h1 = @tip.to_s diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 29eea741..00000000 --- a/babel.config.js +++ /dev/null @@ -1,83 +0,0 @@ -module.exports = function(api) { - var validEnv = ['development', 'test', 'production'] - var currentEnv = api.env() - var isDevelopmentEnv = api.env('development') - var isProductionEnv = api.env('production') - var isTestEnv = api.env('test') - - if (!validEnv.includes(currentEnv)) { - throw new Error( - 'Please specify a valid `NODE_ENV` or ' + - '`BABEL_ENV` environment variables. Valid values are "development", ' + - '"test", and "production". Instead, received: ' + - JSON.stringify(currentEnv) + - '.' - ) - } - - return { - presets: [ - isTestEnv && [ - '@babel/preset-env', - { - targets: { - node: 'current' - } - } - ], - (isProductionEnv || isDevelopmentEnv) && [ - '@babel/preset-env', - { - forceAllTransforms: true, - useBuiltIns: 'entry', - corejs: 3, - modules: false, - exclude: ['transform-typeof-symbol'] - } - ] - ].filter(Boolean), - plugins: [ - '@babel/plugin-transform-for-of', - 'babel-plugin-macros', - '@babel/plugin-syntax-dynamic-import', - isTestEnv && 'babel-plugin-dynamic-import-node', - '@babel/plugin-transform-destructuring', - [ - '@babel/plugin-proposal-class-properties', - { - loose: true - } - ], - [ - '@babel/plugin-proposal-private-methods', - { - loose: true - } - ], - [ - '@babel/plugin-proposal-private-property-in-object', - { - loose: true - } - ], - [ - '@babel/plugin-proposal-object-rest-spread', - { - useBuiltIns: true - } - ], - [ - '@babel/plugin-transform-runtime', - { - helpers: false - } - ], - [ - '@babel/plugin-transform-regenerator', - { - async: false - } - ] - ].filter(Boolean) - } -} diff --git a/bin/webpack b/bin/webpacker similarity index 55% rename from bin/webpack rename to bin/webpacker index 1031168d..47ef0c4c 100755 --- a/bin/webpack +++ b/bin/webpacker @@ -1,17 +1,14 @@ #!/usr/bin/env ruby -ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" -ENV["NODE_ENV"] ||= "development" - require "pathname" -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", - Pathname.new(__FILE__).realpath) - require "bundler/setup" - require "webpacker" require "webpacker/webpack_runner" +ENV["RAILS_ENV"] ||= "development" +ENV["NODE_ENV"] ||= ENV["RAILS_ENV"] +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", Pathname.new(__FILE__).realpath) + APP_ROOT = File.expand_path("..", __dir__) Dir.chdir(APP_ROOT) do Webpacker::WebpackRunner.run(ARGV) diff --git a/bin/webpack-dev-server b/bin/webpacker-dev-server similarity index 78% rename from bin/webpack-dev-server rename to bin/webpacker-dev-server index dd966273..6629114a 100755 --- a/bin/webpack-dev-server +++ b/bin/webpacker-dev-server @@ -1,7 +1,7 @@ #!/usr/bin/env ruby -ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" -ENV["NODE_ENV"] ||= "development" +ENV["RAILS_ENV"] ||= "development" +ENV["NODE_ENV"] ||= ENV["RAILS_ENV"] require "pathname" ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", diff --git a/bin/yarn b/bin/yarn index 9fab2c35..fe733862 100755 --- a/bin/yarn +++ b/bin/yarn @@ -1,9 +1,10 @@ #!/usr/bin/env ruby -APP_ROOT = File.expand_path('..', __dir__) + +APP_ROOT = File.expand_path("..", __dir__) Dir.chdir(APP_ROOT) do yarn = ENV["PATH"].split(File::PATH_SEPARATOR). select { |dir| File.expand_path(dir) != __dir__ }. - product(["yarn", "yarn.cmd", "yarn.ps1"]). + product(["yarn", "yarnpkg", "yarn.cmd", "yarn.ps1"]). map { |dir, file| File.expand_path(file, dir) }. find { |file| File.executable?(file) } diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index fa603a4e..83952756 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -20,3 +20,6 @@ Rails.application.config.assets.precompile += %w[markdown-buttons.png] Rails.application.config.assets.configure do |env| env.export_concurrent = false end + +# Add node_modules folder to the asset load path. +Rails.application.config.assets.paths << Rails.root.join('node_modules') diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 9c49284a..f87cb06b 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -7,6 +7,9 @@ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy # Rails.application.config.content_security_policy do |policy| +# # If you are using webpack-dev-server then specify webpack-dev-server host +# policy.connect_src :self, :https, "http://localhost:3035", "ws://localhost:3035" if Rails.env.development? + # policy.default_src :self, :https # policy.font_src :self, :https, :data # policy.img_src :self, :https, :data diff --git a/config/webpack/environment.js b/config/webpack/environment.js deleted file mode 100644 index 94f7ba80..00000000 --- a/config/webpack/environment.js +++ /dev/null @@ -1,47 +0,0 @@ -/* -./config/webpack/environment.js -Info for this file can be found -github.com/rails/webpacker/blob/master/docs/webpack.md -*/ - -const {environment} = require('@rails/webpacker') -const {merge} = require('webpack-merge') -const webpack = require('webpack') -const erb = require('./loaders/erb') - -// Add an additional plugin of your choosing : ProvidePlugin -environment.plugins.prepend('Provide', new webpack.ProvidePlugin({ - $: 'jquery', - JQuery: 'jquery', - jquery: 'jquery', - 'window.Tether': "tether", - Popper: ['popper.js', 'default'], // for Bootstrap 4 - _: 'underscore', - vis: 'vis', - hljs: 'highlight.js', - d3: 'd3', - Sentry: '@sentry/browser', - Sortable: 'sortablejs', - }) -) - -// This setting will change the absolute path used to refer -// external files (images, fonts, ...) in the generated assets -const relative_url_root = process.env.RAILS_RELATIVE_URL_ROOT || ''; -const public_output_path = environment.config.output.publicPath; -environment.loaders.get('file') - .use.find(item => item.loader === 'file-loader') - .options.publicPath = relative_url_root + public_output_path; - -environment.loaders.append('erb', erb) - -const envConfig = module.exports = environment -const aliasConfig = module.exports = { - resolve: { - alias: { - jquery: 'jquery/src/jquery', - } - } -} - -module.exports = merge(envConfig.toWebpackConfig(), aliasConfig) diff --git a/config/webpack/webpack.config.js b/config/webpack/webpack.config.js new file mode 100644 index 00000000..f1766ea5 --- /dev/null +++ b/config/webpack/webpack.config.js @@ -0,0 +1,47 @@ +// See the shakacode/shakapacker README and docs directory for advice on customizing your webpackConfig. + +const { webpackConfig, merge } = require('shakapacker') +const webpack = require('webpack'); + +// Custom ERB loader to disable Spring and prevent crashes +const erb = require("./loaders/erb"); + +// This setting will change the absolute path used to refer +// external files (images, fonts, ...) in the generated assets +const relative_url_root = process.env.RAILS_RELATIVE_URL_ROOT || ''; +const public_output_path = webpackConfig.output.publicPath; + +const envConfig = module.exports = { + output: { + publicPath: relative_url_root + public_output_path + }, + module: { + rules: [ + erb + ] + }, + resolve: { + alias: { + $: 'jquery/src/jquery', + jquery: 'jquery/src/jquery', + } + }, + plugins: [ + new webpack.ProvidePlugin({ + $: 'jquery', + JQuery: 'jquery', + jQuery: 'jquery', + jquery: 'jquery', + 'window.Tether': "tether", + Popper: ['popper.js', 'default'], // for Bootstrap 4 + _: 'underscore', + vis: 'vis', + hljs: 'highlight.js', + d3: 'd3', + Sentry: '@sentry/browser', + Sortable: 'sortablejs', + }) + ] +} + +module.exports = merge(webpackConfig, envConfig) diff --git a/config/webpacker.yml b/config/webpacker.yml index 549cd1d8..ca3534f3 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -1,52 +1,20 @@ -# Note: You must restart bin/webpack-dev-server for changes to take effect +# Note: You must restart bin/webpacker-dev-server for changes to take effect default: &default source_path: app/javascript - source_entry_path: packs + source_entry_path: / public_root_path: public public_output_path: packs - cache_path: tmp/cache/webpacker - webpack_compile_output: false + cache_path: tmp/webpacker + webpack_compile_output: true - # Additional paths webpack should lookup modules + # Additional paths webpack should look up modules # ['app/assets', 'engine/foo/app/assets'] additional_paths: [] # Reload manifest.json on all requests so we reload latest compiled packs cache_manifest: false - # Extract and emit a css file - extract_css: true - - static_assets_extensions: - - .jpg - - .jpeg - - .png - - .gif - - .tiff - - .ico - - .svg - - .eot - - .otf - - .ttf - - .woff - - .woff2 - - extensions: - - .mjs - - .js - - .sass - - .scss - - .css - - .module.sass - - .module.scss - - .module.css - - .png - - .svg - - .gif - - .jpeg - - .jpg - development: <<: *default compile: true @@ -56,21 +24,28 @@ development: https: false host: localhost port: 3035 - public: localhost:3035 + # Hot Module Replacement updates modules while the application is running without a full reload hmr: false - # Inline should be set to true if using HMR - inline: true - overlay: true + # Defaults to the inverse of hmr. Uncomment to manually set this. + # live_reload: true + client: + # Should we show a full-screen overlay in the browser when there are compiler errors or warnings? + overlay: true + # May also be a string + # webSocketURL: + # hostname: "0.0.0.0" + # pathname: "/ws" + # port: 8080 + # Should we use gzip compression? compress: true - disable_host_check: true - use_local_ip: false - quiet: false - pretty: false + # Note that apps that do not check the host are vulnerable to DNS rebinding attacks + allowed_hosts: "all" + pretty: true headers: 'Access-Control-Allow-Origin': '*' - watch_options: - ignored: '**/node_modules/**' - + static: + watch: + ignored: '**/node_modules/**' test: <<: *default @@ -85,8 +60,5 @@ production: # Production depends on precompilation of packs prior to booting for performance. compile: false - # Extract and emit a css file - extract_css: true - # Cache manifest.json for performance cache_manifest: true diff --git a/docs/LOCAL_SETUP.md b/docs/LOCAL_SETUP.md index 27796704..ce83a6eb 100644 --- a/docs/LOCAL_SETUP.md +++ b/docs/LOCAL_SETUP.md @@ -76,7 +76,7 @@ After that make sure to configure the corresponding execution environment for th This project uses `webpacker` to integrate Webpack with Rails to deliver Frontend assets. During development, the `webpack-dev-server` automatically launches together with the Rails server if not specified otherwise. In case of missing JavaScript or stylesheets or for hot reloading in the browser, you might want to start the `webpack-dev-server` manually *before starting Rails*: ```shell script -./bin/webpack-dev-server +./bin/webpacker-dev-server ``` This will launch a dedicated server on port 3035 (default setting) and allow incoming WebSocket connections from your browser. diff --git a/package.json b/package.json index e7b3a4c8..3c78c0d2 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,21 @@ { + "name": "codeocean", + "private": true, "dependencies": { + "@babel/core": "7", + "@babel/plugin-transform-runtime": "7", + "@babel/preset-env": "7", + "@babel/runtime": "7", "@fortawesome/fontawesome-free": "^6.1.2", - "@rails/webpacker": "^5.4.3", "@sentry/browser": "^6.11.0", + "@webpack-cli/serve": "^1.7.0", + "babel-loader": "8", "bootstrap": "^4.6.2", "bootswatch": "^4.6.0", "chosen-js": "^1.8.7", + "compression-webpack-plugin": "9", + "css-loader": "^6.7.1", + "css-minimizer-webpack-plugin": "^4.0.0", "d3": "^7.6.1", "d3-tip": "^0.9.1", "highlight.js": "^11.5.1", @@ -14,19 +24,37 @@ "jquery-ui": "^1.13.1", "jquery-ujs": "^1.2.3", "jstree": "^3.3.12", + "mini-css-extract-plugin": "^2.6.1", "opensans-webkit": "^1.1.0", + "pnp-webpack-plugin": "1", "popper.js": "^1.16.1", "rails-erb-loader": "^5.5.2", + "sass": "^1.54.4", + "sass-loader": "^13.0.2", + "shakapacker": "^6.0.0-rc.14", "sortablejs": "^1.15.0", + "style-loader": "^3.3.1", + "terser-webpack-plugin": "5", "underscore": "^1.13.4", "vis": "^4.21.0", - "webpack-merge": "^5.8.0" + "webpack": "5", + "webpack-assets-manifest": "5", + "webpack-cli": "4", + "webpack-merge": "5" }, "devDependencies": { - "webpack-dev-server": "^3.11.2" + "webpack-dev-server": "^4.10.0" }, + "babel": { + "presets": [ + "./node_modules/shakapacker/package/babel/preset.js" + ] + }, + "browserslist": [ + "defaults" + ], "scripts": { - "webpack": "./bin/webpack", - "webpack-dev-server": "./bin/webpack-dev-server" + "webpack": "./bin/webpacker", + "webpack-dev-server": "./bin/webpacker-dev-server" } } diff --git a/yarn.lock b/yarn.lock index 963b7e6a..e3c3dcef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,7 +10,7 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== @@ -22,7 +22,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== -"@babel/core@^7.15.0": +"@babel/core@7": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== @@ -293,7 +293,7 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.18.6": +"@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -358,7 +358,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.18.9": +"@babel/plugin-proposal-object-rest-spread@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== @@ -568,7 +568,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.18.9": +"@babel/plugin-transform-destructuring@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== @@ -703,7 +703,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.14.5", "@babel/plugin-transform-regenerator@^7.18.6": +"@babel/plugin-transform-regenerator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== @@ -718,7 +718,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-runtime@^7.15.0": +"@babel/plugin-transform-runtime@7": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz#37d14d1fa810a368fd635d4d1476c0154144a96f" integrity sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ== @@ -781,7 +781,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.15.0": +"@babel/preset-env@7": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== @@ -873,7 +873,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": +"@babel/runtime@7", "@babel/runtime@^7.8.4": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== @@ -914,21 +914,16 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@csstools/convert-colors@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@discoveryjs/json-ext@^0.5.0": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== "@fortawesome/fontawesome-free@^6.1.2": version "6.1.2" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.2.tgz#d18880eddeadd42b1c64cb559f2f3d13d47a4a64" integrity sha512-XwWADtfdSN73/udaFm+1mnGIj/ShDZNFMe/PRoqv3FhQ4GNI2PUN70yFTPsjq65Lw2C9i4TG5/hTbxXIXVCiqQ== -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -969,7 +964,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": version "0.3.14" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== @@ -977,65 +972,10 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@rails/webpacker@^5.4.3": - version "5.4.3" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.3.tgz#cfe2d8faffe7db5001bad50a1534408b4f2efb2f" - integrity sha512-tEM8tpUtfx6FxKwcuQ9+v6pzgqM5LeAdhT6IJ4Te3BPKFO1xrGrXugqeRuZ+gE8ASDZRTOK6yuQkapOpuX5JdA== - dependencies: - "@babel/core" "^7.15.0" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-runtime" "^7.15.0" - "@babel/preset-env" "^7.15.0" - "@babel/runtime" "^7.15.3" - babel-loader "^8.2.2" - babel-plugin-dynamic-import-node "^2.3.3" - babel-plugin-macros "^2.8.0" - case-sensitive-paths-webpack-plugin "^2.4.0" - compression-webpack-plugin "^4.0.1" - core-js "^3.16.2" - css-loader "^3.6.0" - file-loader "^6.2.0" - flatted "^3.2.2" - glob "^7.1.7" - js-yaml "^3.14.1" - mini-css-extract-plugin "^0.9.0" - optimize-css-assets-webpack-plugin "^5.0.8" - path-complete-extname "^1.0.0" - pnp-webpack-plugin "^1.7.0" - postcss-flexbugs-fixes "^4.2.1" - postcss-import "^12.0.1" - postcss-loader "^3.0.0" - postcss-preset-env "^6.7.0" - postcss-safe-parser "^4.0.2" - regenerator-runtime "^0.13.9" - sass "^1.38.0" - sass-loader "10.1.1" - style-loader "^1.3.0" - terser-webpack-plugin "^4.2.3" - webpack "^4.46.0" - webpack-assets-manifest "^3.1.1" - webpack-cli "^3.3.12" - webpack-sources "^1.4.3" +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== "@sentry/browser@^6.11.0": version "6.19.7" @@ -1089,183 +1029,289 @@ "@sentry/types" "6.19.7" tslib "^1.9.3" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== dependencies: - "@types/minimatch" "*" + "@types/connect" "*" "@types/node" "*" -"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.3": + version "3.7.4" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" + integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.4.5" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.5.tgz#acdfb7dd36b91cc5d812d7c093811a8f3d9b31e4" + integrity sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@^0.0.51": + version "0.0.51" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.30" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04" + integrity sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/http-proxy@^1.17.8": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + dependencies: + "@types/node" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/minimatch@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/node@*": version "18.6.5" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.5.tgz#06caea822caf9e59d5034b695186ee74154d2802" integrity sha512-Xjt5ZGUa5WusGZJ4WJPbOT8QOqp6nDynVFRKcUt32bOgvXEoc6o085WNkYTMO7ifAj2isEfQQ2cseE+wT6jsRw== -"@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/qs@*": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== -"@types/q@^1.5.1": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" - integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/serve-index@^1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278" + integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg== dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" + "@types/express" "*" -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== +"@types/serve-static@*", "@types/serve-static@^1.13.10": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== dependencies: - "@webassemblyjs/wast-printer" "1.9.0" + "@types/mime" "*" + "@types/node" "*" -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== +"@types/sockjs@^0.3.33": + version "0.3.33" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f" + integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw== dependencies: - "@webassemblyjs/ast" "1.9.0" + "@types/node" "*" -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== +"@types/ws@^8.5.1": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" + "@types/node" "*" -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" + "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== +"@webpack-cli/configtest@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== + +"@webpack-cli/info@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1285,35 +1331,36 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn@^6.4.1: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== -acorn@^8.5.0: +acorn@^8.5.0, acorn@^8.7.1: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" + ajv "^8.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1323,45 +1370,34 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== +ajv@^8.0.0, ajv@^8.8.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-html-community@0.0.8: +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" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" + color-convert "^2.0.1" anymatch@~3.1.2: version "3.1.2" @@ -1371,130 +1407,22 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-flatten@^2.1.0: +array-flatten@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.reduce@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz#8167e80089f78bff70a99e20bd4201d4663b0a6f" - integrity sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.6.1: - version "9.8.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" - integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== - dependencies: - browserslist "^4.12.0" - caniuse-lite "^1.0.30001109" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - picocolors "^0.2.1" - postcss "^7.0.32" - postcss-value-parser "^4.1.0" - -babel-loader@^8.2.2: +babel-loader@8: version "8.2.5" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== @@ -1511,15 +1439,6 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-macros@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== - dependencies: - "@babel/runtime" "^7.7.2" - cosmiconfig "^6.0.0" - resolve "^1.12.0" - babel-plugin-polyfill-corejs2@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" @@ -1549,24 +1468,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -1582,38 +1483,11 @@ bignumber.js@*: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - body-parser@1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" @@ -1632,19 +1506,17 @@ body-parser@1.20.0: type-is "~1.6.18" unpipe "1.0.0" -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg== +bonjour-service@^1.0.11: + version "1.0.13" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.13.tgz#4ac003dc1626023252d58adf2946f57e5da450c1" + integrity sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA== dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" + array-flatten "^2.1.2" dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" -boolbase@^1.0.0, boolbase@~1.0.0: +boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== @@ -1667,96 +1539,14 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.20.2, browserslist@^4.21.3, browserslist@^4.6.4: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.3: version "4.21.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== @@ -1771,30 +1561,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -1805,66 +1571,6 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1873,35 +1579,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - caniuse-api@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" @@ -1912,17 +1589,12 @@ 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.30001370: - version "1.0.30001374" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz#3dab138e3f5485ba2e74bd13eca7fe1037ce6f57" - integrity sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370: + version "1.0.30001375" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz#8e73bc3d1a4c800beb39f3163bf0190d7e5d7672" + integrity sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw== -case-sensitive-paths-webpack-plugin@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" - integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== - -chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1931,7 +1603,15 @@ chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: +chalk@^4.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1946,77 +1626,16 @@ chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: optionalDependencies: fsevents "~2.3.2" -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - chosen-js@^1.8.7: version "1.8.7" resolved "https://registry.yarnpkg.com/chosen-js/-/chosen-js-1.8.7.tgz#9bfa5597f5081d602ff4ae904af9aef33265bb1d" integrity sha512-eVdrZJ2U5ISdObkgsi0od5vIJdLwq1P1Xa/Vj/mgxkMZf14DlgobfB6nrlFi3kW4kkvKLsKk4NDqZj1MU1DCpw== -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -2026,57 +1645,41 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@^1.0.0: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -color@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== - dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -commander@7: +commander@7, commander@^7.0.0, commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== @@ -2091,11 +1694,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -2103,16 +1701,13 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.43.0 < 2" -compression-webpack-plugin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-4.0.1.tgz#33eda97f1170dd38c5556771de10f34245aa0274" - integrity sha512-0mg6PgwTsUe5LEcUrOu3ob32vraDx2VdbMGAT1PARcOV+UJWDYZFdkSo6RbHoGQ061mmmkC7XpRKOlvwm/gzJQ== +compression-webpack-plugin@9: + version "9.2.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-9.2.0.tgz#57fd539d17c5907eebdeb4e83dcfe2d7eceb9ef6" + integrity sha512-R/Oi+2+UHotGfu72fJiRoVpuRifZT0tTC6UqFD/DUo+mv8dbOow9rVOuTvDv5nPPm3GZhHL/fKkwxwIHnJ8Nyw== dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - schema-utils "^2.7.0" - serialize-javascript "^4.0.0" - webpack-sources "^1.4.3" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" compression@^1.7.4: version "1.7.4" @@ -2132,30 +1727,10 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== +connect-history-api-fallback@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" + integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== content-disposition@0.5.4: version "0.5.4" @@ -2186,23 +1761,6 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - core-js-compat@^3.21.0, core-js-compat@^3.22.1: version "3.24.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.24.1.tgz#d1af84a17e18dfdd401ee39da9996f9a7ba887de" @@ -2211,174 +1769,63 @@ core-js-compat@^3.21.0, core-js-compat@^3.22.1: browserslist "^4.21.3" semver "7.0.0" -core-js@^3.16.2: - version "3.24.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" - integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== +css-declaration-sorter@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz#72ebd995c8f4532ff0036631f7365cce9759df14" + integrity sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og== + +css-loader@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e" + integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw== dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" + icss-utils "^5.1.0" + postcss "^8.4.7" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.2.0" + semver "^7.3.5" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== +css-minimizer-webpack-plugin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz#e11800388c19c2b7442c39cc78ac8ae3675c9605" + integrity sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA== dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-blank-pseudo@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== - dependencies: - postcss "^7.0.5" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q== - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-has-pseudo@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^5.0.0-rc.4" - -css-loader@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.32" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.2.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^2.7.0" - semver "^6.3.0" - -css-prefers-color-scheme@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== - dependencies: - postcss "^7.0.5" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" + cssnano "^5.1.8" + jest-worker "^27.5.1" + postcss "^8.4.13" + schema-utils "^4.0.0" + serialize-javascript "^6.0.0" source-map "^0.6.1" -css-tree@^1.1.2: +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -2386,106 +1833,72 @@ css-tree@^1.1.2: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssdb@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" - integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== +cssnano-preset-default@^5.2.12: + version "5.2.12" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz#ebe6596ec7030e62c3eb2b3c09f533c0644a9a97" + integrity sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew== dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.3" - postcss-unique-selectors "^4.0.1" + css-declaration-sorter "^6.3.0" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.2" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.6" + postcss-merge-rules "^5.1.2" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.3" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.0" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.0" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw== +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw== - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== +cssnano@^5.1.8: + version "5.1.12" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.12.tgz#bcd0b64d6be8692de79332c501daa7ece969816c" + integrity sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ== dependencies: - postcss "^7.0.0" + cssnano-preset-default "^5.2.12" + lilconfig "^2.0.3" + yaml "^1.10.2" -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.1.10: - version "4.1.11" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" - integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.8" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: +csso@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: css-tree "^1.1.2" -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== - "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.0.tgz#15bf96cd9b7333e02eb8de8053d78962eafcff14" @@ -2748,20 +2161,13 @@ d3@^7.6.1: d3-transition "3" d3-zoom "3" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - debug@^4.1.0, debug@^4.1.1: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -2769,37 +2175,24 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +deepmerge@^4.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - -deep-equal@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== +default-gateway@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" + execa "^5.0.0" -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4: +define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== @@ -2807,41 +2200,6 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - delaunator@5: version "5.0.0" resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" @@ -2859,105 +2217,57 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== - detect-node@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg== -dns-packet@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" - integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== +dns-packet@^5.2.2: + version "5.4.0" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.4.0.tgz#1f88477cf9f27e78a213fb6d118ae38e759a879b" + integrity sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g== dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" + "@leichtgewicht/ip-codec" "^2.0.1" -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ== - dependencies: - buffer-indexof "^1.0.0" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" + domhandler "^4.2.0" entities "^2.0.0" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: +domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== +domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: - is-obj "^2.0.0" - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" ee-first@1.1.1: version "1.1.1" @@ -2965,33 +2275,15 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.202: - version "1.4.212" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.212.tgz#20cd48e88288fd2428138c108804edb1961bf559" - integrity sha512-LjQUg1SpLj2GfyaPDVBUHdhmlDU1vDB4f0mJWSGkISoXQrn5/lH3ECPCuo2Bkvf6Y30wO+b69te+rZK/llZmjg== - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" + version "1.4.215" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.215.tgz#553372e74bde3164290d61f6792f93e443b16733" + integrity sha512-vqZxT8C5mlDZ//hQFhneHmOLnj1LhbzxV0+I1yqHV8SB1Oo4Y5Ne9+qQhwHl7O1s9s9cRuo2l5CoLEHdhMTwZg== emitter-component@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/emitter-component/-/emitter-component-1.1.1.tgz#065e2dbed6959bf470679edabeaf7981d1003ab6" integrity sha512-G+mpdiAySMuB7kesVRLuyvYRqDmshB7ReKEVuyBPkzQlmiDiLrt7hHHIy4Aff552bgknVN7B2/d3lzhGO5dvpQ== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -3002,83 +2294,28 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== +enhanced-resolve@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== dependencies: - once "^1.4.0" - -enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.2.0" entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== - dependencies: - prr "~1.0.1" +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5, es-abstract@^1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" - unbox-primitive "^1.0.2" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== escalade@^3.1.1: version "3.1.1" @@ -3095,20 +2332,15 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== +eslint-scope@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - esrecurse "^4.1.0" + esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -3140,58 +2372,27 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" - integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== - dependencies: - homedir-polyfill "^1.0.1" - -express@^4.17.1: +express@^4.17.3: version "4.18.1" resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== @@ -3228,36 +2429,7 @@ express@^4.17.1: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -3267,41 +2439,18 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -faye-websocket@^0.11.3, faye-websocket@^0.11.4: +fastest-levenshtein@^1.0.12: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +faye-websocket@^0.11.3: version "0.11.4" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -file-loader@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" - integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -3322,15 +2471,6 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" @@ -3340,13 +2480,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3355,99 +2488,31 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flatted@^3.2.2: - version "3.2.6" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" - integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== - -flatten@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - follow-redirects@^1.0.0: version "1.15.1" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" +fs-monkey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -3458,32 +2523,12 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== @@ -3492,33 +2537,10 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.3" -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== glob-parent@~5.1.2: version "5.1.2" @@ -3527,7 +2549,12 @@ glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.3, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -3539,59 +2566,12 @@ glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -3606,11 +2586,6 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3628,99 +2603,23 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.3: +has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hex-color-regex@^1.1.0: - version "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.5.1: version "11.6.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.6.0.tgz#a50e9da05763f1bb0c1322c8f4f755242cff3f5a" integrity sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw== -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -3731,20 +2630,10 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A== - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA== - -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== http-deceiver@^1.2.7: version "1.2.7" @@ -3777,17 +2666,18 @@ http-parser-js@>=0.5.1: resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q== -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== +http-proxy-middleware@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f" + integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" + "@types/http-proxy" "^1.17.8" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" -http-proxy@^1.17.0: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -3796,10 +2686,10 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== i18n-js@^4.0.2: version "4.0.2" @@ -3823,85 +2713,23 @@ iconv-lite@0.6: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== immutable@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg== +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w== - dependencies: - resolve-from "^3.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== - -infer-owner@^1.0.3, infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" inflight@^1.0.4: version "1.0.6" @@ -3911,123 +2739,35 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - "internmap@1 - 2": version "2.0.3" resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== - -ip@^1.1.0, ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== - dependencies: - binary-extensions "^1.0.0" +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== is-binary-path@~2.1.0: version "2.1.0" @@ -4036,36 +2776,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA== - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.9.0: version "2.10.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" @@ -4073,203 +2783,53 @@ is-core-module@^2.9.0: dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== - dependencies: - kind-of "^3.0.2" +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-negative-zero@^2.0.2: - 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.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + is-docker "^2.0.0" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-weakref@^1.0.2: - 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.2" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== @@ -4279,26 +2839,19 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== +jest-worker@^27.4.5, jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" jquery-ui@^1.13.1: version "1.13.2" @@ -4322,13 +2875,12 @@ js-tokens@^4.0.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + argparse "^2.0.1" jsesc@^2.5.1: version "2.5.2" @@ -4340,12 +2892,7 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -4355,6 +2902,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -4379,31 +2931,7 @@ keycharm@^0.2.0: resolved "https://registry.yarnpkg.com/keycharm/-/keycharm-0.2.0.tgz#fa6ea2e43b90a68028843d27f2075d35a8c3e6f9" integrity sha512-i/XBRTiLqRConPKioy2oq45vbv04e8x59b0mnsIRQM+7Ec/8BC7UcL5pnC4FMeGb8KwG7q4wOMw7CtNZf5tiIg== -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -4413,25 +2941,17 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -last-call-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== - dependencies: - lodash "^4.17.5" - webpack-sources "^1.1.0" +lilconfig@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== -lines-and-columns@^1.1.6: - 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@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: +loader-utils@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== @@ -4449,14 +2969,6 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -4464,6 +2976,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lockfile@^1.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -4494,23 +3013,11 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@*, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.5: +lodash@*: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loglevel@^1.6.8: - 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" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4518,14 +3025,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -4533,57 +3032,22 @@ make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== +memfs@^3.4.3: + version "3.4.7" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a" + integrity sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw== dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" + fs-monkey "^1.0.3" merge-descriptors@1.0.1: version "1.0.1" @@ -4600,39 +3064,20 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== +micromatch@^4.0.2: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" + braces "^3.0.2" + picomatch "^2.3.1" mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -4644,31 +3089,23 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mini-css-extract-plugin@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== +mini-css-extract-plugin@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz#9a1251d15f2035c342d99a468ab9da7a0451b71e" + integrity sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" + schema-utils "^4.0.0" -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -4676,100 +3113,16 @@ minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.0: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - moment@^2.18.1: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4780,191 +3133,79 @@ ms@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.3, ms@^2.1.1: +ms@2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ== - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== +multicast-dns@^7.2.5: + version "7.2.5" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" + integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: - dns-packet "^1.3.1" + dns-packet "^5.2.2" thunky "^1.0.2" -nan@^2.12.1: - version "2.16.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-forge@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" - integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" +node-forge@^1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-releases@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" + path-key "^3.0.0" -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: - path-key "^2.0.0" + boolbase "^1.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.12.0, object-inspect@^1.9.0: +object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.2: +object.assign@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.3.tgz#d36b7700ddf0019abb6b1df1bb13f6445f79051f" integrity sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA== @@ -4974,32 +3215,6 @@ object.assign@^4.1.0, object.assign@^4.1.2: has-symbols "^1.0.3" object-keys "^1.1.1" -object.getownpropertydescriptors@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" - integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== - dependencies: - array.prototype.reduce "^1.0.4" - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -5017,64 +3232,41 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.0.9: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + opensans-webkit@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/opensans-webkit/-/opensans-webkit-1.1.0.tgz#51caf7baef5753edd49440a02f8a1f09f53a47dd" integrity sha512-BSbea2pqXg1XLOJkyCQO/X8vW6US4kmI/LWkcnExKaSf2oN8pfo6y3jtaWBgg98GWnDBIfjHL/tu2GjCvN6LHw== -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimize-css-assets-webpack-plugin@^5.0.8: - version "5.0.8" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" - integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== - dependencies: - cssnano "^4.1.10" - last-call-webpack-plugin "^3.0.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -5082,115 +3274,29 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +p-retry@^4.5.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - aggregate-error "^3.0.0" - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" + "@types/retry" "0.12.0" + retry "^0.13.1" p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== - parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-complete-extname@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b" integrity sha512-CVjiWcMRdGU8ubs08YQVzhutOR5DEfO97ipRIlOGMK5Bek5nQySknBpuxVAVJ36hseTNs+vdIcv57ZrWxH7zvg== -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -5201,15 +3307,10 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" @@ -5221,74 +3322,24 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pbkdf2@^3.0.3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" - integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -picocolors@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" - integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 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" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" -pnp-webpack-plugin@^1.7.0: +pnp-webpack-plugin@1: version "1.7.0" resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== @@ -5300,608 +3351,217 @@ popper.js@^1.16.1: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== -portfinder@^1.0.26: - version "1.0.29" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.29.tgz#d06ff886f4ff91274ed3e25c7e6b0c68d2a0735a" - integrity sha512-Z5+DarHWCKlufshB9Z1pN95oLtANoY5Wn9X3JGELGyQ6VhEcBfT2t+1fGUBq7MwUant6g/mqowH+4HifByPbiQ== +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== dependencies: - async "^2.6.4" - debug "^3.2.7" - mkdirp "^0.5.6" + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -postcss-attribute-case-insensitive@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== dependencies: - postcss "^7.0.2" - postcss-selector-parser "^6.0.2" - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-color-functional-notation@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-gray@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-color-hex-alpha@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== - dependencies: - postcss "^7.0.14" - postcss-values-parser "^2.0.1" - -postcss-color-mod-function@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-color-rebeccapurple@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-custom-media@^7.0.8: - version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== - dependencies: - postcss "^7.0.14" - -postcss-custom-properties@^8.0.11: - version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== - dependencies: - postcss "^7.0.17" - postcss-values-parser "^2.0.1" - -postcss-custom-selectors@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-dir-pseudo-class@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-double-position-gradients@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== - dependencies: - postcss "^7.0.5" - postcss-values-parser "^2.0.0" - -postcss-env-function@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-flexbugs-fixes@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== - dependencies: - postcss "^7.0.26" - -postcss-focus-visible@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== - dependencies: - postcss "^7.0.2" - -postcss-focus-within@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== - dependencies: - postcss "^7.0.2" - -postcss-font-variant@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" - integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== - dependencies: - postcss "^7.0.2" - -postcss-gap-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== - dependencies: - postcss "^7.0.2" - -postcss-image-set-function@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-import@^12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== - dependencies: - postcss "^7.0.1" - postcss-value-parser "^3.2.3" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-initial@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" - integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== - dependencies: - postcss "^7.0.2" - -postcss-lab-function@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== - dependencies: - "@csstools/convert-colors" "^1.4.0" - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-load-config@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" - integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-logical@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== - dependencies: - postcss "^7.0.2" - -postcss-media-minmax@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== - dependencies: - postcss "^7.0.2" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" + browserslist "^4.16.6" caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== +postcss-convert-values@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz#31586df4e184c2e8890e8b34a0b9355313f503ab" + integrity sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" + browserslist "^4.20.3" + postcss-value-parser "^4.2.0" -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== -postcss-modules-local-by-default@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" - integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== +postcss-merge-longhand@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz#f378a8a7e55766b7b644f48e5d8c789ed7ed51ce" + integrity sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw== dependencies: - icss-utils "^4.1.1" - postcss "^7.0.32" + postcss-value-parser "^4.2.0" + stylehacks "^5.1.0" + +postcss-merge-rules@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz#7049a14d4211045412116d79b751def4484473a5" + integrity sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz#ac41a6465be2db735099bbd1798d85079a6dc1f9" + integrity sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg== + dependencies: + browserslist "^4.16.6" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.1.0" -postcss-modules-scope@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: +postcss-modules-scope@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" + postcss-selector-parser "^6.0.4" -postcss-nesting@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== - dependencies: - postcss "^7.0.2" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-overflow-shorthand@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== - dependencies: - postcss "^7.0.2" - -postcss-page-break@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== - dependencies: - postcss "^7.0.2" - -postcss-place@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== - dependencies: - postcss "^7.0.2" - postcss-values-parser "^2.0.0" - -postcss-preset-env@^6.7.0: - version "6.7.1" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.1.tgz#26563d2e9395d626a45a836450844540694bfcef" - integrity sha512-rlRkgX9t0v2On33n7TK8pnkcYOATGQSv48J2RS8GsXhqtg+xk6AummHP88Y5mJo0TLJelBjePvSjScTNkj3+qw== - dependencies: - autoprefixer "^9.6.1" - browserslist "^4.6.4" - caniuse-lite "^1.0.30000981" - css-blank-pseudo "^0.1.4" - css-has-pseudo "^0.10.0" - css-prefers-color-scheme "^3.1.1" - cssdb "^4.4.0" - postcss "^7.0.17" - postcss-attribute-case-insensitive "^4.0.1" - postcss-color-functional-notation "^2.0.1" - postcss-color-gray "^5.0.0" - postcss-color-hex-alpha "^5.0.3" - postcss-color-mod-function "^3.0.3" - postcss-color-rebeccapurple "^4.0.1" - postcss-custom-media "^7.0.8" - postcss-custom-properties "^8.0.11" - postcss-custom-selectors "^5.1.2" - postcss-dir-pseudo-class "^5.0.0" - postcss-double-position-gradients "^1.0.0" - postcss-env-function "^2.0.2" - postcss-focus-visible "^4.0.0" - postcss-focus-within "^3.0.0" - postcss-font-variant "^4.0.0" - postcss-gap-properties "^2.0.0" - postcss-image-set-function "^3.0.1" - postcss-initial "^3.0.0" - postcss-lab-function "^2.0.1" - postcss-logical "^3.0.0" - postcss-media-minmax "^4.0.0" - postcss-nesting "^7.0.0" - postcss-overflow-shorthand "^2.0.0" - postcss-page-break "^2.0.0" - postcss-place "^4.0.1" - postcss-pseudo-class-any-link "^6.0.0" - postcss-replace-overflow-wrap "^3.0.0" - postcss-selector-matches "^4.0.0" - postcss-selector-not "^4.0.0" - -postcss-pseudo-class-any-link@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== - dependencies: - postcss "^7.0.2" - postcss-selector-parser "^5.0.0-rc.3" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-replace-overflow-wrap@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== - dependencies: - postcss "^7.0.2" - -postcss-safe-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== - dependencies: - postcss "^7.0.26" - -postcss-selector-matches@^4.0.0: +postcss-modules-values@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" + icss-utils "^5.0.0" -postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== dependencies: - balanced-match "^1.0.0" - postcss "^7.0.2" + postcss-value-parser "^4.2.0" -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + postcss-value-parser "^4.2.0" -postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + postcss-value-parser "^4.2.0" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz#3d23aede35e160089a285e27bf715de11dc9db75" + integrity sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ== + dependencies: + browserslist "^4.16.6" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz#fc31659ea6e85c492fb2a7b545370c215822c5d6" + integrity sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -5909,71 +3569,40 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" - integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" + postcss-value-parser "^4.2.0" + svgo "^2.7.0" -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" + postcss-selector-parser "^6.0.5" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: 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" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== +postcss@^8.4.13, postcss@^8.4.7: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" - integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== - dependencies: - picocolors "^0.2.1" - source-map "^0.6.1" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - propagating-hammerjs@^1.4.6: version "1.5.0" resolved "https://registry.yarnpkg.com/propagating-hammerjs/-/propagating-hammerjs-1.5.0.tgz#223d58465489b64879fb0cef2c99ba92b294c239" @@ -5989,68 +3618,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - qs@6.10.3: version "6.10.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" @@ -6058,29 +3630,6 @@ qs@6.10.3: dependencies: side-channel "^1.0.4" -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - rails-erb-loader@^5.5.2: version "5.5.2" resolved "https://registry.yarnpkg.com/rails-erb-loader/-/rails-erb-loader-5.5.2.tgz#db3fa8ac89600f09d179a1a70a2ca18c592576ea" @@ -6089,21 +3638,13 @@ rails-erb-loader@^5.5.2: loader-utils "^1.1.0" lodash.defaults "^4.2.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -6119,14 +3660,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.1: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -6139,7 +3673,7 @@ read-cache@^1.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.0.6: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -6148,15 +3682,6 @@ readable-stream@^3.0.6, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -6164,6 +3689,13 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + regenerate-unicode-properties@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" @@ -6176,7 +3708,7 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: +regenerator-runtime@^0.13.4: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== @@ -6188,23 +3720,6 @@ regenerator-transform@^0.15.0: dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - regexpu-core@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" @@ -6229,67 +3744,29 @@ regjsparser@^0.8.2: dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg== - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: +resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: +resolve@^1.14.2, resolve@^1.9.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -6298,32 +3775,10 @@ resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w== - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg== - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== rimraf@^3.0.2: version "3.0.2" @@ -6332,26 +3787,11 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - robust-predicates@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== - dependencies: - aproba "^1.1.1" - rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" @@ -6362,58 +3802,34 @@ 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.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: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.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== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-loader@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" - integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== +sass-loader@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.0.2.tgz#e81a909048e06520e9f2ff25113a801065adb3fe" + integrity sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q== dependencies: klona "^2.0.4" - loader-utils "^2.0.0" neo-async "^2.6.2" - schema-utils "^3.0.0" - semver "^7.3.2" -sass@^1.38.0: - version "1.54.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.3.tgz#37baa2652f7f1fdadb73240ee9a2b9b81fabb5c4" - integrity sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw== +sass@^1.54.4: + version "1.54.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.4.tgz#803ff2fef5525f1dd01670c3915b4b68b6cba72d" + integrity sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA== 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" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.6.5, schema-utils@^2.7.0: +schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -6422,7 +3838,7 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: +schema-utils@^3.0, schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -6431,34 +3847,39 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^1.10.8: - version "1.10.14" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.14.tgz#ee51d84d9dcecc61e07e4aba34f229ab525c1574" - integrity sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA== +selfsigned@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" + integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== dependencies: - node-forge "^0.10.0" + node-forge "^1" semver@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2, semver@^7.3.5: +semver@^7.3.5: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -6484,17 +3905,10 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" @@ -6521,26 +3935,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -6551,13 +3945,14 @@ setprototypeof@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" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== +shakapacker@^6.0.0-rc.14: + version "6.0.0-rc.14" + resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-6.0.0-rc.14.tgz#2e16b364f2192f066227e77289b8cd63fc5fb430" + integrity sha512-yaoJnvUqEHDfckea6GK57+N7viKBYygj2Yw8m+QycndUJPKuOk7hfOjqFbEODYn5+haxJ+WJEqfXFDOtoduChA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + glob "^7.2.0" + js-yaml "^4.1.0" + path-complete-extname "^1.0.0" shallow-clone@^3.0.0: version "3.0.1" @@ -6566,17 +3961,17 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - shebang-regex "^1.0.0" + shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel@^1.0.4: version "1.0.4" @@ -6587,60 +3982,12 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.0: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@^1.5.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.6.1.tgz#350b8eda42d6d52ddc030c39943364c11dcad806" - integrity sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw== - dependencies: - debug "^3.2.7" - eventsource "^2.0.2" - faye-websocket "^0.11.4" - inherits "^2.0.4" - url-parse "^1.5.10" - -sockjs@^0.3.21: +sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== @@ -6649,40 +3996,17 @@ sockjs@^0.3.21: uuid "^8.3.2" websocket-driver "^0.7.4" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== - dependencies: - is-plain-obj "^1.0.0" - sortablejs@^1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.0.tgz#53230b8aa3502bb77a29e2005808ffdb4a5f7e2a" integrity sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w== -source-list-map@^2.0.0: - version "2.0.1" - 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": +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -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" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@~0.5.20: 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== @@ -6690,17 +4014,7 @@ source-map-support@~0.5.12, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -6728,45 +4042,11 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -6777,71 +4057,7 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.19.5" - -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -6855,41 +4071,23 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" +style-loader@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" + integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -style-loader@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" - integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== +stylehacks@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" + integrity sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q== dependencies: - loader-utils "^2.0.0" - schema-utils "^2.7.0" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" + browserslist "^4.16.6" + postcss-selector-parser "^6.0.4" supports-color@^5.3.0: version "5.5.0" @@ -6898,101 +4096,55 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svgo@^1.0.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar@^6.0.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== +terser-webpack-plugin@5, terser-webpack-plugin@^5.1.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz#8033db876dd5875487213e87c627bca323e5ed90" + integrity sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ== dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" + "@jridgewell/trace-mapping" "^0.3.7" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + terser "^5.7.2" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser-webpack-plugin@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.3.4: +terser@^5.7.2: version "5.14.2" resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== @@ -7002,56 +4154,16 @@ terser@^5.3.4: commander "^2.20.0" source-map-support "~0.5.20" -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - thunky@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -7059,16 +4171,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -7084,11 +4186,6 @@ tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -7097,21 +4194,6 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - underscore@^1.13.4: version "1.13.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.4.tgz#7886b46bbdf07f768e0052f1828e1dcab40c0dee" @@ -7140,63 +4222,11 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - update-browserslist-db@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" @@ -7212,91 +4242,26 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-parse@^1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -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" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - vis@^4.21.0: version "4.21.0" resolved "https://registry.yarnpkg.com/vis/-/vis-4.21.0.tgz#dd71638bff7f6495d00bc9f40c253526133ded6b" @@ -7308,28 +4273,13 @@ vis@^4.21.0: moment "^2.18.1" propagating-hammerjs "^1.4.6" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== +watchpack@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -7338,95 +4288,84 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -webpack-assets-manifest@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" - integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ== +webpack-assets-manifest@5: + version "5.1.0" + resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-5.1.0.tgz#5af328f6c8fa760cb9a62af631a83da2b478b791" + integrity sha512-kPuTMEjBrqZQVJ5M6yXNBCEdFbQQn7p+loNXt8NOeDFaAbsNFWqqwR0YL1mfG5LbwhK5FLXWXpuK3GuIIZ46rg== dependencies: - chalk "^2.0" + chalk "^4.0" + deepmerge "^4.0" + lockfile "^1.0" lodash.get "^4.0" lodash.has "^4.0" - mkdirp "^0.5" - schema-utils "^1.0.0" - tapable "^1.0.0" - webpack-sources "^1.0.0" + schema-utils "^3.0" + tapable "^2.0" -webpack-cli@^3.3.12: - version "3.3.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== +webpack-cli@4: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== dependencies: - chalk "^2.4.2" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.1" - findup-sync "^3.0.0" - global-modules "^2.0.0" - import-local "^2.0.0" - interpret "^1.4.0" - loader-utils "^1.4.0" - supports-color "^6.1.0" - v8-compile-cache "^2.1.1" - yargs "^13.3.2" + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.2.0" + "@webpack-cli/info" "^1.5.0" + "@webpack-cli/serve" "^1.7.0" + colorette "^2.0.14" + commander "^7.0.0" + cross-spawn "^7.0.3" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" -webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== +webpack-dev-middleware@^5.3.1: + version "5.3.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" + integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA== dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" + colorette "^2.0.10" + memfs "^3.4.3" + mime-types "^2.1.31" range-parser "^1.2.1" - webpack-log "^2.0.0" + schema-utils "^4.0.0" -webpack-dev-server@^3.11.2: - version "3.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" - integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== +webpack-dev-server@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz#de270d0009eba050546912be90116e7fd740a9ca" + integrity sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ== dependencies: - ansi-html-community "0.0.8" - bonjour "^3.5.0" - chokidar "^2.1.8" + "@types/bonjour" "^3.5.9" + "@types/connect-history-api-fallback" "^1.3.5" + "@types/express" "^4.17.13" + "@types/serve-index" "^1.9.1" + "@types/serve-static" "^1.13.10" + "@types/sockjs" "^0.3.33" + "@types/ws" "^8.5.1" + ansi-html-community "^0.0.8" + bonjour-service "^1.0.11" + chokidar "^3.5.3" + colorette "^2.0.10" compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" + connect-history-api-fallback "^2.0.0" + default-gateway "^6.0.3" + express "^4.17.3" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.3" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + rimraf "^3.0.2" + schema-utils "^4.0.0" + selfsigned "^2.0.1" serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" + sockjs "^0.3.24" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" + webpack-dev-middleware "^5.3.1" + ws "^8.4.2" -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^5.8.0: +webpack-merge@5, webpack-merge@^5.7.3: version "5.8.0" resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== @@ -7434,42 +4373,40 @@ webpack-merge@^5.8.0: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" +webpack-sources@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^4.46.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== +webpack@5: + version "5.74.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" + integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.7.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" + enhanced-resolve "^5.10.0" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.4.0" + webpack-sources "^3.2.3" websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" @@ -7485,26 +4422,10 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - -which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" @@ -7513,84 +4434,22 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +ws@^8.4.2: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.7.2: +yaml@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From a5f59e139a89a6baf689099b4cdf1b6f804e523c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 12 Aug 2022 00:06:20 +0200 Subject: [PATCH 277/329] Update from shakapacker v6.0.0.rc13 to v6.5.0 Using a two-step process is recommended: https://github.com/shakacode/shakapacker/blob/332e25186a32407c4701978e92e3adee9267dbae/docs/v6_upgrade.md --- Gemfile | 2 +- Gemfile.lock | 6 +++--- config/webpack/development.js | 5 ----- config/webpack/production.js | 5 ----- config/webpack/test.js | 5 ----- config/webpacker.yml | 31 +++++++++++++++++++++++++++++++ package.json | 5 +++-- yarn.lock | 20 ++++++++++---------- 8 files changed, 48 insertions(+), 31 deletions(-) delete mode 100644 config/webpack/development.js delete mode 100644 config/webpack/production.js delete mode 100644 config/webpack/test.js diff --git a/Gemfile b/Gemfile index 7a73dada..6ea22158 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'rest-client' gem 'rubytree' gem 'rubyzip' gem 'sass-rails' -gem 'shakapacker', '6.0.0.rc13' +gem 'shakapacker', '= 6.5' gem 'slim-rails' gem 'sorcery' # Causes a deprecation warning in Rails 6.0+, see: https://github.com/Sorcery/sorcery/pull/255 gem 'telegraf' diff --git a/Gemfile.lock b/Gemfile.lock index 005bf524..34df7f91 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -464,7 +464,7 @@ GEM sentry-ruby (5.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) set (1.0.2) - shakapacker (6.0.0.rc.13) + shakapacker (6.5.0) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) @@ -611,7 +611,7 @@ DEPENDENCIES selenium-webdriver sentry-rails sentry-ruby - shakapacker (= 6.0.0.rc13) + shakapacker (= 6.5) shoulda-matchers simplecov slim-rails @@ -625,4 +625,4 @@ DEPENDENCIES whenever BUNDLED WITH - 2.3.19 + 2.3.17 diff --git a/config/webpack/development.js b/config/webpack/development.js deleted file mode 100644 index 50209390..00000000 --- a/config/webpack/development.js +++ /dev/null @@ -1,5 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'development' - -const environment = require('./environment') - -module.exports = environment diff --git a/config/webpack/production.js b/config/webpack/production.js deleted file mode 100644 index 1fddcfb4..00000000 --- a/config/webpack/production.js +++ /dev/null @@ -1,5 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'production' - -const environment = require('./environment') - -module.exports = environment diff --git a/config/webpack/test.js b/config/webpack/test.js deleted file mode 100644 index 50209390..00000000 --- a/config/webpack/test.js +++ /dev/null @@ -1,5 +0,0 @@ -process.env.NODE_ENV = process.env.NODE_ENV || 'development' - -const environment = require('./environment') - -module.exports = environment diff --git a/config/webpacker.yml b/config/webpacker.yml index ca3534f3..314cfb8f 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -2,11 +2,24 @@ default: &default source_path: app/javascript + + # You can have a subdirectory of the source_path, like 'packs' (recommended). + # Alternatively, you can use '/' to use the whole source_path directory. source_entry_path: / + + # If nested_entries is true, then we'll pick up subdirectories within the source_entry_path. + # You cannot set this option to true if you set source_entry_path to '/' + nested_entries: false + public_root_path: public public_output_path: packs cache_path: tmp/webpacker webpack_compile_output: true + # See https://github.com/shakacode/shakapacker#deployment + webpacker_precompile: true + + # Location for manifest.json, defaults to {public_output_path}/manifest.json if unset + # manifest_path: public/packs/manifest.json # Additional paths webpack should look up modules # ['app/assets', 'engine/foo/app/assets'] @@ -15,9 +28,19 @@ default: &default # Reload manifest.json on all requests so we reload latest compiled packs cache_manifest: false + # Select loader to use, available options are 'babel' (default), 'swc' or 'esbuild' + webpack_loader: 'babel' + + # Set to true to enable check for matching versions of shakapacker gem and NPM package - will raise an error if there is a mismatch or wildcard versioning is used + ensure_consistent_versioning: true + + # Select whether the compiler will use SHA digest ('digest' option) or most most recent modified timestamp ('mtime') to determine freshness + compiler_strategy: digest + development: <<: *default compile: true + compiler_strategy: mtime # Reference: https://webpack.js.org/configuration/dev-server/ dev_server: @@ -26,6 +49,14 @@ development: port: 3035 # Hot Module Replacement updates modules while the application is running without a full reload hmr: false + # If HMR is on, CSS will by inlined by delivering it as part of the script payload via style-loader. Be sure + # that you add style-loader to your project dependencies. + # + # If you want to instead deliver CSS via with the mini-extract-css-plugin, set inline_css to false. + # In that case, style-loader is not needed as a dependency. + # + # mini-extract-css-plugin is a required dependency in both cases. + inline_css: true # Defaults to the inverse of hmr. Uncomment to manually set this. # live_reload: true client: diff --git a/package.json b/package.json index 3c78c0d2..8de37fe4 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "rails-erb-loader": "^5.5.2", "sass": "^1.54.4", "sass-loader": "^13.0.2", - "shakapacker": "^6.0.0-rc.14", + "shakapacker": "6.5.0", "sortablejs": "^1.15.0", "style-loader": "^3.3.1", "terser-webpack-plugin": "5", @@ -40,7 +40,8 @@ "webpack": "5", "webpack-assets-manifest": "5", "webpack-cli": "4", - "webpack-merge": "5" + "webpack-merge": "5", + "webpack-sources": "^3.2.3" }, "devDependencies": { "webpack-dev-server": "^4.10.0" diff --git a/yarn.lock b/yarn.lock index e3c3dcef..8fb28aaa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -965,9 +965,9 @@ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -1127,9 +1127,9 @@ integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/node@*": - version "18.6.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.6.5.tgz#06caea822caf9e59d5034b695186ee74154d2802" - integrity sha512-Xjt5ZGUa5WusGZJ4WJPbOT8QOqp6nDynVFRKcUt32bOgvXEoc6o085WNkYTMO7ifAj2isEfQQ2cseE+wT6jsRw== + version "18.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.1.tgz#352bee64f93117d867d05f7406642a52685cbca6" + integrity sha512-GKX1Qnqxo4S+Z/+Z8KKPLpH282LD7jLHWJcVryOflnsnH+BtSDfieR6ObwBMwpnNws0bUK8GI7z0unQf9bARNQ== "@types/qs@*": version "6.9.7" @@ -3945,10 +3945,10 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -shakapacker@^6.0.0-rc.14: - version "6.0.0-rc.14" - resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-6.0.0-rc.14.tgz#2e16b364f2192f066227e77289b8cd63fc5fb430" - integrity sha512-yaoJnvUqEHDfckea6GK57+N7viKBYygj2Yw8m+QycndUJPKuOk7hfOjqFbEODYn5+haxJ+WJEqfXFDOtoduChA== +shakapacker@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/shakapacker/-/shakapacker-6.5.0.tgz#d61d8639debce81452ef0057189034b31aa75a8a" + integrity sha512-/0Pd79zPd5Ys1VxVcD4lvqVHij0t8Ymz3As7X3592hHynNGllqzjyCqST6PdaNXL6tO7/b8WFKcY2lMUfDKYVA== dependencies: glob "^7.2.0" js-yaml "^4.1.0" From eb175b3b4093b639effe2544a659d1823f2ac532 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 12 Aug 2022 02:44:19 +0200 Subject: [PATCH 278/329] Fix Webpack-imported modules --- app/assets/javascripts/exercises.js.erb | 2 +- app/javascript/d3-tip.js | 2 +- app/javascript/highlight.js | 2 +- config/webpack/webpack.config.js | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/exercises.js.erb b/app/assets/javascripts/exercises.js.erb index 00d7f52a..9a5f0378 100644 --- a/app/assets/javascripts/exercises.js.erb +++ b/app/assets/javascripts/exercises.js.erb @@ -257,7 +257,7 @@ $(document).on('turbolinks:load', function () { var highlightCode = function () { $('pre code').each(function (index, element) { - hljs.highlightBlock(element); + hljs.highlightElement(element); }); }; diff --git a/app/javascript/d3-tip.js b/app/javascript/d3-tip.js index 9d884c89..ca00e574 100644 --- a/app/javascript/d3-tip.js +++ b/app/javascript/d3-tip.js @@ -1,5 +1,5 @@ /* eslint no-console:0 */ // JS -import * as d3Tip from 'd3-tip' +import * as d3Tip from 'd3-tip/dist' window.d3.tip = d3Tip; diff --git a/app/javascript/highlight.js b/app/javascript/highlight.js index 18e75a56..39e30b56 100644 --- a/app/javascript/highlight.js +++ b/app/javascript/highlight.js @@ -1,7 +1,7 @@ /* eslint no-console:0 */ // JS -import * as hljs from 'highlight.js' +import hljs from 'highlight.js/lib/common' window.hljs = hljs; // CSS diff --git a/config/webpack/webpack.config.js b/config/webpack/webpack.config.js index f1766ea5..bb93371b 100644 --- a/config/webpack/webpack.config.js +++ b/config/webpack/webpack.config.js @@ -21,9 +21,11 @@ const envConfig = module.exports = { ] }, resolve: { + extensions: ['.css', '.ts', '.tsx'], alias: { $: 'jquery/src/jquery', jquery: 'jquery/src/jquery', + vis$: 'vis/dist/vis', } }, plugins: [ @@ -36,7 +38,6 @@ const envConfig = module.exports = { Popper: ['popper.js', 'default'], // for Bootstrap 4 _: 'underscore', vis: 'vis', - hljs: 'highlight.js', d3: 'd3', Sentry: '@sentry/browser', Sortable: 'sortablejs', From 627927bb54a99062ca0970006578ca56c0762bb3 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 12 Aug 2022 02:44:31 +0200 Subject: [PATCH 279/329] Remove console.log --- app/assets/javascripts/working_time_graphs.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/assets/javascripts/working_time_graphs.js b/app/assets/javascripts/working_time_graphs.js index 7eb4f2b0..f0c3156b 100644 --- a/app/assets/javascripts/working_time_graphs.js +++ b/app/assets/javascripts/working_time_graphs.js @@ -3,7 +3,7 @@ $(document).on('turbolinks:load', function() { if ($.isController('exercises') && $('.working-time-graphs').isPresent()) { var working_times = $('#data').data('working-time'); - + function get_minutes (timestamp){ try{ hours = timestamp.split(":")[0]; @@ -160,7 +160,6 @@ $(document).on('turbolinks:load', function() { groupRanges += groupWidth; } while (groupRanges < maximum_minutes); - console.log(maximum_minutes); var clusterCount = 0, sum = 0, From 909db6b3a27b9b046502a78a193ed87afdf97ce1 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 12 Aug 2022 09:36:36 +0200 Subject: [PATCH 280/329] Precompile assets for spec --- .github/workflows/ci.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8ee32a9..5ebaed00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,13 +44,18 @@ jobs: node-version: 18 - name: Get yarn cache directory path id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn config get cacheFolder)" - - name: Manage yarn cache - uses: actions/cache@v2 + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Manage yarn, webpack and assets cache + uses: actions/cache@v3 # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) id: yarn-cache with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + path: | + ${{ steps.yarn-cache-dir-path.outputs.dir }} + public/assets + public/packs-test + tmp/cache + tmp/webpacker key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- @@ -70,6 +75,10 @@ jobs: env: RAILS_ENV: test run: bundler exec rake db:schema:load + - name: Precompile assets + env: + RAILS_ENV: test + run: bundler exec rake assets:precompile - name: Run tests env: RAILS_ENV: test From 1838765baaadee5132cd2d156a196de293b205c5 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 12 Aug 2022 10:34:06 +0200 Subject: [PATCH 281/329] Reinclude all FontAwesome SCSS files --- app/javascript/stylesheets.scss | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/app/javascript/stylesheets.scss b/app/javascript/stylesheets.scss index 93ccd5d5..9c1cb9c4 100644 --- a/app/javascript/stylesheets.scss +++ b/app/javascript/stylesheets.scss @@ -12,21 +12,7 @@ $web-font-path: '//'; @import '../../node_modules/bootstrap/scss/bootstrap'; @import '../../node_modules/bootswatch/dist/yeti/bootswatch'; $fa-font-path: '~@fortawesome/fontawesome-free/webfonts/'; -// Remove lines below and re-include overall fontawesome in v6.2+ -// See https://github.com/FortAwesome/Font-Awesome/issues/19237 -@import '../../node_modules/@fortawesome/fontawesome-free/scss/functions'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/variables'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/mixins'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/core'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/sizing'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/fixed-width'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/bordered-pulled'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/animated'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/rotated-flipped'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/stacked'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/icons'; -@import '../../node_modules/@fortawesome/fontawesome-free/scss/screen-reader'; -// @import '~@fortawesome/fontawesome-free/scss/fontawesome'; +@import '~@fortawesome/fontawesome-free/scss/fontawesome'; @import '../../node_modules/@fortawesome/fontawesome-free/scss/solid'; @import '../../node_modules/@fortawesome/fontawesome-free/scss/regular'; @import '../../node_modules/@fortawesome/fontawesome-free/scss/v4-shims'; From 6803efc0230525c3dbf0ea8e33cbfe39e98dc78c Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Fri, 12 Aug 2022 11:39:42 +0200 Subject: [PATCH 282/329] Fix order-dependent specs The submission spec is removed as it was useless since 66c1b992 --- spec/concerns/file_parameters_spec.rb | 3 ++- spec/models/submission_spec.rb | 16 ---------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/spec/concerns/file_parameters_spec.rb b/spec/concerns/file_parameters_spec.rb index 8d00ca4c..c7470689 100644 --- a/spec/concerns/file_parameters_spec.rb +++ b/spec/concerns/file_parameters_spec.rb @@ -48,7 +48,8 @@ describe FileParameters do end it 'non existent file' do - non_existent_file = build(:file, context: hello_world, id: 42) + # Ensure to use an invalid id for the file. + non_existent_file = build(:file, context: hello_world, id: -1) expect(file_accepted?(non_existent_file)).to be false end end diff --git a/spec/models/submission_spec.rb b/spec/models/submission_spec.rb index 9b6a6ab5..06744512 100644 --- a/spec/models/submission_spec.rb +++ b/spec/models/submission_spec.rb @@ -123,22 +123,6 @@ describe Submission do end end end - - context 'with enough exercise feedback' do - 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) - end - - it 'sends nobody to feedback page' do - 30.times do |_i| - submission = create(:submission, exercise: exercise, user: create(:external_user)) - expect(submission.send(:redirect_to_feedback?)).to be_falsey - end - end - end end describe '#calculate_score' do From 8a055a0d68f8d5e3c44b94149c310edc4fc1a428 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Thu, 11 Aug 2022 19:10:49 +0200 Subject: [PATCH 283/329] Update Bootstrap from v4 to v5 --- .../javascripts/bootstrap-dropdown-submenu.js | 2 +- app/assets/javascripts/codeharbor_link.js | 2 +- app/assets/javascripts/editor.js | 11 +- app/assets/javascripts/editor/editor.js.erb | 46 +++-- .../editor/participantsupport.js.erb | 10 +- app/assets/javascripts/editor/turtle.js | 11 +- .../javascripts/exercise_collections.js.erb | 2 +- app/assets/javascripts/exercises.js.erb | 19 +- app/assets/javascripts/forms.js | 2 +- .../pagedown/markdown.editor.js.erb | 24 +-- .../javascripts/pagedown/pagedown.js.erb | 2 +- app/assets/stylesheets/base.css.scss | 15 +- .../bootstrap-dropdown-submenu.css.scss | 4 +- app/assets/stylesheets/editor.css.scss | 8 +- app/assets/stylesheets/exercises.css.scss | 4 +- app/assets/stylesheets/forms.css.scss | 6 - app/helpers/application_helper.rb | 4 +- app/javascript/application.js | 3 +- .../_breadcrumbs_and_title.html.slim | 13 +- app/views/application/_flash.html.slim | 3 +- .../application/_locale_selector.html.slim | 2 +- app/views/application/_navigation.html.slim | 2 +- .../application/_navigation_submenu.html.slim | 2 +- app/views/application/_session.html.slim | 2 +- app/views/code_ocean/files/_form.html.slim | 16 +- app/views/codeharbor_links/_form.html.slim | 14 +- app/views/community_solutions/_form.html.slim | 16 +- app/views/consumers/_form.html.slim | 12 +- app/views/consumers/show.html.slim | 2 +- .../error_template_attributes/_form.html.slim | 14 +- app/views/error_templates/_form.html.slim | 20 +- .../execution_environments/_form.html.slim | 48 ++--- .../execution_environments/index.html.slim | 4 +- .../execution_environments/shell.html.slim | 2 +- .../execution_environments/show.html.slim | 6 +- .../_add_exercise_modal.slim | 2 +- .../exercise_collections/_form.html.slim | 12 +- app/views/exercises/_add_tip_modal.slim | 2 +- app/views/exercises/_code_field.html.slim | 6 +- .../_comment_dialogcontent.html.slim | 6 +- app/views/exercises/_editor.html.slim | 22 ++- .../exercises/_editor_file_tree.html.slim | 53 +++--- app/views/exercises/_editor_output.html.slim | 172 +++++++++--------- app/views/exercises/_export_actions.html.slim | 6 +- app/views/exercises/_file_form.html.slim | 28 +-- app/views/exercises/_form.html.slim | 40 ++-- .../_request_comment_dialogcontent.html.slim | 6 +- app/views/exercises/_tips_content.html.slim | 2 +- .../external_users/statistics.html.slim | 12 +- app/views/exercises/feedback.html.slim | 8 +- app/views/exercises/implement.html.slim | 47 +++-- app/views/exercises/index.html.slim | 19 +- app/views/exercises/show.html.slim | 13 +- .../exercises/study_group_dashboard.html.slim | 6 +- app/views/external_users/index.html.slim | 20 +- app/views/file_templates/_form.html.slim | 12 +- app/views/file_types/_form.html.slim | 16 +- app/views/internal_users/_form.html.slim | 16 +- app/views/internal_users/activate.html.slim | 8 +- .../internal_users/forgot_password.html.slim | 2 +- app/views/internal_users/index.html.slim | 19 +- .../internal_users/reset_password.html.slim | 8 +- app/views/layouts/application.html.slim | 6 +- app/views/proxy_exercises/_form.html.slim | 10 +- app/views/proxy_exercises/index.html.slim | 13 +- app/views/proxy_exercises/show.html.slim | 2 +- .../request_for_comments/index.html.slim | 24 +-- app/views/request_for_comments/show.html.slim | 10 +- app/views/sessions/new.html.slim | 8 +- app/views/shared/_edit_button.html.slim | 2 +- app/views/shared/_form_filters.html.slim | 13 +- app/views/shared/_modal.html.slim | 5 +- .../statistics/activity_history.html.slim | 6 +- app/views/study_groups/_form.html.slim | 6 +- app/views/study_groups/index.html.slim | 13 +- app/views/submissions/index.html.slim | 13 +- app/views/tags/_form.html.slim | 4 +- app/views/tips/_collapsed_card.html.slim | 2 +- app/views/tips/_form.html.slim | 16 +- app/views/tips/_sortable_tip.html.slim | 6 +- .../user_exercise_feedbacks/_form.html.slim | 4 +- package.json | 6 +- spec/helpers/application_helper_spec.rb | 2 +- yarn.lock | 38 ++-- 84 files changed, 559 insertions(+), 566 deletions(-) diff --git a/app/assets/javascripts/bootstrap-dropdown-submenu.js b/app/assets/javascripts/bootstrap-dropdown-submenu.js index 10809c02..38ad3854 100644 --- a/app/assets/javascripts/bootstrap-dropdown-submenu.js +++ b/app/assets/javascripts/bootstrap-dropdown-submenu.js @@ -1,6 +1,6 @@ $(document).on('turbolinks:load', function() { - var subMenusSelector = 'ul.dropdown-menu [data-toggle=dropdown]'; + var subMenusSelector = 'ul.dropdown-menu [data-bs-toggle=dropdown]'; function openSubMenu(event) { if (this.pathname === '/') { diff --git a/app/assets/javascripts/codeharbor_link.js b/app/assets/javascripts/codeharbor_link.js index 4cd49ece..fdf42859 100644 --- a/app/assets/javascripts/codeharbor_link.js +++ b/app/assets/javascripts/codeharbor_link.js @@ -1,5 +1,5 @@ $(document).on('turbolinks:load', function() { - $('[data-toggle="tooltip"]').tooltip(); + $('[data-bs-toggle="tooltip"]').tooltip(); if($.isController('codeharbor_links')) { if ($('.edit_codeharbor_link, .new_codeharbor_link').isPresent()) { diff --git a/app/assets/javascripts/editor.js b/app/assets/javascripts/editor.js index 465e2f49..6dc79b7f 100644 --- a/app/assets/javascripts/editor.js +++ b/app/assets/javascripts/editor.js @@ -15,12 +15,9 @@ $(document).on('turbolinks:load', function(event) { ); if ($('#editor').isPresent() && CodeOceanEditor && event.originalEvent.data.url.includes("/implement")) { - if (CodeOceanEditor.isBrowserSupported()) { - $('#alert').hide(); - // This call will (amon other things) initializeEditors and load the content except for the last line - // It must not be called during page navigation. Otherwise, content will be duplicated! - // Search for insertLines and Turbolinks reload / cache control - CodeOceanEditor.initializeEverything(); - } + // This call will (amon other things) initializeEditors and load the content except for the last line + // It must not be called during page navigation. Otherwise, content will be duplicated! + // Search for insertLines and Turbolinks reload / cache control + CodeOceanEditor.initializeEverything(); } }); diff --git a/app/assets/javascripts/editor/editor.js.erb b/app/assets/javascripts/editor/editor.js.erb index b07341ae..d242e64b 100644 --- a/app/assets/javascripts/editor/editor.js.erb +++ b/app/assets/javascripts/editor/editor.js.erb @@ -78,7 +78,7 @@ var CodeOceanEditor = { if ($('#output-' + index).isPresent()) { return $('#output-' + index); } else { - var element = $('
').attr('id', 'output-' + index);
+            var element = $('
').attr('id', 'output-' + index);
             $('#output').append(element);
             return element;
         }
@@ -235,10 +235,20 @@ var CodeOceanEditor = {
         window.dispatchEvent(new Event('resize'));
     },
 
-    resizeParentOfAceEditor: function (element) {
+    resizeSidebars: function () {
+        $('#content-left-sidebar').height(this.calculateEditorHeight('#content-left-sidebar', false));
+        $('#content-right-sidebar').height(this.calculateEditorHeight('#content-right-sidebar', false));
+    },
+
+    calculateEditorHeight: function (element, considerStatusbar) {
+        let bottom = considerStatusbar ? ($('#statusbar').height() || 0) : 0;
         // calculate needed size: window height - position of top of ACE editor - height of autosave label below editor - 5 for bar margins
-        var windowHeight = window.innerHeight - $(element).offset().top - ($('#statusbar').height() || 0) - 5;
-        $(element).parent().height(windowHeight);
+        return window.innerHeight - $(element).offset().top - bottom - 5;
+    },
+
+    resizeParentOfAceEditor: function (element) {
+        const editorHeight = this.calculateEditorHeight(element, true);
+        $(element).parent().height(editorHeight);
     },
 
     initializeEditors: function (own_solution = false) {
@@ -259,6 +269,7 @@ var CodeOceanEditor = {
             // Resize frame on window size change
             $(window).resize(function () {
                 this.resizeParentOfAceEditor(element);
+                this.resizeSidebars();
             }.bind(this));
 
             var editor = ace.edit(element);
@@ -390,6 +401,7 @@ var CodeOceanEditor = {
             tipButton.on('click', this.handleSideBarToggle.bind(this));
         }
         $('#sidebar').on('transitionend', this.resizeAceEditors.bind(this));
+        $('#sidebar').on('transitionend', this.resizeSidebars.bind(this));
     },
 
     handleSideBarToggle: function () {
@@ -433,12 +445,12 @@ var CodeOceanEditor = {
         button.prop('disabled', true);
         button.on('click', function () {
             $('#rfc_intervention_text').hide()
-            $('#comment-modal').modal('show');
+            new bootstrap.Modal($('#comment-modal')).show();
         });
 
         $('#askForCommentsButton').on('click', this.requestComments.bind(this));
         $('#closeAskForCommentsButton').on('click', function () {
-            $('#comment-modal').modal('hide');
+            bootstrap.Modal.getInstance($('#comment-modal')).hide();
         });
 
         setTimeout(function () {
@@ -475,12 +487,6 @@ var CodeOceanEditor = {
         return this.isActiveFileExecutable() && ['teacher_defined_test', 'user_defined_test', 'teacher_defined_linter'].includes(this.active_frame.data('role'));
     },
 
-    isBrowserSupported: function () {
-        //  websockets are used for run, score and test
-        // Also exclude IE and IE 11
-        return Modernizr.websockets && window.navigator.userAgent.indexOf("MSIE") <= 0 && !navigator.userAgent.match(/Trident\/7\./);
-    },
-
     populateCard: function (card, result, index) {
         card.addClass(this.getCardClass(result));
         card.find('.card-title .filename').text(result.filename);
@@ -778,7 +784,7 @@ var CodeOceanEditor = {
         event.preventDefault();
         this.createSubmission('#create-file', null, function (response) {
             $('#code_ocean_file_context_id').val(response.id);
-            $('#modal-file').modal('show');
+            new bootstrap.Modal($('#modal-file')).show();
         }.bind(this));
     },
 
@@ -786,6 +792,7 @@ var CodeOceanEditor = {
         $('#toggle-sidebar-output').on('click', this.hideOutputBar.bind(this));
         $('#toggle-sidebar-output-collapsed').on('click', this.showOutputBar.bind(this));
         $('#output_sidebar').on('transitionend', this.resizeAceEditors.bind(this));
+        $('#output_sidebar').on('transitionend', this.resizeSidebars.bind(this));
     },
 
     showOutputBar: function () {
@@ -801,7 +808,7 @@ var CodeOceanEditor = {
     },
 
     initializeSideBarTooltips: function () {
-        $('[data-toggle="tooltip"]').tooltip()
+        $('[data-bs-toggle="tooltip"]').tooltip()
     },
 
     initializeDescriptionToggle: function () {
@@ -809,12 +816,13 @@ var CodeOceanEditor = {
         $('a#toggle').on('click', this.toggleDescriptionCard.bind(this));
     },
 
-    toggleDescriptionCard: function () {
+    toggleDescriptionCard: function (event) {
         $('#description-card').toggleClass('description-card-collapsed').toggleClass('description-card');
         $('#description-symbol').toggleClass('fa-chevron-down').toggleClass('fa-chevron-right');
         var toggle = $('a#toggle');
         toggle.text(toggle.text() == toggle.data('hide') ? toggle.data('show') : toggle.data('hide'));
         this.resizeAceEditors();
+        this.resizeSidebars();
         event.preventDefault();
     },
 
@@ -871,7 +879,7 @@ var CodeOceanEditor = {
                             if (editor.data('tips-interventions')) {
                                 const modal = $('#tips-intervention-modal');
                                 modal.find('.modal-footer').html(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)}));
-                                modal.modal('show');
+                                new bootstrap.Modal(modal).show();
                                 $.ajax({
                                     data: {
                                         intervention_type: 'TipsIntervention'
@@ -883,7 +891,7 @@ var CodeOceanEditor = {
                             } else if (editor.data('break-interventions')) {
                                 const modal = $('#break-intervention-modal');
                                 modal.find('.modal-footer').html(I18n.t("exercises.implement.intervention.explanation", {duration: Math.round(percentile75 / 60)}));
-                                modal.modal('show');
+                                new bootstrap.Modal(modal).show();
                                 $.ajax({
                                     data: {
                                         intervention_type: 'BreakIntervention'
@@ -902,7 +910,7 @@ var CodeOceanEditor = {
                                     modal.on('hidden.bs.modal', function () {
                                         modal.find('.modal-footer').text('');
                                     });
-                                    modal.modal('show');
+                                    new bootstrap.Modal(modal).show();
                                     $.ajax({
                                         data: {
                                             intervention_type: 'QuestionIntervention'
@@ -945,7 +953,6 @@ var CodeOceanEditor = {
         CodeOceanEditor.editors = [];
         this.initializeRegexes();
         this.initializeCodePilot();
-        $('.score, #development-environment').show();
         this.configureEditors();
         this.initializeEditors();
         this.initializeEventHandlers();
@@ -961,6 +968,7 @@ var CodeOceanEditor = {
         this.renderScore();
         this.showFirstFile();
         this.resizeAceEditors();
+        this.resizeSidebars();
         this.initializeDeadlines();
         CodeOceanEditorTips.initializeEventHandlers();
 
diff --git a/app/assets/javascripts/editor/participantsupport.js.erb b/app/assets/javascripts/editor/participantsupport.js.erb
index 77d2138b..db801aeb 100644
--- a/app/assets/javascripts/editor/participantsupport.js.erb
+++ b/app/assets/javascripts/editor/participantsupport.js.erb
@@ -4,7 +4,7 @@ CodeOceanEditorFlowr = {
     '
' + '' + + body.append('' + '<%= I18n.t('exercises.implement.flowr.go_to_question') %>'); body.find('.btn').on('click', CodeOceanEditor.createEventHandler('editor_flowr_click_question', questionUrl)); @@ -112,7 +112,7 @@ CodeOceanEditorCodePilot = { QaApiOutputBuffer: {'stdout': '', 'stderr': ''}, initializeCodePilot: function () { - if ($('#questions-column').isPresent() && (typeof QaApi != 'undefined') && QaApi.isBrowserSupported()) { + if ($('#questions-column').isPresent() && (typeof QaApi != 'undefined')) { $('#editor-column').addClass('col-md-10').removeClass('col-md-12'); $('#questions-column').addClass('col-md-2'); @@ -161,7 +161,7 @@ CodeOceanEditorRequestForComments = { this.createSubmission($('#requestComments'), null, createRequestForComments.bind(this)); - $('#comment-modal').modal('hide'); + bootstrap.Modal.getInstance($('#comment-modal')).hide(); $('#question').val(''); // we disabled the button to prevent that the user spams RFCs, but decided against this now. //var button = $('#requestComments'); diff --git a/app/assets/javascripts/editor/turtle.js b/app/assets/javascripts/editor/turtle.js index e6463ee4..d388f375 100644 --- a/app/assets/javascripts/editor/turtle.js +++ b/app/assets/javascripts/editor/turtle.js @@ -37,15 +37,16 @@ CodeOceanEditorTurtle = { }, showCanvas: function () { - if ($('#turtlediv').isPresent() && this.turtlecanvas.hasClass('d-none')) { - this.turtlecanvas.removeClass('d-none'); + const turtlediv = $('#turtlediv'); + if (turtlediv.isPresent() && turtlediv.hasClass('d-none')) { + turtlediv.removeClass('d-none'); } }, hideCanvas: function () { - const turtlecanvas = $('#turtlecanvas'); - if ($('#turtlediv').isPresent() && !turtlecanvas.hasClass('d-none')) { - turtlecanvas.addClass('d-none'); + const turtlediv = $('#turtlediv'); + if (turtlediv.isPresent() && !turtlediv.hasClass('d-none')) { + turtlediv.addClass('d-none'); } } diff --git a/app/assets/javascripts/exercise_collections.js.erb b/app/assets/javascripts/exercise_collections.js.erb index 6c8602f7..d0aad22e 100644 --- a/app/assets/javascripts/exercise_collections.js.erb +++ b/app/assets/javascripts/exercise_collections.js.erb @@ -187,7 +187,7 @@ $(document).on('turbolinks:load', function() { for (var i = 0; i < selectedExercises.length; i++) { addExercise(selectedExercises[i].value, selectedExercises[i].label); } - $('#add-exercise-modal').modal('hide') + bootstrap.Modal.getInstance($('#add-exercise-modal')).hide(); updateExerciseList(); addExercisesForm.find('select').val('').trigger("chosen:updated"); }); diff --git a/app/assets/javascripts/exercises.js.erb b/app/assets/javascripts/exercises.js.erb index 9a5f0378..a91586dd 100644 --- a/app/assets/javascripts/exercises.js.erb +++ b/app/assets/javascripts/exercises.js.erb @@ -123,7 +123,7 @@ $(document).on('turbolinks:load', function () { var buildCheckboxes = function () { $('tbody tr').each(function (index, element) { var td = $('td.public', element); - var checkbox = $('', { + var checkbox = $('', { checked: td.data('value'), type: 'checkbox' }); @@ -225,9 +225,9 @@ $(document).on('turbolinks:load', function () { const tip = {id: id, title: title} const template = '
' + - '' + tip.title + - '' + - '' + + '' + tip.title + + '' + + '' + '
' + '
'; const tipList = $('#tip-list').append(template); @@ -243,7 +243,7 @@ $(document).on('turbolinks:load', function () { for (let i = 0; i < selectedTips.length; i++) { addTip(selectedTips[i].value, selectedTips[i].label); } - $('#add-tips-modal').modal('hide') + bootstrap.Modal.getInstance($('#add-tips-modal')).hide(); updateTipsJSON(); chosenInputTips.val('').trigger("chosen:updated"); }); @@ -328,10 +328,7 @@ $(document).on('turbolinks:load', function () { var observeExportButtons = function () { $('.export-start').on('click', function (e) { e.preventDefault(); - $('#export-modal').modal({ - height: 250 - }); - $('#export-modal').modal('show'); + new bootstrap.Modal($('#export-modal')).show(); exportExerciseStart($(this).data().exerciseId); }); $('body').on('click', '.export-retry-button', function () { @@ -382,7 +379,7 @@ $(document).on('turbolinks:load', function () { if (response.status == 'success') { $messageDiv.addClass('export-success'); setTimeout((function () { - $('#export-modal').modal('hide'); + bootstrap.Modal.getInstance($('#export-modal')).hide(); $messageDiv.html('').removeClass('export-success'); }), 3000); } else { @@ -396,7 +393,7 @@ $(document).on('turbolinks:load', function () { }; var overrideTextareaTabBehavior = function () { - $('.form-group textarea[name$="[content]"]').on('keydown', function (event) { + $('.mb-3 textarea[name$="[content]"]').on('keydown', function (event) { if (event.which === TAB_KEY_CODE) { event.preventDefault(); insertTabAtCursor($(this)); diff --git a/app/assets/javascripts/forms.js b/app/assets/javascripts/forms.js index 7e469455..2be40eba 100644 --- a/app/assets/javascripts/forms.js +++ b/app/assets/javascripts/forms.js @@ -9,7 +9,7 @@ $(document).on('turbolinks:load', function() { event.preventDefault(); if (!$(this).hasClass('disabled')) { - var parent = $(this).parents('.form-group'); + var parent = $(this).parents('.mb-3'); var original_input = parent.find('.original-input'); var alternative_input = parent.find('.alternative-input'); diff --git a/app/assets/javascripts/pagedown/markdown.editor.js.erb b/app/assets/javascripts/pagedown/markdown.editor.js.erb index 459d7cfa..8330a85c 100644 --- a/app/assets/javascripts/pagedown/markdown.editor.js.erb +++ b/app/assets/javascripts/pagedown/markdown.editor.js.erb @@ -1018,7 +1018,7 @@ text = 'http://' + text; } - $(dialog).modal('hide'); + bootstrap.Modal.getInstance($(dialog)).hide(); callback(text); return false; @@ -1032,7 +1032,7 @@ //